XSN Core integration/staging tree
What is XSN?
XSN is an experimental digital currency that enables instant payments to anyone, anywhere in the world. XSN uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried out collectively by the network. XSN Core is the name of open source software which enables the use of this currency.
master branch is regularly built and tested, but is not guaranteed to be
completely stable. Tags are created
regularly to indicate new official, stable release versions of XSN Core.
The contribution workflow is described in CONTRIBUTING.md.
Testing and code review is the bottleneck for development; we get more pull requests than we can review and test on short notice. Please be patient and help out by testing other people's pull requests, and remember this is a security-critical project where any mistake might cost people lots of money.
Developers are strongly encouraged to write unit tests for new code, and to
submit new unit tests for old code. Unit tests can be compiled and run
(assuming they weren't disabled in configure) with:
make check. Further details on running
and extending unit tests can be found in /src/test/README.md.
There are also regression and integration tests, written
in Python, that are run automatically on the build server.
These tests can be run (if the test dependencies are installed) with:
The Travis CI system makes sure that every pull request is built for Windows, Linux, and OS X, and that unit/sanity tests are run automatically.
Manual Quality Assurance (QA) Testing
Changes should be tested by somebody other than the developer who wrote the code. This is especially important for large or high-risk changes. It is useful to add a test plan to the pull request description if testing the changes is not straightforward.
Running with Docker
If you are already familiar with Docker, then running XSN with Docker might be the the easier method for you. To run XSN using this method, first install Docker. After this you may continue with the following instructions.
Please note that we currently don't support the GUI when running with Docker. Therefore, you can only use RPC (via HTTP or the
xsn-cli utility) to interact with XSN via this method.
Right now we don't store the image in docker hub, so you need to build it on your own:
docker build . -t xsn
Start XSN daemon: ( you might consider to bind custom ports in case you want to run a node or make usage of the json-rpc api https://docs.docker.com/engine/reference/run/)
docker run -d -P --name xsn xsn:latest
View current block count (this might take a while since the daemon needs to find other nodes and download blocks first):
docker exec xsn xsn-cli getblockcount
View connected nodes:
docker exec xsn xsn-cli getpeerinfo
docker stop xsn
docker cp xsn:/home/xsn/.xsncore/wallet.dat .
Start daemon again:
docker start xsn
Changes to translations as well as new translations can be submitted to XSN Core's Transifex page.
Translations are periodically pulled from Transifex and merged into the git repository. See the translation process for details on how this works.
Important: We do not accept translation changes as GitHub pull requests because the next pull from Transifex would automatically overwrite them again.
Translators should also subscribe to the mailing list.