构建 image
- mkdir bscnode
- cd bscnode
- touch Dockerfile
- vim Dockerfile
写入构建内容:
- FROM buildpack-deps:jessie-curl
- RUN mkdir /data && \
- wget -P /usr/local/bin/ https://github.com/binance-chain/bsc/releases/download/v1.0.7/geth_linux && \
- mv /usr/local/bin/geth_linux /usr/local/bin/geth && \
- chmod +x /usr/local/bin/geth
- EXPOSE 8545 30303
- WORKDIR /data
- ENTRYPOINT ["/data/start.sh"]
创建创世区块配置 /data/god.json
- {
- "config": {
- "chainId": 1024,
- "homesteadBlock": 0,
- "eip150Block": 0,
- "eip155Block": 0,
- "eip158Block": 0
- },
- "nonce": "0x0000000000000061",
- "timestamp": "0x0",
- "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "gasLimit": "0x8000000",
- "difficulty": "0x100",
- "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "coinbase": "0x3333333333333333333333333333333333333333",
- "alloc": {}
- }
config:配置块定义我们的自定义链的设置,并具有创建私有区块链的某些属性。
chainId :标识我们的区块链,主要的以太坊链有自己的 ID,但我们会将它设置为我们私有链的唯一值。
homesteadBlock:Homestead 是以太坊平台的第二个主要版本,也是以太坊的第一个生产版本。它包括几个协议更改。由于我们已经在 Homestead 版本,因此该属性为 0。- eip155Block/eip158Block:Homestead 版本发布时带有一些向后不兼容的协议更改,因此需要硬分叉。通过以太坊改进提案(EIPs)提出的这些协议变更 / 改进。然而,我们的链条不会因为这些变化而难以分解,所以保留为 0。
difficulty:此值用于控制区块链的块生成时间。难度越高,Miner 在发现有效块时必须执行的统计更多计算。在我们的测试网络中,我们将保持此值低以避免在测试期间等待,因为需要生成有效块来执行交易处理区块链。
gasLimit:此值指定每块的 “gas” 支出的当前链范围限制。gas 是以太坊在交易过程中消耗的燃料。我们将在这种情况下将此值标记得足够高,以避免在测试期间受到限制。
alloc:这是你可以创建你的钱包并用假 ether 预填充的地方。但是对于这篇文章,我们将在本地快速挖掘我们的以太,所以我们不使用这个选项。