public LedgerEntity(LedgerHash hash, LedgerLight ledger, LedgerMerkleRootHash merkleRootHash, byte[] raw) { Hash = hash; Ledger = ledger; MerkleRootHash = merkleRootHash; Raw = raw; }
public void Write(LedgerLight ledger) { Write(ledger.Height); Write(ledger.Timestamp); Write(ledger.Lastledger.Bytes); stream.WriteByte(ledger.Version.VersionNumber); }
private SignedLedger GetLedger() { var light = new LedgerLight( ledgerService.LedgerManager.GetNextHeight(), DateTime.Now.ToUnixTimestamp() + 1, // TODO ? ledgerService.LedgerManager.GetLedgerBeginTime() + 10, ledgerService.LedgerManager.GetLastLedgerHash(), ProtocolVersion.CURRENT_VERSION); var block = Block.CreateBlock(light.Height, pendingTransactions); var poststate = new PostStateHolder(ledgerService.LedgerManager.LedgerState, ledgerService.LedgerManager.GetNextHeight()); foreach (var transaction in pendingTransactions) { if (!poststate.ProcessTransaction(transaction)) { return(null); } } var finalized = poststate.Finalize(light.Version); var ledger = new Ledger(light, block, ledgerService.LedgerManager.GetMerkleRootHash(finalized, light.Version)); var signed = new SignedLedger(ledger); validator.SignLedger(signed, NodeConfiguration.GetNetwork()); return(signed); }
protected override LedgerEntity ToItem(ledger entity) { var ledger = new LedgerLight(entity.height, entity.timestamp, new LedgerHash(entity.previous_hash), new ProtocolVersion(entity.version)); return(new LedgerEntity(new LedgerHash(entity.hash), ledger, new LedgerMerkleRootHash(entity.merkle_root_hash), entity.raw)); }