Repository navigation
feat(axe): add Axe (AXE) on the Dash parser with Axe's own chain parameters - #40
Merged
Merged
Conversation
…meters
Axe is a Dash Core fork (AXErunners/axe, axed 1.6.1.1). Its transactions are
Dash's, including the DIP2 special types (CbTx, quorum commitments), so the
new bchain/coins/axe package reuses the Dash parser and RPC. It registers its
own network parameters from src/chainparams.cpp at v1.6.1.1: mainnet magic
b5ce6b04, P2PKH 55 ('P'), P2SH 16 ('7'), standard xpub/xprv versions, testnet
magic cee2caf1.
DashRPC gets an exported FirstBlockWithSpecialTransactions field (default
unchanged at 1028160) so Axe can use its own DIP3 activation height, 213696;
blocks from there on are read transaction by transaction. Axe regtest is not
registered because its magic equals Dash's and chaincfg refuses duplicates.
configs/coins/axe.json: ports 9169/9069/8069/38369, Insight listener and
explorer UI on 3001, SLIP-44 4242, 150 second block time, backend pinned to the
v1.6.1.1 linux x86_64 tarball by sha256. No fiat rates: AXE has no price
listing. Hosts keep their own axed; only blockbook-axe is installed.
Parser tests use real Axe mainnet data: a P2PKH/P2SH/OP_RETURN transaction
from block 5005718 and the version 3 type 5 coinbase of block 5008000, both
hashed back to their txids.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds Axe (AXE), a Dash Core fork (AXErunners/axe, axed 1.6.1.1), served by the Dash parser and RPC with Axe's own chain parameters.
bchain/coins/axe:NewAxeRPCwrapsdash.NewDashRPC,NewAxeParserwraps the Dash parser. Registered asBlockChainFactories["Axe"].dash.DashRPCgets an exportedFirstBlockWithSpecialTransactionsfield. The default stays 1028160, so Dash is unchanged. Axe sets its own DIP3 height, 213696, so blocks from there on are fetched transaction by transaction (the bitcoin block parser cannot read special transactions).configs/coins/axe.json: ports 9169 / 9069 / 8069 / 38369, Insight listener and explorer UI on 3001, public_url https://explorer.axe.zelcore.io, backendbackend-axe1.6.1.1.docs/ports.md(regenerated),docs/insight-compatibility.md,TestInsightProductionCoinConfigsentry.Why
Axe has no explorer on our infrastructure. Its transaction format is Dash's, so the Dash code does the parsing. Only the network parameters differ, and they must not collide with Dash's in
chaincfg.Sources for the parameters
All from
src/chainparams.cppof AXErunners/axe at tag v1.6.1.1 (identical on master),CMainParams:b5 ce 6b 04(read little endian: 0x046bceb5)P), SCRIPT_ADDRESS 16 (7), SECRET_KEY 20404 88 B2 1E(xpub_magic 76067358), EXT_SECRET_KEY04 88 AD E4ce e2 ca f1, prefixes 140 / 19Backend:
axecore-1.6.1.1-x86_64-linux-gnu.tar.gzfrom the official AXErunners release, sha256f6f8daffa90bfeeb095938144b4a75bd4887fff0d93545d427ca3b1f5cc7e16d(downloaded and hashed, not executed). Layout isaxecore-1.6.1/bin/axed, so--strip 1. The 1.6.1.1 daemon is Dash 0.16 based and still needs-deprecatedrpc=estimatefee, as Dash's config passes.Verification
go test -tags unittest ./bchain/coins/axe/ ./bchain/coins/dash/ ./bchain/coins/ ./build/tools/pass;go vetandgofmtclean.validate_backend_artifacts.py(0 errors, 2 existing warnings for other coins) and the.github/scriptsunit tests pass; the port registry check is clean.ParseTxFromJson. Also covered: network parameters, P and 7 address round trip, pack/unpack.servertests could not be built locally (rocksdb headers missing); CI covers them.Notes
blockbook-axeis installed. Backend config is valid but the backend package is not deployed.fc c1 b7 dc) equals Dash's andchaincfg.Registerrejects duplicates.