From a154e248ae4648d64960b699913bed910d1d0a8d Mon Sep 17 00:00:00 2001 From: Joseph Poon Date: Wed, 16 Dec 2015 10:50:05 -0800 Subject: [PATCH] Taking a look... --- wallet/shachain/hash_chain.go | 18 ++++++++++++++++++ wallet/shachain/hash_chain_test.go | 2 ++ 2 files changed, 20 insertions(+) diff --git a/wallet/shachain/hash_chain.go b/wallet/shachain/hash_chain.go index 4c3a8e52d..9fbab7c25 100644 --- a/wallet/shachain/hash_chain.go +++ b/wallet/shachain/hash_chain.go @@ -1,8 +1,10 @@ package wallet import "github.com/btcsuite/btcd/wire" +import "fmt" //TODO(j) remove me later... // TODO(roasbeef): port Rusty's hash-chain stuff +//http://ccodearchive.net/info/crypto/shachain.html // * or just use HD chains based off of CodeShark's proposal? // chainFragment... @@ -18,9 +20,25 @@ type ShaChain struct { chainFragments []chainFragment } +func Derive(from uint64, to uint64, fromHash wire.ShaHash, toHash wire.ShaHash) { + var branches uint64 + branches = from ^ to + + //TODO(j) remove me Dumb test + fmt.Println(branches) + fmt.Println(from) + fmt.Println(to) +} + +//Generate a new ShaChain from a seed +func NewShaChainFromSeed(seed wire.ShaHash, index uint64, hash wire.ShaHash) { + Derive(0, ^uint64(0), seed, hash) +} + // NewShaChain... func NewShaChain(seed wire.ShaHash) *ShaChain { // TODO(roasbeef): from/to or static size? + return new(ShaChain) } // NextHash... diff --git a/wallet/shachain/hash_chain_test.go b/wallet/shachain/hash_chain_test.go index 23a750732..d876cb18b 100644 --- a/wallet/shachain/hash_chain_test.go +++ b/wallet/shachain/hash_chain_test.go @@ -1 +1,3 @@ package wallet + +import "testing"