April 16, 2023

Kaspa on Rust: Alpha Release

Expectations, Details, and FAQs for the Rusty Kaspa Alpha.

Note: The current Ubuntu Linux binary will not run on Linux versions 18.04–20.04 This will be fixed asap; in the meantime such Linux users must compile themselves according to readme instructions.

Rust Alpha

Introducing the Rusty Kaspa Alpha release! As an Alpha stage product, it’s in the initial phases of development. Although this version is designed as a seamless drop-in for the existing Kaspa Go node, this release will primarily apply to experienced Kaspa command-line users who want to help us evaluate and stabilize this fresh codebase.

Upcoming updates will include new features, with a hard-fork schedule to be announced shortly. While the Alpha release is open for testing to anyone interested, we recommend having command-line experience due to the involvement of Testnet mining, CLI wallet, and Kaspa node usage.

General users and holders will not need to take any action at this stage. The Rust rewrite is designed to increase speed gradually through testing. Still, there will be no immediate change in block speed from Golang to Rustlang. Instead, improvements will be rolled out incrementally over time, accompanied by releasing a hard-fork schedule.

Is the Rust rewrite a hard-fork?

Yes, eventually. However, Rust won’t hard-fork until the block rate increases. A hard-fork schedule will be released.

Do Rust and Go nodes communicate with each other?

Yes, Rust and Go nodes can communicate with each other until the block rate speeds up.

As Rust is integrated and tested, is there a version change?

As such: 1.0 to 1.1 or 2.0. As Rust is developed and integrated, the version numbers will change to reflect updates and improvements. The current version number for Rust in Alpha is version 0.1.0

What should node runners do to prepare for Rust integration?

Node runners should familiarize themselves with the CLI. Additionally, Running a node would help Testnet/Mainnet. If the node is being used, they can run another instance.

How can you help test a Rust node?

The release package contains an executable file called Kaspad, which can be utilized similarly to the Golang Kaspad executable, except for a few occasional command-line options. Both Testnet and Mainnet nodes will be needed.

Can anyone with the correct specs run a Rust node?

If you could run a Go node, they should be able to run a Rust node without issues. However, the node currently doesn’t prune data. While resyncing only covers recent days, a running node continues to accumulate data. It’s worth noting that the Rust database is more compressed (about half the size). Experiments demonstrated that the database size reached approximately 30GB after running continuously for 25 days.

Will I need to do anything with my wallet?

No. However, the CLI wallet is recommended if you intend to participate in the Testnet.

Do miners have to be aware or make any changes while integrating Rust?

Miners do not have to make any changes while Rust integrates, as mining will be conducted on Testnet during the Alpha stage. However, miners should stay informed about updates and developments related to Rust to ensure they are prepared for future changes. In addition, a hard-fork schedule will be released. Once that occurs, miners who don’t update will mine invalid blocks.

What’s the process for using Testnet? How to get Test Coins?

To use the Rust Testnet, run the CLI (Command-Line Interface) with an added argument. Testnet allows users to test and experiment with features such as mining without risking real coins. However, CPU mining is recommended for Testnet.

What are the risks in mining on Mainnet?

Mining on the Mainnet is disabled and strongly discouraged until the software reaches a mature state while testing the Rust Alpha.

Is there a way to report and submit bugs, problems, and suggestions to assist with testing and integration?

To report and submit bugs, problems, or suggestions, users can start by participating in the #qa & #testnet channels on the Kaspa Discord server. The Kaspa Discord will serve as the primary platform for reporting and discussing problems, as well as for updates on future versions.

Will KDX be replaced?

Eventually, it will be replaced by a new version for Rust, KNG.

Does DAGKnight affect Smart Contract development if it started after Rust?

No, the development of DK (DAGKnight) does not affect SC (Smart Contracts) development. The two developments are separate and focus on different aspects of the system. DK mainly deals with consensus ordering, while SC development is more concerned with the transaction processing within blocks.

A New Kaspa Era

The Rust Alpha release marks a significant milestone for Kaspa, laying the foundation for a more efficient, faster, and modern codebase to develop on. Rust will bring numerous benefits when fully implemented, including enhanced performance, improved resource utilization, and adaptability to future developments. Combined with the pioneering consensus mechanism, DAGKnight, Rust will play a crucial role in strengthening the foundation of the Kaspa ecosystem, enabling it to tackle the challenges and opportunities of the rapidly evolving world of blockchain technology.

Overall, the Rust Alpha release signifies a critical step towards a more robust and efficient Kaspa platform. It facilitates a realistic adoption as a cryptocurrency for everyday life. This enhanced performance and scalability ensure a promising future for all its users and contribute to the growth and innovation of the ecosystem. As Kaspa continues to evolve, it aims to become an indispensable tool for daily transactions, providing a seamless and secure financial experience for users across the globe.

Rust Alpha Version 0.1.0: https://github.com/kaspanet/rusty-kaspa/releases/tag/v0.1.0

Rusty Kaspa: https://github.com/kaspanet/rusty-kaspa

Tip: Remember to regularly check for updates and announcements related to the Rusty Kaspa Alpha release!

KASPA

KASPA WIKI

MEDIUM

TELETYPE

DISCORD

TELEGRAM

TWITTER

REDDIT

GITHUB

EXPLORER

Find me on the Kaspa discord — Bubblegum Lightning