Summary

Astrocore is an implementation of the stellar-core, the core component of the Stellar network, written in Rust.

Goals

Astrocore has two main goals:

  • become a full-fledged alternative to the stellar-core, so any Stellar network participant can use it
  • kickstart specs writing. At the moment, stellar-core doesn’t have formal specs on how it works. This makes it very difficult to create other implementations.

Description

Having more than one implementation of the core node would improve the diversity and resilience of the Stellar ecosystem and infrastructure. Development becomes more decentralized, leading to a network that couldn't be taken down by a single virus or attack (like Corebleed for Bitcoin).

Astrocore is written in Rust, which seems perfect for this task because it focuses heavily on performance and reliability. Moreover, Rust code is more developer-friendly, than C++, this can help to increase the number of potential contributors.

Creating specs along the development process facilitates the development of other implementations

Current status

Astrocore is in a very early development stage. But you can already build it and run it! At the moment, Astrocore can connect to the network, discover and authenticate peers, receive and broadcast messages.

Links

17 days later

MisterTicot
I do not think that astrocore will process transactions faster than stellar-core does.
I see several reasons for this:

  1. Abstractions Rust provides are not always free;
  2. The asynchronous part in the Rust is still developing.

The maximum that I hope for is a comparable level.

22 days later

How is the progress with your implementation? Is there any ETA?
Would be awesome to see Astrocore nodes on Stellar pubnet.

    OrbitLens
    We working on a transactions subsystem. It's huge part of work(7k LOC and 15k tests LOC original C++ code in stellar-core). The implemented transaction subsystem allows us to take the Ledger subsystem for implementation(another big chunk of work). And only after that we can run Astrocore as a validator or a retranslator in the testnet (I hope).

    9 days later

    Sounds like a great plan. How experienced is your team? Can you point to some large open-source Rust projects that team members have led in the past?

      nealmcb We expirienced in large web applications. You can find a brief info about us here: Evil Martians. Unfortunately, we do not yet have large open-source Rust projects.