Sign signs the block.
(signer *asymmetric.PrivateKey)
| 63 | |
| 64 | // Sign signs the block. |
| 65 | func (b *Block) Sign(signer *asymmetric.PrivateKey) (err error) { |
| 66 | // Update header fields: generate merkle root from queries |
| 67 | var hashes []*hash.Hash |
| 68 | for _, v := range b.ReadQueries { |
| 69 | h := v.Header.Hash() |
| 70 | hashes = append(hashes, &h) |
| 71 | } |
| 72 | for _, v := range b.WriteQueries { |
| 73 | h := v.Header.Hash() |
| 74 | hashes = append(hashes, &h) |
| 75 | } |
| 76 | if err = b.MerkleRoot.SetBytes(merkle.NewMerkle(hashes).GetRoot()[:]); err != nil { |
| 77 | return |
| 78 | } |
| 79 | // Sign block header |
| 80 | return b.SignedBlockHeader.Sign(signer) |
| 81 | } |
| 82 | |
| 83 | // Verify verifies the block. |
| 84 | func (b *Block) Verify() error { |