Skip to content

hobbit19/dragonchain

 
 

Repository files navigation

Dragonchain Logo

Dragonchain

Build Status Test Coverage Code Style Black License Banana Index

The Dragonchain platform simplifies the integration of real business applications onto a blockchain. Providing features such as easy integration, protection of business data, fixed 5 second blocks, currency agnosticism, and public blockchain interoperability, Dragonchain shines a new and interesting light on blockchain technology.

No blockchain expertise required!

🔗 Quick Links

📝 Documentation

Please read the docs for further details and documentation.

The documentation is intended for developers wishing to learn about and contribute to the Dragonchain core platform itself.

For interaction with the Dragonchain, we recommend signing up for a Dragonchain Console account and testing with our managed service, as it will be easier for getting started with developing on top of dragonchain (rather than developing the actual Dragonchain core platform).

For interaction and using the Dragonchain, check out the SDKs (or CLI) and their relevant documentation instead:

🖥️ Development

Dragonchain is implemented in Python 3, packaged into container images with Docker, and intended to be run on Kubernetes (at the moment).

The tools.sh script is used to assist in various development functions such as installing dependencies, automatically formatting/linting code, runnint tests, etc. Simply run ./tools.sh with no parameters to view what it can do.

In order to develop locally you should be able to run ./tools.sh full-test and have all checks pass. For this, a few requirements should be met:

  1. Ensure that you have python 3.7 installed locally
  2. Install OS dependencies for building various python package dependencies:
    • On an arch linux system (with pacman): ./tools.sh arch-install
    • On a debian-based linux system (with apt): ./tools.sh deb-install (Note on newer Ubuntu installations you may need to install libsecp256k1-dev if the secp256k1 python package fails to build)
    • On a Mac (with brew): ./tools.sh mac-install
  3. Install the python requirements: ./tools.sh pip-install (Note this will install the python packages to the current user's site-packages. For a python venv, follow the steps below)

Using a Python Virtual Environment

It is highly recommended to use a python virtual environment rather than simply installing the python package requirements to your global environment. This allows the required packages for this project to be seperated from the rest of the (potentially conflicting) packages from the rest of the system.

In order to do this, instead of step 3 above, perform the following steps:

  1. Ensure you have python venv installed, and run python3.7 -m venv .venv
  2. Activate the virtual environment in your shell by running source .venv/bin/activate
  3. Upgrade the setup dependencies for the virtual environment: pip install -U pip setuptools
  4. Install the core dependencies: pip install -r requirements.txt
  5. Install the dev dependencies: pip install -U -r dev_requirements.txt

Other Information

For more information, including a deeper dive on the architecture/code structure, please read the docs.

🚀 Contributing

For info on contributing, please read the contributing document.

✔️ Support

About

Dragonchain blockchain platform - simplified integration of advanced blockchain features

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.2%
  • Other 0.8%