以太坊系列 - ETH发币

在主网上发币

部署合约有多种方式

  • geth 编译代码 —部署合约
  • 用ethereum wallet钱包部署合约
  • 最简单直观的部署合约方式: MetaMask和Remix Solidity (以下采用这种方法)
  1. MetaMask 选主网 | 测试网Ropsten
  2. Remix Solidity 选Injected Web3
  3. Remix Solidity 中编写代币合约 并编译
  4. 部署 (初始发行1000000000个, 精度18, tokenName:CCB, tokenSymbol:CCB, owner:当前部署的账户)
  5. create后,在钱包中添加token
  6. 发布了代币以后,可以到官方浏览器上将源码公开
  7. 发行之后可通过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都没问题

猜你喜欢

转载自blog.csdn.net/wcc19840827/article/details/107040578