DxChain Wiki
  • 👋Welcome to DxChain!
    • About $DX
    • About DxChain V3
    • Important Links
    • Project Updates
  • 📝The Basics
    • 📖DxChain V3 LitePaper
      • Notice
      • 1. Background
      • 2. Introduction
      • 3. The Ecosystem Powered by DxChain 3.0
      • 4. DxChain Design Principles & Architecture
        • 4.1 Fully Compatible with EVM
        • 4.2 DPoS Consensus Algorithm
        • 4.3 Cross Chain
        • 4.4 API Layer
        • 4.5 Blacklist Management
        • 4.6 P2P Decentralized Network Layer
        • 4.7 MPT + LevelDB
        • 4.8 Ellipse Curve Digital Signature Algorithm
      • 5. Economic system
      • 6. Governance
      • 7. Roadmap
      • 8. Follow Us
      • 9. Reference
      • 10. Risk Warning
  • 🪙Stake and Trade
    • About DX DPoS
    • How to Earn DX
    • Stake on DxChain
      • DxChain V3 Staking
      • Wallet
      • Consensus
      • How to Stake
    • Develop on DxChain
      • Compile and Run
      • On-chain Interaction
        • DPoS API
      • Smart Contract
      • Private Chain Construction
      • Genesis Block
      • Parameters Table
      • Mainnet
      • Testnet
      • Participate as Validator
    • Trade on DxChain
      • Cross Chain Bridge
  • ⛏️Liquidity Mining
    • Introduction of DxFarm
      • Functions
    • Tutorial
  • 🎙️Media Press
  • 🌏中文社区
    • 📙DxChain新人手册
    • 📜DxChain V3技术文档
      • 1. 背景
      • 2. 简介
      • 3. DxChain 3.0赋能的生态系统
      • 4. 技术的设计原理与架构
        • 4.1 全面兼容EVM
        • 4.2 DPOS共识机制
        • 4.3 跨链
        • 4.4 接口层
        • 4.5 严格的黑名单管理
        • 4.6 P2P分布式网络层
        • 4.7 MPT + LevelDB
        • 4.8 椭圆曲线数字签名算法
      • 5. 经济系统
      • 6. 社区治理
      • 7. 在社交媒体上与我们互动
      • 8. 参考文献
      • 9. 风险提示
      • 免责声明
    • ⛓️重要链接
    • 💻开发者文档
      • 关于DxChain 3.0
      • 钱包
      • 共识
      • 创世块
      • 开发者
        • 编译和运行
        • 链上交互
          • DPoS API
        • 智能合约
        • 私链搭建
        • 主网
        • 测试网
      • 参与区块验证
      • 参数表
    • 💎「DX V3去中心化质押」
      • 质押投票
        • 1)连接钱包
        • 2)进行投票
          • 可能出现的问题
        • 3)领取奖励
        • 4)取消投票
      • 成为节点
        • 1)部署节点
        • 2)申请节点
        • 3)同意节点
        • 4)成为节点
        • 5)取消节点
        • 6)恢复节点
      • 测试环境
    • 💎「DX V3托管社区」
      • 托管社区FAQ
      • 矿机节点
        • 1)进行投票
        • 2)领取奖励
        • 3)取消投票
      • 超级节点
        • 1)成为超级节点
        • 2)修改奖励比例和质押数
        • 3)查看节点托管费用
        • 4)查看节点收益
        • 5)恢复/取消节点
    • 💡骆驼小课堂
      • 🪙USDT是什么?
      • 🪙什么是币币交易?
      • 🪙如何支付节点托管费用?
      • 💬如何加入DxChain全球社区
      • 🌉【跨链桥】进行了跨链交易但不到账
      • 📱DxChain3.0测试教程
      • 🧬区块链的共识机制
      • 🔐私钥/助记词是什么
      • 🌉什么是区块链的跨链技术
    • 🪧社区布告
      • 节点托管收费细则
      • DxChain V3节点公告
      • 「提现白名单」功能上线公告
      • DX关于热钱包使用安全的公告
      • DX关于Coinbase钱包支持DX-ERC20的公告
Powered by GitBook
On this page
  • 准备账户
  • 创建genesis.json
  • 初始化创世块
  • 开启节点
  • 开启挖矿
  • 多节点挖矿

Was this helpful?

  1. 中文社区
  2. 开发者文档
  3. 开发者

私链搭建

Previous智能合约Next主网

Last updated 2 years ago

Was this helpful?

准备账户

进入工作目录 /path/to/dxc/build/bin下(本文'/path/to/dxc'指的是dxc源码的下载目录,在此之前,确保已经进行过编译,未编译参考:)

$ ./geth account new --datadir ./data

新建账户的keystore文件位于 /path/to/dxc/build/bin/data/keystore文件夹下(过程如下)。

将新地址导入metamask小狐狸钱包。

  1. 首先进入导入页面

  2. 按照上图中标记顺序进行导入

    1. 选择导入方式为JSON 文件

    2. 选择新地址的keystore文件

    3. 填入创建新账户时的密码

    4. 点击导入(此处需要等待几十秒)

    5. 如果导入成功则会显示如下

创建genesis.json

  1. 在/path/to/dxc/build/bin/下创建genesis.json文件

  2. 更换测试网chainId 为72(这里默认为72,则不需要改)。

  3. 使用上面新账户(不带0x)替换 extraData 中的初始节点地址(注意:只替换中间40个地址字符)如下。

"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000a88548e97af8809afac9dc7a930650c1179510590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
===>>>
"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000'your new account'0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",

4. 修改alloc中节点地址为自己的新地址,并配置初始余额。至少0x50c783eb9b5c85f2a80000000。

{
    "config": {
        "chainId": 72,
        "homesteadBlock": 0,
        "eip150Block": 0,
        "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "eip155Block": 0,
        "eip158Block": 0,
        "byzantiumBlock": 0,
        "constantinopleBlock": 0,
        "petersburgBlock": 0,
        "istanbulBlock": 0,
        "muirGlacierBlock": 0,
        "dpos": {
            "period": 3,
            "epoch": 28800
        }
    },
    "nonce": "0x0",
    "timestamp": "0x5fc58968",
    "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000a88548e97af8809afac9dc7a930650c1179510590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "gasLimit": "0x280de80",
    "difficulty": "0x1",
    "alloc": {
        "0xa88548e97af8809afac9dc7a930650c117951059": {
            "balance": "0x50c783eb9b5c85f2a80000000"
        }
    },
    "number": "0x0",
    "gasUsed": "0x0",
    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}

初始化创世块

$ ./geth init ./genesis.json --datadir ./data

开启节点

开启挖矿

  • 打开控制台 ./geth attach --datadir ./data

  • 解锁矿工账户 personal.unlockAccount("miner address","password",0)

  • 开启挖矿 miner.start()

多节点挖矿

  1. 其余节点使用相同的genesis.json初始化节点。

  2. 获取主节点的enode信息admin.nodeInfo。

  3. 新节点geth attach 打开控制台,添加主节点信息admin.addPeer("enode info")。

🌏
💻
编译和运行
运行