/xdagj

XDAGJ is an implementation of XDAG in Java. https://xdag.io

Primary LanguageJavaMIT LicenseMIT

Welcome to XDAGJ

FOSSA Status GitHub release (latest SemVer) GitHub GitHub issues

中文版

Directory

System environment

JDK   : v15
Maven : v3.6.3

Installation and usage

XDAGJ Testnet Tutorial can help you quickly access XDAGJ testnet by using wallets and mining functions. The Private Chain Building Tutorial helps you to build a private-chain for testing XDAGJ and finding bugs.

XDAGJ Testnet Access Tutorial

XDAGJ Private Chain Construction Tutorial

Explorer

Develop

XDAGJ already has the basic functions as a pool, and the follow-up work is to improve the stability of the system while optimizing the existing code. It is important to adopt excellent blockchain technology for XDAGJ.

The main work of the next stage includes but not limited

  • Optimize the XDAG consensus process and synchronization protocol
  • LibP2P is used to replace the DNET network and gradually improve the degree of decentralization as long as the system stability allows.
  • Open API interface, provide black box testing.
  • Add a commission to the transaction.
  • Use BIPxx and other specifications to improve the existing public and private key and address generation methods, and provide a more convenient and universal key storage method.
  • Add snapshot function to solve the problem of slow loading speed of historical main block.
  • Optimize the address block structure to avoid dust attacks.

At the same time, we are also actively providing more application scenarios for XDAG, including but not limited.

  • Explore the possibility of using neo4j as the storage layer to provide a visual DAG storage.
  • Explore a way to add a virtual machine to XDAG to implement smart contracts and improve the usability of the system.
  • Explore effective cross-chain solutions to break the closed ecology of XDAG.

Code

  • Git

    We use the gitflow branch model

    • master is the main branch, which is also used to deploy the production environment. Cannot modify the code directly at any time.
    • develop is the development branch, always keep the latest code after completion and bug fixes.
    • feature is a new feature branch. When developing new features, use the develop branch as the basis, and create the corresponding feature/xxx branch according to the development characteristics.
    • release is the pre-launch branch. During the release test phase, the release branch code will be used as the benchmark test. When a set of features is developed, it will be merged into the develop branch first, and a release branch will be created when entering the test. If there is a bug that needs to be fixed during the testing process, it will be directly fixed and submitted by the developer in the release branch. When the test is completed, merge the release branch to the master and develop branches. At this time, the master is the latest code and is used to go online.
    • hotfix is the branch for repairing urgent problems on the line. Using the master branch as the baseline, create a hotfix/xxx branch. After the repair is completed, it needs to be merged into the master branch and the develop branch.
  • Commit Message

    The submission message must begin with a short subject line, followed by an optional, more detailed explanatory text, which is separated from the abstract by a blank line.

  • Pull Request

    The pull request must be as clear and detailed as possible, including all related issues. If the pull request is to close an issue, please use the Github keyword convention close, fix, or resolve. If the pull request only completes part of the problem, use the connected keyword. This helps our tool to correctly link the issue to the pull request.

  • Code Style

    Use the formatter_eclipse.xml or formatter_intellij.xml of the xdagj code style in the misc/code-style folder.

  • Code Review

    We value the quality and accuracy of the code. Therefore, we will review all the code that needs to be changed.

Contribution

  • Security Question

    XDAGJ is still in the process of large-scale development, which means that there may be problems with existing codes or protocols, or errors that may exist in practice. If you find a security problem, I hope you can give it back as soon as possible.

    If you find a problem that may affect the security of the deployed system, we hope that you can send the problem privately to xdagj@xdag.io. Please do not discuss it publicly!

    If the problem is a weakness of the agreement or does not affect the online system, it can be discussed publicly and posted to issues.

  • features

    We are very happy to add more useful and interesting new features to XDAGJ. You can talk about any interesting new features.

If you are interested in the development of XDAGJ, we also welcome you to join the developer team and contribute your strength to XDAGJ. You can get in touch with us at xdagj@xdag.io .

Sponsorship

Since the Apollo Project was proposed, XDAGJ has achieved a 0 to 1 breakthrough as a milestone.The development of XDAGJ has gradually been on the right track. Due to limited resources, your support can strongly help us to improve XDAGJ.

XDAG:+89Zijf2XsXqbdVK7rdfR4F8+RkHkAPh

Other

XDAGJ Libp2P Introduction

XDAG WIKI

XDAG Whitepaper

XDAG Protocol

License

FOSSA Status