Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/astroband/astrocore
Stellar-core implementation in Rust (WIP)
https://github.com/astroband/astrocore
Last synced: 11 days ago
JSON representation
Stellar-core implementation in Rust (WIP)
- Host: GitHub
- URL: https://github.com/astroband/astrocore
- Owner: astroband
- Created: 2019-03-06T12:30:38.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-08-14T21:11:41.000Z (over 1 year ago)
- Last Synced: 2024-08-04T02:07:52.843Z (3 months ago)
- Language: Rust
- Homepage:
- Size: 293 KB
- Stars: 30
- Watchers: 4
- Forks: 5
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- awesome-stellar - Astrocore - Astrocore aims to become an alternative implementation of the stellar-core, the core component of the Stellar network. (Developer Resources)
- awesome-stellar-cn - Astrocore - Astrocore 旨在成为 Stellar 网络核心组件 stellar-core 的替代实现。 (开发者资源)
README
# Astrocore
Astrocore aims to become an alternative implementation of the stellar-core, the core component of the Stellar network. This project is still in the very early development stage
# Quickstart
## Requirements
`rust >= 1.33.0 (nightly)` and `sqlite3`
## Building
1. clone this repo
1. move `.env.example` to `.env` and set `DATABASE_URL` variable there
1. install `diesel` and run migrations:
```Shell
cargo install diesel_cli --no-default-features --features sqlite
diesel migration run
```## Running
RUST_LOG="astrocore=info" RUSTFLAGS=-Awarnings cargo run
# Why another implementation?Stellar itself is a blockchain, decentralized by nature. Having more than one core node implementation is right for decentralization. Also, reimplementing can help to discover possible bugs in the current codebase.
Reference implementation doesn't have any specification of how it works, so we are going to use the reverse engineering approach and kickstart specification writing process(check out [Github wiki](https://github.com/astroband/astrocore/wiki)). Having one facilitates the creation of other implementations tremendously. We put it in the .
## Why Rust?
The Rust language seems perfect for this task because it focuses heavily on performance and reliability. Moreover, Rust code is developer-friendly, and this can help to increase the number of potential contributors.
# Roadmap
## Current stageFor starters, we took up networking part. At the moment Astrocore is able to connect to the existing Stellar network, discover and authenticate peers, and listen to the incoming messages, doing nothing in response
## Next Steps
`Stellar-core` consists of a few major components, according to the docs:
* SCP
* Herder
* Overlay
* Ledger
* History
* BucketList
* TransactionsWe are going to reimplement them and their functionality consecutively. We started from the "Overlay" component, and you can find more in the "Current stage" section. We don't have reliable estimations on the time of delivery of any of these components, because Astrocore is still a very experimental project.
# Astrocore team
[@Arkweid](https://github.com/Arkweid)
[@nebolsin](https://github.com/nebolsin)
[@charlie-wasp](https://github.com/charlie-wasp)