;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Bitcoin pode ser abatido por aumento de custo de mineração

22/02/2022 13h03

Por Medha Singh e Lisa Pauline Mattackal

(Reuters) - Os mineradores de bitcoin estão sentindo a pressão dos custos de mineração. A expansão espetacular em 2021 atraiu milhares de participantes para mineração ou produção de novas moedas. Como resultado, o hashrate, ou poder computacional usado pelos mineradores praticamente quadruplicou nos últimos seis meses, ultraando 200 milhões de 'terahashes' por segundo.

"Os custos operacionais são um fator importante na decisão dos mineradores de manter ou vender moedas recém-adquiridas. Eles são os primeiros e mais naturais vendedores no espaço cripto e, portanto, definitivamente impactam os preços", disse Justin d'Anethan, diretor da Amber Group.

O valor total das moedas mantidas nas carteiras dos mineradores caiu de 114 bilhões para cerca de 75 bilhões de dólares no início de novembro, já que sua lucratividade foi reduzida pelo aumento do hashrate e pela queda dos preços, segundo a empresa de pesquisa de criptomoedas Arcane Research.

Os mineradores estão transferindo mais moedas para exchanges do que adicionando às reservas, segundo empresas de análise da indústria de criptomoedas, um sinal de intenção de vender.

Esses fluxos estão aumentando as pressões enfrentadas pelo bitcoin, que ou por uma liquidação nos mercados globais, impulsionada por tensões na fronteira com a Ucrânia e pelo aperto da política do Federal Reserve.

A criptomoeda dominante está sendo negociada a cerca de 37 mil dólares, 40% abaixo do pico de novembro, de 62 mil dólares.

A mineração de bitcoin é o processo pelo qual uma rede de computadores verifica e valida um bloco de transações, que são adicionados ao blockchain. Os mineradores são recompensados ​​por completar um bloco.

É um negócio caro, exigindo não apenas equipamentos sofisticados que custam mais de 10 mil dólares, mas também uma enorme quantidade de energia. A média de sete dias do custo total de mineração por transação validada caiu para 176,8 dólares, de um recorde de 235,57 dólares atingido em maio do ano ado, mostram dados da blockchain.com.

A redução da lucratividade da mineração está atingindo o mercado mais amplo porque alguns investidores institucionais, que não podem ou não querem investir direto em criptomoedas, compram ações de mineradores listados ou ETFs que rastreiam mineradores como alternativa de obter o à indústria.