| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Bitcoin.Protocol.MerkleTree
Description
Merkle trees with double SHA-256
See https://en.bitcoin.it/wiki/Protocol_specification#Merkle_Trees
- data MerkleTree hash
- = MerkleNode hash (MerkleTree hash) (MerkleTree hash)
- | MerkleSingle hash (MerkleTree hash)
- | MerkleLeaf hash
- merkleRoot :: MerkleTree hash -> hash
- createMerkleTree :: OctetStream a => [a] -> MerkleTree Hash256
- buildMerkleTree :: [MerkleTree Hash256] -> MerkleTree Hash256
- merklePairs :: [a] -> [Either a (a, a)]
- merklePyramid :: MerkleTree hash -> [[hash]]
- viewMerkleTree :: Show hash => MerkleTree hash -> IO ()
Documentation
data MerkleTree hash Source #
Constructors
| MerkleNode hash (MerkleTree hash) (MerkleTree hash) | |
| MerkleSingle hash (MerkleTree hash) | |
| MerkleLeaf hash |
Instances
| Show hash => Show (MerkleTree hash) Source # | |
merkleRoot :: MerkleTree hash -> hash Source #
The root of the tree
createMerkleTree :: OctetStream a => [a] -> MerkleTree Hash256 Source #
Creates a Merkle tree from data
buildMerkleTree :: [MerkleTree Hash256] -> MerkleTree Hash256 Source #
Builds a Merkle tree from data from a list of smaller Merkle trees
merklePairs :: [a] -> [Either a (a, a)] Source #
merklePyramid :: MerkleTree hash -> [[hash]] Source #
Converts the tree into a format easier to visualize for humans
viewMerkleTree :: Show hash => MerkleTree hash -> IO () Source #
For debugging (similar output to blockexporer)