about

AXE is a decentralized X11-based cryptocurrency. The foundation of AXE network is hybrid PoW/PoSe system. First-tier nodes provide hash power to move data and secure the blockchain, while the second tier of full nodes adds extra privacy and increases network performance.

AXE core clients are full nodes, upgradeable to Masternodes and the most secure way to access the network. Full node client downloads a complete copy of the blockchain and participating in transactions verification. Thin (mobile) clients are using SPV protocol to communicate with full nodes and perform operations without downloading a full copy of the blockchain.

Specifications

  • algorithm: X11
  • ticker: AXE
  • prefix: P, 7
  • supply: 21000000
  • maturity: 101
  • confirmations: 6
  • spacing: 2.5 min
  • diff: KGW/DGW
  • block size: 2MB
  • port: 9937
  • rpc port: 9337

Masternodes

The second tier of AXE network - masternodes. They sustain a certain minimum level of network performance and provide additional privacy (PoSe).

InstantSend

Allows for near-instant transactions. AXE InstantSend transactions are fully confirmed within four seconds.

PrivateSend

Gives you financial privacy by obscuring the source of funds on the blockchain.

GUI

    Axe-Qt on macOS
    Axe-Qt v1.6.0.1 on macOS Catalina

    Axe Electrum on macOS
    Axe Electrum v3.3.8.2 on Ubuntu 19

Support the development

    AXE 7mLZCucekeWCXYaiR93BThq9TdYc1ZS7Tw
    BTC 32NDo6qd8KxvnDizseqBAAox5TM8rLmMiJ
    LTC LdihK8mesqJ1Pm11zBqtJW2SmksdgGMuNd

core

Gitian builds

Use AXE-gitian to perform deterministic binary builds using Vagrant and VirtualBox with Ansible. Gitian provides a way to be reasonably certain that the AXE executables are really built from the exact source on GitHub and have not been tampered with. It also makes sure that the same, tested dependencies are used and statically built into the executable. Multiple developers build from source code by following a specific descriptor ("recipe"), cryptographically sign the result, and upload the resulting signature. These results are compared and only if they match is the build is accepted.

masternodes

AXE Core v1.2 DIP3 Upgrade

To start AXE masternode on a dedicated server you will need:
  • 1000 AXE collateral
  • Server (2GB RAM) with Ubuntu (18.04) and static IP (Vultr)
  • Axe Core on local machine
  • Basic Linux skills

  • Setup VPS

    Switch to dedicated user AXERUNNER:
    adduser axerunner
    usermod -aG sudo axerunner
    su axerunner
    cd ~

    Prepare the system

    Update operating system and install dependencies:
    sudo apt update
    sudo apt upgrade
    sudo apt install ufw git fail2ban python virtualenv unzip pv
    sudo ufw allow ssh/tcp
    sudo ufw limit ssh/tcp
    sudo ufw allow 9937/tcp
    sudo ufw allow 9936/tcp
    sudo ufw allow 9337/tcp
    sudo ufw logging on
    sudo ufw disable
    sudo ufw enable
    Add some swap:
    sudo fallocate -l 4G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'


    Install AXE on VPS

    cd ~
    git clone https://github.com/axerunners/axerunner
    ~/axerunner/axerunner install
    ~/axerunner/axerunner install sentinel
    

    Generate masternode bls key on local machine

    Download AXE core from releases. Open your local Axe wallet (axe-qt)and let it sync with the network. After downloading the blockchain you can create masternode address with the key. Open debug console to enter bls generate and getaccountaddress mn. Send 1000 AXE to just generated mn address.

    bls generate
    
    {
      "secret": "28a85abb5aa8e820f65e33974cef0ab0bf06195f61454d2feb7fa578612d2228",
      "public": "144cbf4d472716b9504a54c7ca26906a3346253b787ffeb1a4999325049f5b2c51ef2e7c215d85f0a9142ec1c78db99b"
    }

    Go back to VPS to edit the configuration file

    cd ~ && cd .axecore
    nano axe.conf
    Insert following:
    #- - - -
    rpcuser=XXX
    rpcpassword=XXX
    rpcallowip=127.0.0.1
    rpcport=9337
    #- - - -
    listen=1
    server=1
    daemon=1
    #- - - -
    externalip=XXX.XXX.XXX.XXX
    masternodeblsprivkey=XXXXXXXXXXXXXXXXXXXXXXXXXXX
    #- - - -
  • rpcuser/password might be random
  • externalip is the static IP adress of your VPS
  • masternodeblsprivkey is generated with bls generate

  • Press enter to make sure there is a blank line at the end of the file, then press Ctrl + X to close the editor and Y and Enter to save the file. We now need to restart the masternode for this change to take effect:

    ~/axerunner/axerunner restart now

    Prepare a ProRegTx transaction

    We need to get a new, unused address from the wallet to serve as the owner address. This is different to the collateral address

    getnewaddress
    
    PMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5

    Then either generate or choose an existing second address to receive the owner’s masternode payouts:

    getnewaddress
    
    PLqyR8PHEB7Fp1ue8nSuLfuxQhrj5PSTDv

    You can also optionally generate and fund a third address to pay the transaction fee. The private keys to the owner and fee source addresses must exist in the wallet submitting the transaction to the network. If your wallet is protect by a password, it must now be unlocked to perform the following commands. Unlock your wallet for 5 minutes:

    walletpassphrase yourSecretPassword 300

    We will now prepare an unsigned ProRegTx special transaction using the protx register_prepare command. This command has the following syntax:

     protx register_prepare collateralHash collateralIndex ipAndPort ownerKeyAddr
      operatorPubKey votingKeyAddr operatorReward payoutAddress (feeSourceAddress)

    Open a text editor such as notepad to prepare this command. Replace each argument to the command as follows:

  • collateralHash:The txid of the 1000 Axe collateral funding transaction
  • collateralIndexThe output index of the 1000 Axe funding transaction
  • ipAndPortMasternode IP address and port, in the format x.x.x.x:9937
  • ownerKeyAddrThe new Axe address generated above for the owner/voting address
  • operatorPubKeyThe BLS public key generated above
  • votingKeyAddrThe new Axe address generated above, or the address of a delegate, used for proposal voting
  • operatorRewardThe percentage of the block reward allocated to the operator as payment
  • payoutAddressA new or existing Axe address to receive the owner’s masternode rewards
  • feeSourceAddress An (optional) address used to fund ProTx fee. payoutAddress will be used if not specified.

  • Example (remove line breaks if copying):

    protx register_prepare
      ad308ec104bdf113444be609eb3dce9474a5550424204c6538843e3ccd3d4e78
      1
      140.82.59.51:9999
      PMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5
      144cbf4d472716b9504a54c7ca26906a3346253b787ffeb1a4999325049f5b2c51ef2e7c215d85f0a9142ec1c78db99b
      PMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5
      0
      PLqyR8PHEB7Fp1ue8nSuLfuxQhrj5PSTDv

    Output:

    
    {
       "tx": "0300010001784e3dcd3c3e8438654c20240455a57494ce3deb09e64b4413f1bd04c18e30ad0000000000feffffff01cccfa204000000001976a9141ea44ced396667eb7d1c5b3699e04b5b3046ecfb88ac00000000d1010000000000784e3dcd3c3e8438654c20240455a57494ce3deb09e64b4413f1bd04c18e30ad0100000000000000000000000000ffff8c523b33271411c59262c9633a1bb810a7fc2b833c43cfa852ab144cbf4d472716b9504a54c7ca26906a3346253b787ffeb1a4999325049f5b2c51ef2e7c215d85f0a9142ec1c78db99b11c59262c9633a1bb810a7fc2b833c43cfa852ab00001976a91405c5fed6a3eb0b92ea5119039efae7a8dee5456488ac4e6cc5451440a6044dbd04d33a11f4cddc9021532ede3012ebbc31c0bb4ceb9c00",
      "collateralAddress": "PiFfzbwiN9oneftd7cEfr3kQLRwQ4kp7ue",
      "signMessage": "PLqyR8PHEB7Fp1ue8nSuLfuxQhrj5PSTDv|0|yMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5|PMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5|4e00de34ee03d28adb4e1fdaec966ae239c11da7e6115f566fc4b3f75c8a5503"
    }

    Next we will use the collateralAddress and signMessage fields to sign the transaction, and the output of the tx field to submit the transaction.


    Sign the ProRegTx transaction


    We will now sign the content of the signMessage field using the private key for the collateral address as specified in collateralAddress.

    signmessage address message

    Example:

    signmessage PiFfzbwiN9oneftd7cEfr3kQLRwQ4kp7ue PLqyR8PHEB7Fp1ue8nSuLfuxQhrj5PSTDv|0|PMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5|PMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5|4e00de34ee03d28adb4e1fdaec966ae239c11da7e6115f566fc4b3f75c8a5503

    Output:

    H3ub9BATtvuV+zDGdkUQNoUGpaYFr/O1FypmrSmH5WJ0KFRi8T10FSew0EJO/+Ij+OLv4r0rt+HS9pQFsZgc2dE=

    Submit the signed message


    We will now submit the ProRegTx special transaction to the blockchain to register the masternode. This command must be sent from a Axe Core wallet holding a balance, since a standard transaction fee is involved. The command takes the following syntax:


    protx register_submit tx sig

    Where:

  • tx: The serialized transaction previously returned in the tx output field from the protx register_prepare command
  • sig: The message signed with the collateral key from the signmessage command

  • Example:


    protx register_submit 0300010001784e3dcd3c3e8438654c20240455a57494ce3deb09e64b4413f1bd04c18e30ad0000000000feffffff01cccfa204000000001976a9141ea44ced396667eb7d1c5b3699e04b5b3046ecfb88ac00000000d1010000000000784e3dcd3c3e8438654c20240455a57494ce3deb09e64b4413f1bd04c18e30ad0100000000000000000000000000ffff8c523b33271411c59262c9633a1bb810a7fc2b833c43cfa852ab144cbf4d472716b9504a54c7ca26906a3346253b787ffeb1a4999325049f5b2c51ef2e7c215d85f0a9142ec1c78db99b11c59262c9633a1bb810a7fc2b833c43cfa852ab00001976a91405c5fed6a3eb0b92ea5119039efae7a8dee5456488ac4e6cc5451440a6044dbd04d33a11f4cddc9021532ede3012ebbc31c0bb4ceb9c00 H3ub9BATtvuV+zDGdkUQNoUGpaYFr/O1FypmrSmH5WJ0KFRi8T10FSew0EJO/+Ij+OLv4r0rt+HS9pQFsZgc2dE=

    Output:

    b823338301e47875493c20361a23aef034578030c639480203b394669ab05e09

    Your masternode is now registered and will appear on the Deterministic Masternode List after the transaction is mined to a block. You can view this list on the Masternodes -> Masternodes tab of the Axe Core wallet, or in the console using the command protx list valid, where the txid of the final protx register_submit transaction identifies your DIP003 masternode.


    At this point you can go back to your terminal window and monitor your masternode using ~/axerunner/axerunner status


    electrum

    Axe Electrum is a lightweight client for AXE network. Check with AXE wiki for more details. The source code is available at @AXErunners' GitHub repository.

    axe-electrum on macOS
    Axe Electrum on Ubuntu 19

    Usage

    Download binaries or follow this guide to install Axe Electrum from source on your system.

    electrumx

    ElectrumX is a server-side application for AXE SPV protocol. The current version requires precise system configuration and is not fully automated for fast deployment. The script below is used for fast and easy setup of electrumx server on working AXE core node. To start, input following line:
    wget https://raw.githubusercontent.com/bauerj/electrumx-installer/master/bootstrap.sh -O - | bash
    Finish the configuration by adding your AXE node's RPC login/pass in DAEMON_URL as user:pass@:/ Sample:
    # REQUIRED
    DB_DIRECTORY = /db
    # AXE node RPC credentials
    DAEMON_URL = axerunner:m3hk86m8vw@144.202.40.33:9337/
    DB_ENGINE=rocksdb
    SSL_CERTFILE=/etc/electrumx/server.crt
    SSL_KEYFILE=/etc/electrumx/server.key
    TCP_PORT=50001
    SSL_PORT=50002
    # Listen on all interfaces:
    HOST=91.65.291.42
    COIN=AXE
    
    #BANNER_FILE = /etc/electrumx/electrum.banner
    #Uncomment the above line if you want to have a banner and create the banner file
    Add the ports in the firewall exception:
    sudo ufw allow 50001
    sudo ufw allow 50002

    Launch

    Starting and stopping electrumx server
    service electrumx start
    service electrumx start

    mining

    Create AXE address to receive payments

    Download the Axe core, Axe Electrum or mobile client. Generate a new address to receive payments from the mining operation.

    ASIC

    Connect to your ASIC miner and enter values according to the following sample:

    Url: POOLADDRESS:PORT
    Worker: WALLETADDRESS
    Password: X

    Use p2pool-scanner to find the best pool for your operations.

    p2pool

    Requirements:
  • axed >= 1.4.0.2
  • Python >= 2.7
  • Twisted >= 13.0.0
  • Zope.interface >= 3.8.0

  • Automatic deployment

    Create user axerunner:
    adduser axerunner && usermod -aG sudo axerunner
    su axerunner
    Download and prepare deployment script:
    cd ~
    git clone https://github.com/axerunners/p2pool-axe-deploy
    nano ./p2pool-axe-deploy/p2pool.deploy.sh
    Edit the script to match your setup:
  • PUBLIC_IP your public IP address
  • EMAIL your email address
  • PAYOUT_ADDRESS your AXE wallet address to receive fees
  • USER_NAME linux user name
  • RPCUSER enter a random alphanumeric rpc user name
  • RPCPASSWORD enter a random alphanumeric rpc password

  • Start deployment script:
    bash ./p2pool-axe-deploy/p2pool.deploy.sh

    Manual deployment

    After installing AXE core, open ports for p2pool:
    sudo ufw allow 7923/tcp
    sudo ufw allow 8999/tcp
    Install dependencies:
    sudo apt-get install python-zope.interface python-twisted python-twisted-web python-dev libncurses-dev
    sudo apt-get install git python-zope.interface python-twisted python-twisted-web
    sudo apt-get install gcc g++
    Install p2pool:
    cd ~ && git clone --recursive https://github.com/AXErunners/p2pool-axe.git
    cd p2pool-axe/axe_hash && python setup.py install --user
    Install front-end:
    cd ..
    mv web-static web-static.old
    git clone https://github.com/justino/p2pool-ui-punchy web-static
    mv web-static.old web-static/legacy
    cd web-static
    git clone https://github.com/hardcpp/P2PoolExtendedFrontEnd ext
    Start p2pool:
    python run_p2pool.py --external-ip 256.271.13.349 -f 0 --give-author 0 -a PDAze8QNvLLQE5KS6FEfedmgTgs1uMCbf8X
  • -f pool fees
  • --give-author donation
  • --external-ip pool address

  • You can access p2pool's stats with http://256.271.13.349:7923/static/


    For additional options:
    python run_p2pool.py --help
    source
    deployment script