で適切なキーにデータをソートします。は、私はすべてのアドレスのためのすべての取引の記録を作成しようとしている私は(笑全体イーサリアムblockchain)ループ&ソートに</p> <p>を多数のデータをしようとしているオブジェクト
明らかにこれは非常に集中的プロセスであり、私は私が持っているものを越えて、それをより効率的にするかどうかはわかりません(つまり、効率的ではありません)
それは速いから始まりますが、私はそれを今考えていますtxs
オブジェクトのアドレスのルックアップのために遅くなりました。
ご意見、ご協力をよろしくお願いいたします。
https://giphy.com/gifs/3o6fJ7KWqxESY9okk8
var txs = {};
var i = 0;
// Loop over blocks
(function loop() {
setTimeout(function() {
// Get current block
var block = web3.eth.getBlock(i, true, (error, block) => {
// debugger;
// Loop over transactions in block
for(var j = 0; j < block.transactions.length; j++) {
// debugger;
if(txs[block.transactions[j].to]) {
txs[block.transactions[j].to].transactions.push(block.transactions[j]);
} else if (txs[block.transactions[j].to]) {
txs[block.transactions[j].from].transactions.push(block.transactions[j]);
} else {
txs[block.transactions[j].to] = {
transactions: [block.transactions[j]]
}
txs[block.transactions[j].from] = {
transactions: [block.transactions[j]]
}
}
}
});
i++
if (i < highestBlock) {
loop();
}
}, 50);
})();
ありがとうございました。それは静かにエラーを起こしました:P私はあなたに感謝します。ありがとうございます –
それははるかに効率的ではなかった。 –
この例では、私はES6を使用していますが、パフォーマンスは向上しませんが、維持しやすくする必要があります。 https://jsfiddle.net/o7xwg3p4/ – Siggy