mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2025-05-06 19:55:10 +00:00
Persistance (#53)
* added publish TX for backwards compat. * lowered the prototick for faster block syncing * print useragent on startup * added createMultiRedeemScript for genesis block generation. * building genesis block from scratch. * implemented merkle tree. * starting blockhain with generated genesis hash * Fixed bug in unspent coin state. * fixed broken tests after genesis block. * removed log line. * bumped version -> 0.34.0
This commit is contained in:
parent
ad9333c74c
commit
94672cb9cc
35 changed files with 955 additions and 187 deletions
|
@ -6,6 +6,7 @@ import (
|
|||
"io"
|
||||
|
||||
"github.com/CityOfZion/neo-go/pkg/core/transaction"
|
||||
"github.com/CityOfZion/neo-go/pkg/crypto"
|
||||
"github.com/CityOfZion/neo-go/pkg/util"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
@ -29,6 +30,22 @@ func (b *Block) Header() *Header {
|
|||
}
|
||||
}
|
||||
|
||||
// rebuildMerkleRoot rebuild the merkleroot of the block.
|
||||
func (b *Block) rebuildMerkleRoot() error {
|
||||
hashes := make([]util.Uint256, len(b.Transactions))
|
||||
for i, tx := range b.Transactions {
|
||||
hashes[i] = tx.Hash()
|
||||
}
|
||||
|
||||
merkle, err := crypto.NewMerkleTree(hashes)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
b.MerkleRoot = merkle.Root()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Verify the integrity of the block.
|
||||
func (b *Block) Verify(full bool) bool {
|
||||
// The first TX has to be a miner transaction.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue