Oder mit anderen Worten, werden geth --fast
die Ereignisprotokolle heruntergeladen?
Ja. Aber Sie werden das nicht debug.traceTransaction(...)
für den Teil der Blockchain bekommen, der schnell synchronisiert wird.
Hier ist die Chaindata-Größe aus meiner schnell synchronisierten Blockchain:
Iota:Ethereum bok$ du -hs chaindata/
16G chaindata/
Und hier ist die Chaindata-Größe aus meiner nicht schnell synchronisierten Blockchain:
bok@Rasterbator:~/.ethereum$ du -hs chaindata/
79G chaindata/
Überprüfen, ob ich die Ereignisse aus der schnell synchronisierten Kette abrufen kann, indem ich ein frühes Ereignis zur Erstellung des DAO-Tokens abrufe :
var theDAOABIFragment = [{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"CreatedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"}];
var theDAOAddress = "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413";
var theDAOStartingBlock = 1428757;
var theDAO = web3.eth.contract(theDAOABIFragment).at(theDAOAddress);
var theDAOCreatedTokenEvent = theDAO.CreatedToken({}, {fromBlock: theDAOStartingBlock, toBlock: theDAOStartingBlock + 2000});
console.log("address\tamount\tto\tblockHash\tblockNumber\tevent\tlogIndex\ttransactionHash\ttransactionIndex");
theDAOCreatedTokenEvent.watch(function(error, result){
console.log(result.address + "\t" + result.args.amount / 1e16 + "\t" + result.args.to + "\t" +
result.blockHash + "\t" + result.blockNumber + "\t" + result.event + "\t" + result.logIndex + "\t" +
result.transactionHash + "\t" + result.transactionIndex);
});
0xbb9bc244d798123fde783fcc1c72d3bb8c189413 3 0xb504e60998c6f354a0794abd91d85e8bc8436211 0x031d5bac6154ca7616ac62e966da2b50a0aaa1b3bc24958ed9cb52d8c8fc1e2f 1429038 CreatedToken 3 0xc96b0f95a1e7e8c07cd488a05f20f9e8d4003fe8eea0ec7f7f4bf199af3198e1 9
0xbb9bc244d798123fde783fcc1c72d3bb8c189413 50 0x53024f875bc85709af41d1c65c01fb4cc92d5c1c 0x48cf967fc94c2f808d82906c1a56e3e09abc99bb8279266fbace13963dc30a1f 1429053 CreatedToken 0 0x1e9ec3974b89653961cbd996d4f6cfc2845db977a3385761b99ed459c2464740 1
0xbb9bc244d798123fde783fcc1c72d3bb8c189413 50 0x2680a6fe5957d177a9279450d2c040818a1949a8 0x40d4235ceb2da6c0288016596d7b55223afd4efce70ba3369e915c0d8a5aa0b1 1429085 CreatedToken 0 0xcea9c261931268d55e695449794bc73a1d614b069051cdd437c1db3d2b31ae0a 0
...
Aber das debug.traceTransaction(...)
schlägt fehl:
> debug.traceTransaction("0xc96b0f95a1e7e8c07cd488a05f20f9e8d4003fe8eea0ec7f7f4bf199af3198e1")
Missing trie node 07e43e11d98fc497ae7b888933c409580e593ecbeeed34865f65a4c2c9f4cd98
at web3.js:3119:20
at web3.js:6023:15
at web3.js:4995:36
at <anonymous>:1:1
Takeshi
Datenschutz ist ein Menschenrecht.eth
debug.traceTransaction(...)
Informationen nur hinzugefügt, um zu zeigen, was in Ihren Daten fehlt, wenn Sie eine schnelle Synchronisierung ausführen. Und auch um zu demonstrieren, dass Ereignisse extrahiert werden können, während diedebug.traceTransaction(...)
für dasselbe Ereignis fehlschlagen – wenn die Daten schnell synchronisiert werden.AF
Diego