Node Architecture
Last updated
Last updated
Vine's node architecture is defined by two layers:
On-chain layer
Client interaction layer
Vine's on-chain layer is built on the following key components: Storage, Runtime, Consensus Mechanism, Security, Modularity, BABE, GRANDPA, and EVM. Details below.
Storage The Vine Blockchain's development state is managed through an efficient and straightforward key-value pair storage mechanism using rocksDB. This system ensures that the blockchain's storage state is securely validated through a trustless consensus process, maintaining reliability and integrity.
Runtime The runtime handles block processing and governs the logic for state transitions. The Vine Blockchain code is compiled into WebAssembly (WASM) runtime before being incorporated into the blockchain's storage state. The client's executor component interacts with the runtime, dynamically selecting between native code execution and interpreted WASM to optimize performance and flexibility.
Consensus Mechanism It is one of the most integral parts of the system. Vine blockchain has a 2-layer consensus algorithm, the first one is BABE (Blind Assignment of Blockchain Extension) for block production and the second one is GRANDPA (GHOST-based Recursive Ancestor Deriving Prefix Agreement) for block finalization.
Security Vine uses NPoS (Nominated Proof of Stake) to ensure network security. The consensus mechanism has two key actors: validators and nominators. The nominator delegate some of its VNE coin to a validator for staking in the network, who then participates in the consensus mechanism algorithm for block production and validation, if the validator fails to perform properly, both of their stakes are penalised.
Modularity Framework for Runtime Aggregation of Modularized Entities (FRAME) is a set of modules and support libraries that simplify runtime development. FRAME consists of smaller units called pallets, it consists of storage items and functions that define a set of features and functionality for a runtime.
BABE Blind Assignment of Blockchain Extension (BABE) also provides slot-based block authoring with a known set of validators. Slot assignment is based on the evaluation of a Verifiable Random Function (VRF). Each validator is assigned a weight for an epoch. This epoch is broken up into slots and the validator evaluates its VRF at each slot. For each slot that the validator's VRF output is below its weight, it is allowed to author a block.
GRANDPA GHOST-based Recursive Ancestor Deriving Prefix Agreement (GRANDPA) is responsible for block finalization, leveraging a weighted authority set similar to BABE. Unlike BABE, GRANDPA does not produce blocks itself; instead, it monitors and listens to gossip about blocks created by an external authoring engine, such as those previously mentioned. Validators vote on entire chains rather than individual blocks, selecting the block they consider the "best." Their votes are then applied transitively to all preceding blocks. When over two-thirds of GRANDPA authorities cast their votes for a specific block, it is deemed finalized.
EVM Vine Blockchain has support for Ethereum Virtual Machine (EVM), and because of it, all EVM-supported smart contracts can be deployed on Vine Blockchain. It has nothing to do with the Ethereum Chain.
Vine's client interaction layer is built for HTTP and RPC, leverages libp2p, includes an explorer, and offers an API. Details below.
HTTP + RPC Vine supports HTTP and WebSocket RPC (Remote Procedure Call) servers for interacting with the network.
P2P (Peer-to-Peer) Vine Blockchain leverages the Rust implementation of libp2p to allow participants to interact with each other.
Explorer Provides easy assessment of transaction details and chain state.
API The API (Application Programming Interface) allows client dApps and platforms to interact directly with the blockchain.