O en otras palabras, ¿ geth --fast
descargará los registros de eventos?
Sí. Pero no obtendrá debug.traceTransaction(...)
la parte de la cadena de bloques que se sincroniza rápidamente.
Aquí está el tamaño de la cadena de datos de mi cadena de bloques sincronizada rápidamente:
Iota:Ethereum bok$ du -hs chaindata/
16G chaindata/
Y aquí está el tamaño de la cadena de datos de mi cadena de bloques no sincronizada rápidamente:
bok@Rasterbator:~/.ethereum$ du -hs chaindata/
79G chaindata/
Verificando que puedo obtener los eventos de la cadena de sincronización rápida al recuperar un evento de creación de token de The DAO temprano :
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
...
Pero los debug.traceTransaction(...)
fallos:
> 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
privacidadisahumanright.eth
debug.traceTransaction(...)
información solo para mostrar lo que faltará en sus datos cuando ejecute una sincronización rápida. Y también para demostrar que los eventos se pueden extraer mientrasdebug.traceTransaction(...)
fallarán para el mismo evento, cuando los datos se sincronizan rápidamente.FA
diego