Features and Concepts
Splinter allows the same network to do two-party private communication, multi-party private communication, and network-wide multi-party shared state, all managed with consensus. A Splinter network enables multi-party or two-party private conversations between nodes using circuits and services.
-
A node is the foundational runtime that allows an organization to participate in the network.
-
A circuit is a virtual network within the broader Splinter network that safely and securely enforces prvacy scope boundaries.
-
A service is an endpoint within a circuit that sends and receives private messages.
A Splinter application provides a set of distributed services that can communicate with each other across a Splinter circuit.
Designed for privacy
The key concepts of Splinter are fundamentally anchored to privacy.
-
Circuits define scope and visibility domains.
-
Shared state, a database updated by smart contracts, is visible only to the services within a circuit.
Distributed and flexible
Splinter works across a network.
-
State agreement is achieved via the Merkle-radix tree in Transact, allowing multiple services to prove they have the same data down to the last bit, cryptographically.
-
Consensus is provided for creating real distributed applications. Splinter currently includes two-phase commit for 2- or 3-party conversations.
-
Connections are dynamically constructed between nodes as circuits are created.
Agile with smart contracts
-
Smart contracts capture business logic for processing transactions.
-
Runtime deployment of smart contracts means no need to upgrade the Splinter software stack to add business logic.
-
Sandboxed WebAssembly smart contracts keep the network safe and ensure determinism.
-
Scabbard, an out-of-the-box Splinter service that runs Sawtooth Sabre smart contracts across nodes, coordinated with consensus.
Designed for applications
-
State delta export allows an application to materialize the Merkle-radix tree database to another database such as PostgreSQL. Applications can read from the materialized database (just like any other web application).
-
Admin services provide applications with a REST API to dynamically create new circuits, based on business need.
-
Authorization for circuit management can be delegated to application code and defined by business policies.