// we finalize the ledger and create a new immutable ledger state
        private void Finalize(SignedLedger signed, LedgerPostState state)
        {
            var ledgerState = state.Finalize(HasherFactory.CreateHasher(signed.GetVersion()));

            if (!CheckMerkleRoot(ledgerState, signed))
            {
                throw new Exception("Merkle root is not valid");
            }

            LiveService.PersistenceManager.Save(new SignedLedgerState(signed, state.GetLedgerStateChange()));

            LedgerState = ledgerState;
            LastLedger  = signed;

            OnNewLedger(LastLedger);
        }
Esempio n. 2
0
 public LedgerStateFinal Finalize(ProtocolVersion version)
 {
     return(PostState.Finalize(HasherFactory.CreateHasher(version)));
 }