https://github.com/my-cloud/ruthenium
Golang implementation of the Ruthenium protocol
https://github.com/my-cloud/ruthenium
blockchain cryptocurrency cryptography decay demurrage ecdsa elliptic fair income p2p proof-of-humanity reward sha256 smart-contract sustainable transaction
Last synced: 5 months ago
JSON representation
Golang implementation of the Ruthenium protocol
- Host: GitHub
- URL: https://github.com/my-cloud/ruthenium
- Owner: my-cloud
- License: unlicense
- Created: 2022-09-14T12:35:12.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-12-11T23:53:45.000Z (over 1 year ago)
- Last Synced: 2025-01-18T16:48:06.150Z (over 1 year ago)
- Topics: blockchain, cryptocurrency, cryptography, decay, demurrage, ecdsa, elliptic, fair, income, p2p, proof-of-humanity, reward, sha256, smart-contract, sustainable, transaction
- Language: Go
- Homepage:
- Size: 3.92 MB
- Stars: 12
- Watchers: 2
- Forks: 1
- Open Issues: 26
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Ruthenium
[](https://github.com/my-cloud/ruthenium/releases)
[](https://github.com/my-cloud/ruthenium/actions?query=workflow%3ABuild+event%3Apush+branch%3Amain)

## Description
[](https://github.com/my-cloud/ruthenium/wiki)
[](https://github.com/my-cloud/ruthenium/wiki/Whitepaper)
Golang implementation of the Ruthenium protocol.
You will find a detailed description of the project in the [wiki](https://github.com/my-cloud/ruthenium/wiki/Home). To understand the motivations behind the creation of this blockchain, you can peruse the comprehensive details outlined in the Ruthenium [whitepaper](https://github.com/my-cloud/ruthenium/wiki/Whitepaper).
## Quickstart
There are two ways to run a Ruthenium node. You can either use your own build from [sources](https://github.com/my-cloud/ruthenium/releases) (Option A) or use a docker image provided in the [repository packages](https://github.com/my-cloud/ruthenium/pkgs/container/ruthenium) (Option B).
### Prerequisites
* Option A (using sources):
* You need to have [](https://go.dev/dl/) installed.
* If you are using Windows, you need to have [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) installed.
* Option B (using docker image):
* You need to have [](https://www.docker.com/) installed.
* Your firewall port 10600 must be open (please read "Program arguments" section of the [validator node](validatornode/README.md#program-arguments) and [access node](accessnode/README.md#program-arguments) documentation if you want to use another port than 10600).
* To get an income or validate blocks ou need to be registered in the [Proof of Humanity](https://github.com/my-cloud/ruthenium/wiki/Whitepaper#proof-of-humanity) registry.
### Installation
* Option A (using sources):
* Download the sources archive:
```
https://github.com/my-cloud/ruthenium/releases/latest
```
* Option B (using docker image):
* Pull the image:
```
sudo docker pull ghcr.io/my-cloud/ruthenium:latest
```
### Launch
* Option A (using sources):
* Extract files from the sources archive
* At root level (ruthenium folder), run the [validator node](validatornode/README.md):
```
go run validatornode/main.go
```
* At root level (ruthenium folder), run the [access node](accessnode/README.md):
```
go run accessnode/main.go
```
* Option B (using docker image):
* Run the [validator node](validatornode/README.md):
```
sudo docker run -p 10600:10600 -ti ghcr.io/my-cloud/ruthenium:latest \app\validatornode
```
* Run the [access node](accessnode/README.md):
```
sudo docker run -p 8080:8080 -ti ghcr.io/my-cloud/ruthenium:latest \app\accessnode
```
* Using a web browser, go to:
* http://localhost:8080
## APIs
* [validator node API](validatornode/README.md#api)
* [access node API](accessnode/README.md#api)
## Contributing
[](https://github.com/my-cloud/ruthenium/fork)
[](https://github.com/my-cloud/ruthenium)
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please do not hesitate to [report a new bug](https://github.com/my-cloud/ruthenium/issues/new?assignees=&labels=bug&template=bug_report.md&title=) or [request a new feature](https://github.com/my-cloud/ruthenium/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=). Of course, you are welcome to fork the repository and create a pull request. In any case, please let's take a look at the [contributing](.github/CONTRIBUTING.md) file.
⭐ Don't forget to give the project a [star](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars)! Thanks again!
## Contact
Founder: [Jérémy Pansier](https://github.com/JeremyPansier) - jpansier@my-cloud.me
Repository: https://github.com/my-cloud/ruthenium
## Authors and Acknowledgments
[](https://github.com/my-cloud/ruthenium/graphs/contributors)
Special thanks to [Gwenall Pansier](https://github.com/Gwenall) who contributed since the early developments.
For a [tutorial to create a first blockchain in Go][1], thanks to [Yuko Sakai][2] & [Jun Sakai][3].
## License
[](LICENSE)

## Project status
[](https://github.com/my-cloud/ruthenium/commits/main)
[](https://sonarcloud.io/component_measures?id=my-cloud_ruthenium&metric=sqale_rating)
[](https://sonarcloud.io/component_measures?id=my-cloud_ruthenium&metric=security_rating)
[](https://sonarcloud.io/component_measures?id=my-cloud_ruthenium&metric=reliability_rating)
[](https://sonarcloud.io/component_measures?id=my-cloud_ruthenium&metric=coverage)
While the main principles have been implemented, there is still a substantial amount of refactoring and test implementation remaining.
[1]: https://www.udemy.com/course/golang-how-to-build-a-blockchain-in-go/ "Udemy tutorial to build a blockchain in Go"
[2]: https://www.udemy.com/user/myeigoworld/ "Yuko Sakai LinkedIn profile"
[3]: https://udemy.com/user/jun-sakai/ "Jun Sakai LinkedIn profile"