Block
Heart of the blockchain
Blocks are the basic entity of a blockchain. It encodes a set of actions that are executed in a single atomic operation. It also includes the commitment to the state of the application that was changed by the actions included in that block.
Blocks on Stackr
A block in Stackr framework looks like this
block.ts
interface BlockData {
// header
appId: number;
parentHash: string;
height: number;
timestamp: number;
actionRoot: string;
acknowledgementRoot: string;
stateRoot: string;
hooksRoot: string;
builderSignature: SignatureLike;
executionStatus: number;
// body
hash: string;
operatorSignature: SignatureLike;
actions: {
action: {
hash: string;
name: string;
payload: AllowedInputTypes;
msgSender: AddressLike;
signature: SignatureLike;
};
acknowledgement: {
hash: string;
height: number;
timestamp: number;
operatorSignature: SignatureLike;
};
}[];
hooksLogs?: BlockHookLog[];
batchInfo?: BatchInfo;
}Block header attributes
appId: The application id to which this block belongs to.parentHash: The hash of the parent block.height: The height of the block in the chain.timestamp: The timestamp at which the block was created.actionRoot: The root hash of the actions included in the block.acknowledgementRoot: The root hash of the acknowledgements of the actions included in the block.stateRoot: The root hash of the state after applying the actions in the block.hooksRoot: The root hash of a merkle tree of block hook names executed in the block.builderSignature: The signature of the builder on the block.executionStatus: The status of the block execution. It is an encoded value that represents which action succeeded and which failed.batchInfo: Metadata of the batch that includes this block. It is not populated by default and is later fetched from Vulcan (Verification layer).
Block body attributes
hash: The hash of the block. This is Keccak-256 of encoded header.operatorSignature: The signature of the operator on the block's hash.actions: The list of actions included in the block along with their acknowledgements.hooksLogs: Logs emitted by the block hooks. Undefined, if block is not yet executed, otherwise an array.batchInfo: Metadata of the batch that includes this block. It is not populated by default and is later fetched from Vulcan (Verification layer).