@@ -36,7 +36,8 @@ class Block[P <: Proposition, CData <: ConsensusData, TData <: TransactionalData
36
36
type TDataExposed = TData
37
37
type BlockId = ConsensusData .BlockId
38
38
39
- val blockFields = version :: timestamp :: consensusData.consensusFields :: transactionalData.transactionalFields :: HNil
39
+ val blockFields =
40
+ version :: timestamp :: consensusData.consensusFields :: transactionalData.transactionalFields :: HNil
40
41
41
42
lazy val bytes : Array [Byte ] = ???
42
43
@@ -63,35 +64,44 @@ object Block extends ScorexLogging {
63
64
val Version = 1 : Byte
64
65
65
66
66
- def parse [P <: Proposition , CData <: ConsensusData , TData <: TransactionalData [_], B <: Block [P , CData , TData ]](bytes : Array [Byte ])
67
- (implicit consensusModule : ConsensusModule [P , CData , B ],
68
- transactionalModule : TransactionModule [P , _, TData ]): Try [B ] = {
67
+ def parse [P <: Proposition , CData <: ConsensusData , TData <: TransactionalData [_], B <: Block [P , CData , TData ]]
68
+ (bytes : Array [Byte ])
69
+ (implicit consensusModule : ConsensusModule [P , CData , B ],
70
+ transactionalModule : TransactionModule [P , _, TData ]): Try [B ] = {
71
+
69
72
???
70
73
}
71
74
72
- def build [P <: Proposition , TX <: Transaction [P , TX ], CData <: ConsensusData , TData <: TransactionalData [TX ]](consensusData : CData )
73
- (implicit transactionalModule : TransactionModule [P , TX , TData ]): Block [P , CData , TData ] = {
75
+ def build [P <: Proposition , TX <: Transaction [P , TX ], CData <: ConsensusData , TData <: TransactionalData [TX ]]
76
+ (consensusData : CData )
77
+ (implicit transactionalModule : TransactionModule [P , TX , TData ]): Block [P , CData , TData ] = {
78
+
74
79
val timestamp = System .currentTimeMillis()
75
80
new Block (Version , timestamp, consensusData, transactionalModule.packUnconfirmed())
76
81
}
77
82
78
- def genesis [P <: Proposition , CData <: ConsensusData , TData <: TransactionalData [_]](genesisTimestamp : Long )
79
- (implicit consensusModule : ConsensusModule [P , CData , _ <: Block [P , CData , TData ]],
80
- transactionalModule : TransactionModule [P , _, TData ]): Block [P , CData , TData ] = {
83
+ def genesis [P <: Proposition , CData <: ConsensusData , TData <: TransactionalData [_]]
84
+ (genesisTimestamp : Long )
85
+ (implicit consensusModule : ConsensusModule [P , CData , _ <: Block [P , CData , TData ]],
86
+ transactionalModule : TransactionModule [P , _, TData ]): Block [P , CData , TData ] = {
87
+
81
88
new Block (Version , genesisTimestamp, consensusModule.genesisData, transactionalModule.genesisData)
82
89
}
83
90
84
- def isValid [P <: Proposition , CData <: ConsensusData , TData <: TransactionalData [_], B <: Block [P , CData , TData ]](block : B )(implicit consensusModule : ConsensusModule [P , CData , B ],
85
- transactionalModule : TransactionModule [P , _, TData ]): Boolean = {
91
+ def isValid [P <: Proposition , CData <: ConsensusData , TData <: TransactionalData [_], B <: Block [P , CData , TData ]]
92
+ (block : B )
93
+ (implicit consensusModule : ConsensusModule [P , CData , B ],
94
+ transactionalModule : TransactionModule [P , _, TData ]): Boolean = {
95
+
86
96
if (consensusModule.contains(block)) true // applied blocks are valid
87
97
else {
88
98
lazy val consensus = consensusModule.isValid(block)
89
99
lazy val transaction = transactionalModule.isValid(block)
90
100
91
- if (! consensus) log.debug(s " Invalid block ${consensusModule.encodedId(block)}: consensus data is not valid " )
92
- else if (! transaction) log.debug(s " Invalid block ${consensusModule.encodedId(block)}: transaction data is not valid " )
101
+ if (! consensus) log.debug(s " Invalid consensus data in block ${consensusModule.encodedId(block)}" )
102
+ else if (! transaction) log.debug(s " Invalid transaction data in block ${consensusModule.encodedId(block)}" )
93
103
94
104
consensus && transaction
95
105
}
96
106
}
97
- }
107
+ }
0 commit comments