Announcing the Aion Kernel in RUST

A second build of the Aion Kernel to supplement our Java implementation

chris@aion
Aion
3 min readJan 23, 2019

--

Supporting multiple clients is deeply woven into the Aion core roadmap.

“The Aion network is a public blockchain system designed to support a future where many blockchains exist to solve unique industry and societal problems of the modern world”. [1]

As a result, the project has leveraged its international presence to work on a second implementation of the Aion Kernel. We are now excited to announce that the rust client is battle tested and ready for use.

The first Aion Kernel was written in Java, a high performance and well structured Java client that gave us a great starting point to rethink and plan new implementations. As we approached thinking about a second implementation our first question was “what system level language should we choose” and “what kind of stack can achieve substantial gains in hardware requirements”. For several reasons, Rust is an ideal candidate.

Rust has an absence of data races, memory safety without the need for a garbage collection, a flexible enum system, the ability to use libraries created by other languages if you implement a C interface, and it’s a language that fits well for building scalable software. It is a high performance, static, strong-type and a multi-paradigm language. Despite the fact that it is quite new, it has shown tremendous promise it’s short life as demonstrated by robust Ethereum client developed by Parity Technologies. 💪

The implementation of multiple kernels opens the door for diverse enhancement at the module level. It also provides a larger surface area for non-core contributors to push improvements that make their way into other kernel implementations. By evaluating the performance and security of multiple kernels, globally operated branches can achieve a greater standard than possible alone.

The rust kernel exists at a peer-to-peer network level which lowers the chance of network hang regardless of which individual implementation fails. The healthier the distribution of java and rust kernels, the more enhanced the stability, resiliency and security of the network. It also provides the community an alternate option depending on their requirements or familiarity.

Bender Diversity = Stability and Security

While this implementation is our best yet, by leveraging built-in benchmarking systems we see more room to enhance the kernel, specifically in areas like IO, memory usage and communication. We also have plans to make the individual module independent and swappable. Furthermore, a light client can be spawned from the existing codebase. (this is a possible grant)

The Aion Rust Kernel will continue to grow as a responsible codebase in line with the foundation’s vision and we’re excited to see the community start using it.

Here are some important links to get started: 👩🏾‍💻👨🏼‍💻

Aion Rust Kernel: https://github.com/aionnetwork/aionr/releases/latest

Documentation: https://github.com/aionnetwork/aionr/wiki

Support for the Kernel: https://aionnetwork.atlassian.net/servicedesk/customer/portal/9

--

--