Stella

Stella is a software that finds prime k-tuplets (also called prime constellations). For now, it is just an inefficient prototype with very few features.

One of it's goals is to become usable for Riecoin mining and possibly succeed rieMiner (Stella can be seen as a Rust port of rieMiner), and to break world records. Even if the Rust implementation were to remain less efficient, the improved code readability may help to try new optimizations that could then be implemented and ported back to rieMiner.

Another goal would be to help Riecoin and number crunching developers that are interested in understanding how the mining algorithm works. rieMiner is the merge and heavy refactor of previous Riecoin miners, and carries years of history, which can make the understanding of its code difficult, especially with the fact that documentation and explanations by previous developers are basically nonexistent. Stella is written from scratch, which can greatly help the learning process for future developers.

Build this program

Stella is written in Rust and uses Cargo, refer to the installation chapter of the Rust Book to learn how to install them on your system if needed. Depending on your OS, you may need to adjust some commands below.

Once done, clone the Stella's repository with Git in a terminal or download the Zip via the GitHub's web interface, change to the directory, and build the code.

bash git clone https://github.com/Pttn/Stella.git cd Stella cargo build --release

An executable is produced at target/release/stella, which can be ran either normally or with cargo run --release, but please read below first.

Configure this program

Stella uses a text configuration file, by default a "Stella.conf" placed in the terminal's present working directory. It is also possible to use custom paths, examples with cargo run:

bash cargo run --release -- config/example.txt cargo run --release -- "config 2.conf" cargo run --release -- /home/user/Stella/rieMiner.conf"

or

bash cd target/release/ ./stella ../../Stella.conf ./stella config/example.txt ./stella "config 2.conf" ./stella /home/user/Stella/rieMiner.conf

The syntax is very simple: each option is set by a line like

Option = Value

It is case sensitive. A line starting with # will be ignored, as well as invalid ones. Spaces or tabs just before or after = are also trimmed. If an option is missing, the default value(s) will be used. If there are duplicate lines for the same option, the last one will be used.

Alternatively, command line options can be used like

bash cargo run --release -- config.conf Option1=Value1 "Option2 = Value2" Option3=WeirdValue\!\! ./stella config.conf Option1=Value1 "Option2 = Value2" Option3=WeirdValue\!\!

A configuration file path must always be provided. If the file exists, its options will be parsed first, then the command line ones, so the latter will override the common ones from the file. Else, it is just ignored, so just put a dummy value if you want to configure only by command line. The syntax of a command line option is the same as a line of the configuration file. You are responsible for taking care of special characters if needed.

Options

Developers and license

This work is released under the MIT license.

Contributing

Feel free to make a pull request, and I will review it. By contributing to Stella, you accept to place your code under the MIT license.

Donations to the Riecoin Project are welcome:

Resources