|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- ## 区块
-
- 采用`BFT-SMaRt`共识协议,即时出块,单个区块交易数限制默认为`2000`(`bftsmart.config`中参数`system.totalordermulticast.maxbatchsize`)
-
- ### 结构
-
- - `LedgerBlock`:
-
- ```java
- @DataContract(code = DataCodes.BLOCK)
- public interface LedgerBlock extends BlockBody {
-
- /**
- * 区块哈希;
- */
- @DataField(order = 1, primitiveType = PrimitiveType.BYTES)
- HashDigest getHash();
-
- }
- ```
-
- - `BlockBody`:
-
- ```java
- @DataContract(code= DataCodes.BLOCK_BODY)
- public interface BlockBody extends LedgerDataSnapshot{
-
- // 上一个区块哈希
- @DataField(order=2, primitiveType = PrimitiveType.BYTES)
- HashDigest getPreviousHash();
-
- // 账本哈希
- @DataField(order=3, primitiveType = PrimitiveType.BYTES)
- HashDigest getLedgerHash();
-
- // 区块高度
- @DataField(order=4, primitiveType= PrimitiveType.INT64)
- long getHeight();
-
- // 交易数据集哈希
- @DataField(order=5, primitiveType = PrimitiveType.BYTES)
- HashDigest getTransactionSetHash();
-
- // 区块时间戳,毫秒
- @DataField(order=6, primitiveType = PrimitiveType.INT64)
- long getTimestamp();
- }
- ```
-
- - `LedgerDataSnapshot`:
-
- ```java
- @DataContract(code=DataCodes.DATA_SNAPSHOT)
- public interface LedgerDataSnapshot {
-
- // 管理数据集哈希
- @DataField(order=1, primitiveType = PrimitiveType.BYTES)
- HashDigest getAdminAccountHash();
-
- // 用户集哈希
- @DataField(order=2, primitiveType = PrimitiveType.BYTES)
- HashDigest getUserAccountSetHash();
-
- // 数据账户集哈希
- @DataField(order=3, primitiveType = PrimitiveType.BYTES)
- HashDigest getDataAccountSetHash();
-
- // 合约集哈希
- @DataField(order=4, primitiveType = PrimitiveType.BYTES)
- HashDigest getContractAccountSetHash();
-
- // 系统事件集哈希
- @DataField(order=5, primitiveType = PrimitiveType.BYTES)
- HashDigest getSystemEventSetHash();
-
- // 用户事件集哈希
- @DataField(order=6, primitiveType = PrimitiveType.BYTES)
- HashDigest getUserEventSetHash();
- }
- ```
|