@@ -34,17 +34,28 @@ type AdminBlock struct {
3434 ABEntries []ABEntry //Interface
3535
3636 //Not Marshalized
37- abHash * Hash
37+ fullHash * Hash //SHA512Half
38+ partialHash * Hash //SHA256
3839}
3940
40- func (ab * AdminBlock ) ABHash () (* Hash , error ) {
41- if ab .abHash == nil {
42- err := ab .buildABHash ()
41+ func (ab * AdminBlock ) FullHash () (* Hash , error ) {
42+ if ab .fullHash == nil {
43+ err := ab .buildFullBHash ()
4344 if err != nil {
4445 return nil , err
4546 }
4647 }
47- return ab .abHash , nil
48+ return ab .fullHash , nil
49+ }
50+
51+ func (ab * AdminBlock ) PartialHash () (* Hash , error ) {
52+ if ab .partialHash == nil {
53+ err := ab .buildPartialHash ()
54+ if err != nil {
55+ return nil , err
56+ }
57+ }
58+ return ab .partialHash , nil
4859}
4960
5061// Create an empty Admin Block
@@ -63,7 +74,7 @@ func CreateAdminBlock(chain *AdminChain, prev *AdminBlock, cap uint) (b *AdminBl
6374 if prev == nil {
6475 b .Header .PrevFullHash = NewHash ()
6576 } else {
66- b .Header .PrevFullHash , err = prev .ABHash ()
77+ b .Header .PrevFullHash , err = prev .FullHash ()
6778 if err != nil {
6879 return
6980 }
@@ -75,14 +86,25 @@ func CreateAdminBlock(chain *AdminChain, prev *AdminBlock, cap uint) (b *AdminBl
7586 return b , err
7687}
7788
78- // Build the sha hash for the admin block
79- func (b * AdminBlock ) buildABHash () (err error ) {
89+ // Build the SHA512Half hash for the admin block
90+ func (b * AdminBlock ) buildFullBHash () (err error ) {
91+ var binaryAB []byte
92+ binaryAB , err = b .MarshalBinary ()
93+ if err != nil {
94+ return
95+ }
96+ b .fullHash = Sha512Half (binaryAB )
97+ return
98+ }
99+
100+ // Build the SHA256 hash for the admin block
101+ func (b * AdminBlock ) buildPartialHash () (err error ) {
80102 var binaryAB []byte
81103 binaryAB , err = b .MarshalBinary ()
82104 if err != nil {
83105 return
84106 }
85- b .abHash = Sha512Half (binaryAB )
107+ b .partialHash = Sha (binaryAB )
86108 return
87109}
88110
0 commit comments