Disclaimer: These are planning documents. The functionalities described here may be unimplemented, partially implemented, or implemented differently than the original design.

Feature Planning

Current

Features listed here exist in various stages of the development process. Many are in the design phase and may result in significant changes that may impact applications built on top of Splinter and its constellation of related libraries and services.

We welcome discussion on these topics, either on Slack or during the engineering forum.

Feature Description
Abstract Queue A design for a generic durable queue, to replace the PendingBatchQueue
Artifacts A design for the traits for published artifacts and their stores
Canopy 0.2 New design of the Canopy system that enables dynamic loading of saplings and improved inter-sapling communication
Capabilities Repository A design for a repository and all the surrounding tools and formats for Splinter artifacts. These artifacts include saplings, smart contracts, and capabilities distributions.
Circuit and Service Identifiers as Rust structs Reduction in possible runtime errors when using identifiers
Consensus Runner Executes consensus actions and events
Echo Service Design for the splinter echo service
Publisher for Scabbard v3 A new design for the publishing component for Scabbard
RefSet for libsawtooth 0.8 A design for a generic reference set to replace BlockManager and apply the same concept to Batches.
REST API Maintenance Mode Design for the maintenance mode authorization handler for the Splinter REST API
Scribe for Scabbard v0.7 A design for the scribe component for Scabbard
Service Lifecycle Design for transitioning through the service lifecycle
Service Message Handling A design for a set of components that handles stateless service message handling
Service Timer Design for the Timer that will periodically wake up services
Splinter v0.7 Database Design for the Splinter v0.7 database tables
StoreCommand for Scabbard v0.7 A design for a component that makes database updates
Trait Adapter Pattern Design for the Trait Adapter Pattern

Historical

Features listed here are no longer being worked on, either because they have been completed or abandoned. These documents represent the the intended design at the time the features were implemented. Due to Splinter’s rapid development, the current state of these features may differ somewhat from the original design.

Feature Description Implemented
Admin Service Store New design for storing circuit and circuit proposal state v0.6
Admin UI Splinter administration utility  
Admin UI Profile Redesign New designs for the profile page in the splinter Admin UI  
Biome OAuth Integration New design for a linkage between an OAuth user id and a biome userid v0.6
Challenge Authorization New design for a secure peer authorization type v0.6
Circuit Abandon Design for abandoning a circuit v0.6
Circuit Disband Design for removing a circuit’s networking capabilities v0.6
Circuit Purge Design for removing a circuit’s state data v0.6
Cylinder JWT A JSON Web Token module for the Cylinder Signing library v0.6
Cylinder JWT Authentication Support of Cylinder JWT authentication for the Splinter REST API v0.6
Libsawtooth Receipt Store New design for a Receipt Store trait in libsawtooth v0.6
Oauth Profile Design for retrieving profile information from OAuth providers v0.6
OAuth 2 REST API Authentication Support of OAuth 2 authentication for the Splinter REST API v0.6
PeerManager The PeerManager is in charge of keeping track of peers and their reference counts, as well as requesting connections from the ConnectionManager v0.6
Proposal Removal Design for removing a circuit proposal v0.6
REST API Authorization Design for securing the Splinter REST API v0.6
Scabbard Back Pressure Simple back pressure for the batch queue v0.6
Scabbard Diesel Receipt Store Diesel backed receipt store migrations and configuration in scabbard v0.6
Transact SQL Merkle State Transact Merkle State stored in Postgres and/or SQLite v0.6