linera-io/linera-protocol
Linera is a decentralized blockchain infrastructure designed for highly scalable, low-latency Web3 applications.
Visit our developer page and read our whitepaper to learn more about the Linera protocol.
Repository Structure
The main crates and directories of this repository can be summarized as follows: (listed from low to high levels in the dependency graph)
-
linera-base
Base definitions, including cryptography. -
linera-version
A library to manage version info in binaries and services. -
linera-views
A library mapping complex data structures onto a key-value store. The corresponding procedural macros are implemented inlinera-views-derive
. -
linera-execution
Persistent data and the corresponding logic for runtime and execution of Linera applications. -
linera-chain
Persistent data and the corresponding logic for chains of blocks, certificates, and cross-chain messaging. -
linera-storage
Defines the storage abstractions for the protocol on top oflinera-chain
. -
linera-core
The core Linera protocol, including client and server logic, node synchronization, etc. -
linera-rpc
Defines the data-type for RPC messages (currently all client ↔ proxy ↔ chain ↔ chain interactions), and track the corresponding data schemas. -
linera-client
Library for writing Linera clients. Used for the command-line client and the node service inlinera-service
, as well as the Web client inlinera-web
. -
linera-service
Executable for clients (aka CLI wallets), proxy (aka validator frontend) and servers. -
linera-sdk
The library to develop Linera applications written in Rust for the Wasm virtual machine. The corresponding procedural macros are implemented inlinera-sdk-derive
. -
examples
Examples of Linera applications written in Rust.
Quickstart with the Linera CLI tool
The following commands set up a local test network and run some transfers between the microchains owned by a single wallet.
|
|
More complex examples may be found in our developer manual as well as the example applications in this repository.