Skip to content
forked from XDagger/xdagj

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

License

Notifications You must be signed in to change notification settings

Ambassador-pi/xdagj

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to XDAGJ

FOSSA Status GitHub release (latest SemVer) GitHub GitHub issues

中文版

Directory

System environment

JDK   : v17
Maven : v3.8.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_Tutorial

XDAGJ_Devnet_Tutorial

XDAGJ TestNet Explorer

Develop

XDAGJ has the basic functions as a pool. Follow-up works will improve the stability of the system and add new functions. The aim is to prepar for XDAG to enter the metaverse. It is important to adopt excellent blockchain technology.

XDAG Mars Project

Four stages:

Exploration phase: XDAGJ testnet is online (online, in beta)

  • Deploy XDAGJ test network environment, open beta

  • Implement the RandomX algorithm

  • Implement the libp2p network protocol

  • Testnet blockchain browser

  • Test coin acquisition

Landing phase: XDAGJ mainnet is online

  • Add test cases: write test cases for existing functions

  • Add log functions: provide a relatively complete log service to facilitate trouble shooting

  • Optimize synchronization protocol: ameliorate the existing synchronization protocol and improve synchronization efficiency

  • Implement the snapshot function: reduce the cost of runing a mining pool and boost the loading process

  • Implement the RPC function: access to Web3j, realize the standardization of the interface

  • Introduce the Stratum protocol for miners

  • Lightweight wallet application: connect to MateMask, join the browser wallet

  • Standardize the format of public and private keys, follow the BIPXX specification, and add mnemonic words to generate public and private key pairs

Expansion phase: XDAGJ & EVM

  • Improve the address block structure and increase the handling fee

  • Optimize and improve mobile wallets to improve user experience

  • Support smart contracts, implement EVM that supports Solidity, and be compatible with Ethereum smart contracts

  • Lower the threshold of mining pool users and gradually open the whitelist to achieve complete decentralization

Prosperity phase: XDAGJ & DeFi

  • Implement cross-chain protocols, compatible with access to multiple blockchain systems, to achieve intercommunication between XDAG and other chain worlds

  • Implement the oracle function

  • Join a distributed exchange

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.

FAQ

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, we 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 [email protected]. 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 [email protected] .

Sponsorship

Since the Apollo Project was launched, XDAGJ has achieved a 0 to 1 breakthrough. The development of XDAGJ has been on the right track. Your support can drive a successful technology implementation of XDAGJ.

XDAG:+89Zijf2XsXqbdVK7rdfR4F8+RkHkAPh

Other

XDAGJ Libp2p Introduction

XDAG WIKI

XDAG Whitepaper

XDAG Protocol

License

FOSSA Status

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 67.9%
  • C++ 20.5%
  • C 8.1%
  • Assembly 2.4%
  • CMake 0.9%
  • PowerShell 0.2%