1717package kms
1818
1919import (
20+ "bytes"
2021 "encoding/hex"
2122 "errors"
22-
2323 "sync"
2424
25- "bytes"
26-
2725 log "github.com/sirupsen/logrus"
2826
2927 "github.com/coreos/bbolt"
@@ -40,6 +38,20 @@ type PublicKeyStore struct {
4038 bucket []byte
4139}
4240
41+ // BPInfo hold all BP info fields
42+ type BPInfo struct {
43+ // PublicKeyStr is the public key of Block Producer
44+ PublicKeyStr string
45+ // PublicKey point to BlockProducer public key
46+ PublicKey * asymmetric.PublicKey
47+ // NodeID is the node id of Block Producer
48+ NodeID proto.NodeID
49+ // RawNodeID
50+ RawNodeID proto.RawNodeID
51+ // Nonce is the nonce, SEE: cmd/idminer for more
52+ Nonce mine.Uint256
53+ }
54+
4355const (
4456 // kmsBucketName is the boltdb bucket name
4557 kmsBucketName = "kms"
@@ -57,37 +69,33 @@ var (
5769var (
5870 //TODO(auxten): maybe each BP uses distinct key pair is safer
5971
60- // BPPublicKeyStr is the public key of Block Producer
61- BPPublicKeyStr = "02c1db96f2ba7e1cb4e9822d12de0f63f" +
62- "b666feb828c7f509e81fab9bd7a34039c"
63- // BPNodeID is the node id of Block Producer
64- // {{14396347928 0 0 6148914694092305796} 45 00000000000589366268c274fdc11ec8bdb17e668d2f619555a2e9c1a29c91d8}
65- BPNodeID = proto .NodeID ("00000000000589366268c274fdc11ec8bdb17e668d2f619555a2e9c1a29c91d8" )
66- // BPRawNodeID hold the binary hash version of BPNodeID, will be initialized
67- // at init()
68- BPRawNodeID proto.RawNodeID
69- // BPNonce is the nonce, SEE: cmd/idminer for more
70- BPNonce = mine.Uint256 {
71- 14396347928 ,
72- 0 ,
73- 0 ,
74- 6148914694092305796 ,
72+ // BP hold the initial BP info
73+ BP = & BPInfo {
74+ PublicKeyStr : "02c1db96f2ba7e1cb4e9822d12de0f63fb666feb828c7f509e81fab9bd7a34039c" ,
75+ PublicKey : nil ,
76+ // {{14396347928 0 0 6148914694092305796} 45 00000000000589366268c274fdc11ec8bdb17e668d2f619555a2e9c1a29c91d8}
77+ NodeID : proto .NodeID ("00000000000589366268c274fdc11ec8bdb17e668d2f619555a2e9c1a29c91d8" ),
78+ RawNodeID : proto.RawNodeID {},
79+ Nonce : mine.Uint256 {
80+ 14396347928 ,
81+ 0 ,
82+ 0 ,
83+ 6148914694092305796 ,
84+ },
7585 }
76- // BPPublicKey point to BlockProducer public key
77- BPPublicKey * asymmetric.PublicKey
7886)
7987
8088func init () {
81- err := hash .Decode (& BPRawNodeID . Hash , string (BPNodeID ))
89+ err := hash .Decode (& BP . RawNodeID . Hash , string (BP . NodeID ))
8290 if err != nil {
83- log .Fatalf ("BPNodeID error: %s" , err )
91+ log .Fatalf ("BP.NodeID error: %s" , err )
8492 }
8593
86- publicKeyBytes , err := hex .DecodeString (BPPublicKeyStr )
94+ publicKeyBytes , err := hex .DecodeString (BP . PublicKeyStr )
8795 if err != nil {
8896 log .Fatalf ("hex decode BPPublicKeyStr error: %s" , err )
8997 }
90- BPPublicKey , err = asymmetric .ParsePubKey (publicKeyBytes )
98+ BP . PublicKey , err = asymmetric .ParsePubKey (publicKeyBytes )
9199 if err != nil {
92100 log .Fatalf ("parse publicKeyBytes error: %s" , err )
93101 }
@@ -109,6 +117,9 @@ var (
109117// InitPublicKeyStore opens a db file, if not exist, creates it.
110118// and creates a bucket if not exist
111119func InitPublicKeyStore (dbPath string , initNode * proto.Node ) (err error ) {
120+ //testFlag := flag.Lookup("test")
121+ //log.Debugf("%#v %#v", testFlag, testFlag.Value)
122+
112123 var bdb * bolt.DB
113124 bdb , err = bolt .Open (dbPath , 0600 , nil )
114125 if err != nil {
0 commit comments