修改比特币的创世区块制作自己的山寨币

转自:修改比特币的创世区块制作自己的山寨币


修改比特币的创世区块制作属于自己的山寨币
基于比特币 0.16.1 最新版本(最新版本没有内置挖矿代码建议使用 0.10.0 版本)
第一步,下载比特币源码
git clone https://github.com/bitcoin/bitcoin
第二步,安装编译需要的系统依赖
  1. sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev
  2. sudo apt-get install libboost-all-dev
  3. sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
  4. sudo apt-get install libqrencode-dev
  5. sudo apt-get install libminiupnpc-dev
第三步,安装 Berkeley db 4.8 数据库
mkdir bitcoin/db4/
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'tar -xzvf db-4.8.30.NC.tar.gzcd db-4.8.30.NC/build_unix/../dist/configure --enable-cxx --disable-shared --with-pic --prefix=/home/theusername/bitcoin/db4/make install
第四步,编译 bitcoin 源码
  1. cd ~/bitcoin/
  2. ./autogen.sh
  3. ./configure LDFLAGS="-L/home/theusername/bitcoin/db4/lib/" CPPFLAGS="-I/home/theusername/bitcoin/db4/include/"
  4. make
第五步,修改创世区块
找到 src/chainparams.cpp 文件的

修改创世区块中的 pszTimestamp 修改成任意你想输入的话,
然后继续修改公钥也就是  ParseHex("[中间的值]")
公钥的获取方法:
  1. openssl ecparam -genkey -name secp256k1 -out alertkey.pem
  2. openssl ec -in alertkey.pem -text > alertkey.hex
  3. 然后使用文本编辑器打开 alertkey.hex 然后把 ‘pub’和‘ASN1 OID: secp256k1′中间的5行数值去掉冒号和空格
  4. 并且弄成一行,这就是公钥
接下来继续找

修改前二个参数,第一个为创世区块的时间戳,第二个为随机数(先记住这个随机数,后面还需要修改)

找到这一行,修改为如图所示,第一个红框中为创世区块 hash (先记住后面会修改)
第二个红框中为创世区块的时间戳,得后上一步中的时间戳相同。
接下来找到

注释掉所有的种子节点修改后代码如下

同理修改 CTestNetParams 和 CRegTestParams 中代码
接下来是很重要的一步,挖创世区块的 hash 因为bitcoin 中本身没有挖的代码,所以我们需要借助另外一个挖创世区块的工具,
这里推荐一个工具:
https://github.com/lhartikk/GenesisH0
按要求生产创世区块的 hash 和 随机数 替换项目中对应的值
到这里基本就修改完了,重新编译就能得到你自己的山寨币了