dtr-org / unit-e

A digital currency for a new era of decentralized trust
https://unit-e.io
MIT License
45 stars 15 forks source link
blockchain cryptocurrency distributed-ledger p2p

Unit-e

Build Status pullreminders

The unit-e client is the first implementation for the Unit-e cryptocurrency network protocol, implemented in C++.

What is Unit-e?

Unit-e is providing a scalable and decentralized monetary and payment network based on current scientific research. It is the first project supported by the Distributed Technology Research Foundation (DTR). Its design is backed by the research DTR is funding, delivering the scalable performance needed to enter mainstream use. You can find more information about the project on the website and in the technical paper.

The Unit-e client

:warning::warning::warning: WARNING: The client is under rapid development, is subject to breaking protocol changes (consensus, blockchain, p2p, RPC) and redoing from scratch of the alpha testnet. Please check the announcements page for information regarding such changes. :warning::warning::warning:

This repository hosts the implementation of the first Unit-e client: unit-e, also known as the "Feuerland" client. It's based on the Bitcoin C++ client and introduces major improvements and features such as:

We regularly merge upstream changes into the unit-e code base and also strive to contribute back changes which are relevant for upstream as we already have done. The last upstream sync was with the 0.17 version, plus some changes cherry-picked from later development branches.

Alpha Testnet

With the launch of the alpha testnet we will start a regular cadence of releases. The goals of opening the project and network are to further develop the protocol, client and community:

Currency emission

The current emission rate is fixed over time and isn't meant to be definitive, as we are still exploring the emission model from the economics & security perspectives, which goes side by side with the consensus protocol that is going to be further developed.

We plan to explore models with dynamic emission rate, where the network pays for the security it needs. In PoS consensus, taking into account the number of tokens being deposited/staked seems like the right direction.

As was also researched, time-based emission, starting very high and decreasing over the years (in Bitcoin halving every four years), isn't securing the protocol efficiently nor is it fair in terms of compounding and the future currency distribution.

Running from source

To run unit-e from sources you will need to check it out from this GitHub repository, compile it, and launch the resulting binary. This currently is the only supported way of running it. Detailed instructions for a variety of platforms can be found in the docs directory.

Development

Development takes place on the master branch. All code changes go through peer-reviewed and tested pull requests. We aim for meeting high standards as an open source project and a collaborative community project. The contribution workflow is described in CONTRIBUTING.md.

The Unit-e team is committed to fostering a welcoming and harassment-free environment. All participants are expected to adhere to our code of conduct.

Testing

We strive to keep the unit-e codebase fully tested and covered by automated tests.

Unit tests can be compiled and run with: make check. Further details on running and extending unit tests can be found in src/test/README.md.

There are also functional tests, including regression and integration tests. They are written in Python and most of them are also run as part of automated continuous integration. These tests can be run locally with test/functional/test_runner.py.

Unit and functional tests are run on Travis as part of our continuous integration system. This tests the master branch and all pull requests. It makes sure that code is checked, built and tested for Windows, Linux, and OS X automatically before it gets merged into master.

Any additional testing, automated or manual, is very welcome. If you encounter any issues or run into bugs please report them as issues.

Related repositories

License

unit-e is released under the terms of the MIT license. See COPYING for more information or see https://opensource.org/licenses/MIT.