aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/storage
diff options
context:
space:
mode:
authorViktor TrĂ³n <viktor.tron@gmail.com>2017-09-05 18:38:36 +0800
committerFelix Lange <fjl@users.noreply.github.com>2017-09-05 18:38:36 +0800
commit2bacf36d8095ac7936f69552e2727ac6f276479f (patch)
tree45ed5eff0404742d67273d3c958642b066888d41 /swarm/storage
parent32d8d422746ba0dcb86ac7450672dd7da440b222 (diff)
downloaddexon-2bacf36d8095ac7936f69552e2727ac6f276479f.tar.gz
dexon-2bacf36d8095ac7936f69552e2727ac6f276479f.tar.zst
dexon-2bacf36d8095ac7936f69552e2727ac6f276479f.zip
bmt: Binary Merkle Tree Hash (#14334)
bmt is a new package that provides hashers for binary merkle tree hashes on size-limited chunks. the main motivation is that using BMT hash as the chunk hash of the swarm hash offers logsize inclusion proofs for arbitrary files on a 32-byte resolution completely viable to use in challenges on the blockchain.
Diffstat (limited to 'swarm/storage')
-rw-r--r--swarm/storage/chunker.go3
-rw-r--r--swarm/storage/types.go1
2 files changed, 3 insertions, 1 deletions
diff --git a/swarm/storage/chunker.go b/swarm/storage/chunker.go
index 563793e98..ca85e4333 100644
--- a/swarm/storage/chunker.go
+++ b/swarm/storage/chunker.go
@@ -51,7 +51,8 @@ data_{i} := size(subtree_{i}) || key_{j} || key_{j+1} .... || key_{j+n-1}
*/
const (
- defaultHash = "SHA3" // http://golang.org/pkg/hash/#Hash
+ defaultHash = "SHA3"
+ // defaultHash = "BMTSHA3" // http://golang.org/pkg/hash/#Hash
// defaultHash = "SHA256" // http://golang.org/pkg/hash/#Hash
defaultBranches int64 = 128
// hashSize int64 = hasherfunc.New().Size() // hasher knows about its own length in bytes
diff --git a/swarm/storage/types.go b/swarm/storage/types.go
index cc5ded931..a9de23c93 100644
--- a/swarm/storage/types.go
+++ b/swarm/storage/types.go
@@ -24,6 +24,7 @@ import (
"io"
"sync"
+ // "github.com/ethereum/go-ethereum/bmt"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto/sha3"
)