去中心化的开发流程
简单分析下本人的小小开发经历,当初自己学习的时候翻看很多资料也一头雾水,白花了很多力气,这里进行简要总结,希望为大家带来帮助。
基础准备
前期准备如下:
- IDEA ,你的后台编辑器;
- Geth ,你的以太坊区块链本地客户端;
- 不需要数据库,因为数据可以存储在区块链之上,当然你可以加上。
- 在线编辑器remix,用来使用solidity语言编写智能合约。
http://remix.hubwiz.com - 下载安装web3j命令行。用来把.sol转为.java
核心开发
区块链
-
用solidity语言设计你的智能合约,数据结构用struct存储于以太坊区块链上,调试运行在remix的虚拟机上。
-
在本地geth客户端上创建创世区块。
首先配置私有区块链网络的初始状态。新建一个文件 genesis.json
{
“config”: {
“chainId”: 22,
“homesteadBlock”: 0,
“eip150Block”: 0,
“eip155Block”: 0,
“eip158Block”: 0,
“byzantiumBlock”: 0,
“constantinopleBlock”: 0,
“petersburgBlock”: 0,
“ethash”: {}
},
“difficulty”: “1”,
“gasLimit”: “0xffffffff”,
“alloc”: {}
}
其中需要修改的配置
•chainId 指定了独立的区块链网络 ID,不同 ID 网络的节点无法互相连接;
•ethash 使用ethash共识算法;
•difficulty 初始挖掘难度,难度越大越难挖到区块;
•gasLimit 用于限制单个块中可以进行多少EVM计算,这里值得一提,那就是我配置的最大,因为我的智能合约功能很复杂花费的gas很多。
•alloc 这将确定您在创世纪块中列出的地址有多少以太币可用&#x