以太坊系列 - 發幣

在主網上發幣

部署合約有多種方式

  • 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都沒問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章