- Notifications
You must be signed in to change notification settings - Fork7
Acropolis modular node architecture & components in Rust
License
input-output-hk/acropolis
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Acropolis is a project to create a kit of modular parts, written inRust, which allows flexible construction of clients, services and APIs forthe Cardano ecosystem.
This project has moved out of the experimental phase and is being implementedaccording to a set of deliverables documented in the Treasury Fund Milestones.
The Acropolis Cardano Node is a rust implementation that seeks parity with theHaskell implementation and is intended to be a full block producing node on mainnet.Please see theoverview document that describes the phases ofdevelopment, descriptions, expected use cases, and runtime environments expectedof each of the deliverables.
Acropolis is based on theCaryatid framework,which in turn uses a message bus such asRabbitMQto communicate between micro-services.
graph TB subgraph Process A Module1(Module 1) Module2(Module 2) Caryatid1(Caryatid Framework) Module1 <--> Caryatid1 Module2 <--> Caryatid1 end subgraph Process B Module3(Module 3) Caryatid2(Caryatid Framework) Module3 <--> Caryatid2 end RabbitMQ([RabbitMQ Message Bus]) style RabbitMQ fill: #eff Caryatid1 <--> RabbitMQ Caryatid2 <--> RabbitMQ- Peer Network Interface -implementation of the Node-to-Node (N2N) client-side (initiator)protocol, allowing chain synchronisation and block fetching
- Mithril Snapshot Fetcher -Fetches a chain snapshot from Mithril and replays all the blocks in it
- Genesis Bootstrapper - reads the Genesisfile for a chain and generates initial UTXOs
- Snapshot Bootstrapper - downloads ledger state snapshot files for configured epochs,streams and parses the CBOR data (UTXOs, pools, accounts, DReps, proposals), and publishes completion messages tosignal snapshot readiness to other modules.
- Block Unpacker - unpacks received blocksinto individual transactions
- Tx Unpacker - parses transactions and generates UTXOchanges
- UTXO State - watches UTXO changes and maintains a basic in-memory UTXO state
- SPO State - matches SPO registrations and retirements
- DRep State - tracks DRep registrations
- Governance State - tracks Governance Actions and voting
- Stake Delta Filter - filters out stake address changes and handles stake pointerreferences
- Epochs State - track fees blocks minted and epochs history
- Accounts State - stake and reward accounts tracker
- Assets State - tracks native asset supply, metadata, transactions, and addresses
There is currently only one process, for testing:
- Omnibus - includes all the above modules fortesting, by default using the internal message bus only
Everything is locally contained or is a crate dependency. To build the node,
make build
The following will run the omnibus process.
make run
About
Acropolis modular node architecture & components in Rust
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors15
Uh oh!
There was an error while loading.Please reload this page.