@@ -63,60 +63,54 @@ public class Blockchain {
63
63
*/
64
64
public Blockchain (String address , String type ) {
65
65
if (dbExists ()) {
66
- blockDB = new LevelDbDataSourceImpl (BLOCK_DB_NAME );
67
- blockDB .initDB ();
68
-
69
- this .lastHash = blockDB .getData (LAST_HASH );
70
- this .currentHash = this .lastHash ;
71
-
72
- logger .info ("load blockchain" );
73
- } else {
74
- blockDB = new LevelDbDataSourceImpl (BLOCK_DB_NAME );
75
- blockDB .initDB ();
76
-
77
- InputStream is = getClass ().getClassLoader ().getResourceAsStream ("genesis.json" );
78
- String json = null ;
79
- try {
80
- json = new String (ByteStreams .toByteArray (is ));
81
- } catch (IOException e ) {
82
- e .printStackTrace ();
83
- }
66
+ logger .info ("blockchain already exists." );
67
+ System .exit (0 );
68
+ }
84
69
85
- GenesisBlockLoader genesisBlockLoader = JSON .parseObject (json , GenesisBlockLoader .class );
70
+ blockDB = new LevelDbDataSourceImpl (BLOCK_DB_NAME );
71
+ blockDB .initDB ();
86
72
87
- Iterator iterator = genesisBlockLoader .getTransaction ().entrySet ().iterator ();
73
+ InputStream is = getClass ().getClassLoader ().getResourceAsStream ("genesis.json" );
74
+ String json = null ;
75
+ try {
76
+ json = new String (ByteStreams .toByteArray (is ));
77
+ } catch (IOException e ) {
78
+ e .printStackTrace ();
79
+ }
88
80
89
- List < Transaction > transactions = new ArrayList <>( );
81
+ GenesisBlockLoader genesisBlockLoader = JSON . parseObject ( json , GenesisBlockLoader . class );
90
82
91
- while (iterator .hasNext ()) {
92
- Map .Entry entry = (Map .Entry ) iterator .next ();
93
- String key = (String ) entry .getKey ();
94
- Integer value = (Integer ) entry .getValue ();
83
+ Iterator iterator = genesisBlockLoader .getTransaction ().entrySet ().iterator ();
95
84
96
- Transaction transaction = TransactionUtils .newCoinbaseTransaction (key , genesisCoinbaseData , value );
97
- transactions .add (transaction );
98
- }
85
+ List <Transaction > transactions = new ArrayList <>();
99
86
100
- Block genesisBlock = BlockUtils .newGenesisBlock (transactions );
87
+ while (iterator .hasNext ()) {
88
+ Map .Entry entry = (Map .Entry ) iterator .next ();
89
+ String key = (String ) entry .getKey ();
90
+ Integer value = (Integer ) entry .getValue ();
101
91
102
- blockDB .putData (genesisBlock .getBlockHeader ().getHash ().toByteArray (),
103
- genesisBlock .toByteArray ());
104
- byte [] lastHash = genesisBlock .getBlockHeader ()
105
- .getHash ()
106
- .toByteArray ();
107
- blockDB .putData (LAST_HASH , lastHash );
92
+ Transaction transaction = TransactionUtils .newCoinbaseTransaction (key , genesisCoinbaseData , value );
93
+ transactions .add (transaction );
94
+ }
108
95
109
- this .lastHash = lastHash ;
110
- this .currentHash = lastHash ;
96
+ Block genesisBlock = BlockUtils .newGenesisBlock (transactions );
111
97
112
- // put message to consensus
113
- if (type .equals (Peer .PEER_SERVER )) {
114
- String value = ByteArray .toHexString (genesisBlock .toByteArray ());
115
- Message message = new Message (value , Type .BLOCK );
116
- Client .putMessage1 (message ); // consensus: put message GenesisBlock
117
- }
118
- logger .info ("new blockchain" );
98
+ this .lastHash = genesisBlock .getBlockHeader ().getHash ().toByteArray ();
99
+ this .currentHash = this .lastHash ;
100
+
101
+ blockDB .putData (genesisBlock .getBlockHeader ().getHash ().toByteArray (),
102
+ genesisBlock .toByteArray ());
103
+ byte [] lastHash = genesisBlock .getBlockHeader ()
104
+ .getHash ()
105
+ .toByteArray ();
106
+ blockDB .putData (LAST_HASH , lastHash );
107
+ // put message to consensus
108
+ if (type .equals (Peer .PEER_SERVER )) {
109
+ String value = ByteArray .toHexString (genesisBlock .toByteArray ());
110
+ Message message = new Message (value , Type .BLOCK );
111
+ Client .putMessage1 (message ); // consensus: put message GenesisBlock
119
112
}
113
+ logger .info ("new blockchain" );
120
114
}
121
115
122
116
/**
0 commit comments