在主网上发币
部署合约有多种方式
- geth 编译代码 —部署合约
- 用ethereum wallet钱包部署合约
- 最简单直观的部署合约方式: MetaMask和Remix Solidity (以下采用这种方法)
- MetaMask 选主网 | 测试网Ropsten
- Remix Solidity 选Injected Web3
- Remix Solidity 中编写代币合约 并编译
- 部署 (初始发行1000000000个, 精度18, tokenName:CCB, tokenSymbol:CCB, owner:当前部署的账户)
- create后,在钱包中添加token
- 发布了代币以后,可以到官方浏览器上将源码公开
- 发行之后可通过mintToken创造一些代币
- 主网 到 https://etherscan.io/ 右上角搜索create时的txHash
进行verify AND publish - 测试网 到 https://ropsten.etherscan.io/ 右上角搜索create时的txHash
进行verify AND publish
在私链上发币
使用MetaMask
MetaMask 连私链时注意填写自定义的RPC节点时,同时也填上对应节点的ChainID
注意chainID
- 如果报"Invalid sender"错误,注意启动geth的参数中networkid的配置要与创世块中的chainID一致
- chainID使用15可以成功
- 创世块中需要加eip155Block相关,MetaMask 是得支持eip155的
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md
不同的共有链定义不同的chainId, 防止同一笔交易在不同的共有链上进行两次交易,防止重放攻击
v = 35 + chainId *2 | v = 36 + chainId * 2
不同的chainId会得到不同的v,还原出来的公钥也会不同
因为只通过r,s恢复公钥有两种可能,所以每个chainId也该拥有两个不同的v,代表两个不同的地址
创建块中这样配
"config": {
"chainID" : 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
启动参数这样配
--networkid 15
顺便一提,主网的chainID 是1; 私链的gasPrice默认是18000000000(18GWei)
本地Remix 直接连私链
命令行中键入remix-ide
创建合约与 转Token都没问题