Tag-Beschreibung jainism
OK, jetzt verstehe ich es.
Ich kann es nicht.
Bitcoinj speichert nur die Kopfzeilen. Und - was ich gar nicht wissen - Sie können nicht Holen Sie sich die Bilanz mit " nur die überschriften.
Weitere ingormation sehen Sie die genaue Beschreibung dessen, was in den Headern hier https://en.bitcoin.it/wiki/Block_hashing_algorithm
Was ich kann tun, jedoch ist das speichern der Brieftasche direkt danach. Was ich tun werde.
bisherige "Antwort"/laut gedacht:
Ich bin stochern im source-code.
Wie es scheint, ist der wichtige Teil, wenn sendTransactionsToWallet
genannt wird BlockChain.java
- aber es wird nur aufgerufen, während connectBlock
und sonst nichts.
connectBlock
nur aufgerufen wird, während hinzufügen
. Und das nur hinzufügen,
ed Blöcke sind die neuen Blöcke, die aus dem Netzwerk, nicht diejenigen, die von BlockStore.
Aber ich werde schauen, um den code ein bisschen mehr.
Ich bin mir nicht sicher, was schreckliches passieren würde, wenn ich schrieb den Konstruktor von BlockChain.java
aus:
/**
* Konstruiert eine BlockChain verbunden mit der gegebenen Liste der Geldbeutel und speichern.
*/
öffentliche BlockChain(NetworkParameters params, List<Geldbeutel> Geldbeutel,
BlockStore blockStore) wirft BlockStoreException {
diese.blockStore = blockStore;
chainHead = blockStore.getChainHead();
log.info("Kette der Kopf ist in der Höhe {}:\n{}", chainHead.getHeight(), chainHead.getHeader());
diese.params = params;
diese.Portemonnaies = new ArrayList<Geldbeutel>(Brieftaschen);
}
zu (schreiben aus meinem Kopf, Getter/setter kann nicht richtig sein, etc)
/**
* Konstruiert eine BlockChain verbunden mit der gegebenen Liste der Geldbeutel und speichern.
*/
öffentliche BlockChain(NetworkParameters params, List<Geldbeutel> Geldbeutel,
BlockStore blockStore) wirft BlockStoreException {
diese.blockStore = blockStore;
chainHead = blockStore.getChainHead();
log.info("Kette der Kopf ist in der Höhe {}:\n{}", chainHead.getHeight(), chainHead.getHeader());
diese.params = params;
diese.Portemonnaies = new ArrayList<Geldbeutel>(Brieftaschen);
StoredBlock sBlock = blockStore.getChainHead();
Sha256Hash prevHash = sBlock.header.prevBlockHash();
while (prevHash!=Sha256Hash.ZERO_HASH) {
für (Wallet-Geldbörse:Geldbeutel){
sendTransactionsToWallet(sBlock, NewBlockType.SIDE_CHAIN, Geldbörse, sBlock.Transaktionen);
}
sBlock = blockStore.get(hash);
prevHash = sBlock.header.prevBlockHash();
}
}
aber wieder, ich will nicht das Rad neu erfinden oder was.