創建私有鏈之前先介紹下公有鏈、私有鏈、聯盟鏈的區別。
公有鏈
公有鏈是指全世界任何人都可以隨時進入到系統中讀取數據、發送可確認交易、競爭記賬的區塊鏈。公有鏈通常被認爲是“完全去中心化”的,因爲沒有任何個人或者機構可以控制或篡改其中數據的讀寫。
公有鏈一般會通過代幣機制來鼓勵參與者競爭記賬,來確保數據的安全性。比特幣、以太坊都是典型的公有鏈。
特點
1. 訪問門檻低
2. 所有數據默認公開
3. 用戶免受開發者的影響
公有鏈是指全世界任何人都可以隨時進入到系統中讀取數據、發送可確認交易、競爭記賬的區塊鏈。公有鏈通常被認爲是“完全去中心化”的,因爲沒有任何個人或者機構可以控制或篡改其中數據的讀寫。
公有鏈一般會通過代幣機制來鼓勵參與者競爭記賬,來確保數據的安全性。比特幣、以太坊都是典型的公有鏈。
特點
1. 訪問門檻低
2. 所有數據默認公開
3. 用戶免受開發者的影響
私有鏈
私有鏈是指其寫入權限由某個組織和機構控制的區塊鏈,參與節點的資格會被嚴格限制。由於參與節點是有限和可控的,因此私有鏈往往可以有極快的交易速度、更好的隱私保護、更低的交易成本、不容易被惡意攻擊,並且能做到身份認證等金融行業必需的要求。
相比中心化數據庫,私有鏈能夠防止機構內單節點故意隱瞞或者篡改數據,即使發生錯誤,也能夠迅速發現來源。因此許多大型金融機構在目前更加傾向於使用私有鏈技術。
特點
1. 交易速度非常之快
2. 給隱私更好的保障
3. 交易成本大幅降低
聯盟鏈
聯盟鏈是指有若干個機構共同參與管理的區塊鏈,每個機構都運行着一個或多個節點,其中的數據只允許系統內不同的機構進行讀寫和發送交易,並且共同來記錄交易數據。
私有鏈和聯盟鏈之間的設計隱私權限會有不同,聯盟鏈中的權限設計要求往往會更爲複雜。
特點
1. 低成本運行和維護
2. 高交易速度及良好的擴展性
3. 聯盟維護、 比私有鏈更具可信度
隨着應用場景的需求更復雜,區塊鏈技術變得越來越複雜。但無論是公有鏈、許可鏈還是混合鏈都沒有絕對的優劣,往往需要根據不同的應用場景來選擇適合的區塊鏈類型。
1.初始化一個創世區塊,首先創建一個文件piccgenesis.json,內容如下:
{
"nonce":"0x0000000000000042",
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x00000000",
"gasLimit":"0xffffffff",
"config": {
"chainId":666,
"homesteadBlock":0,
"eip155Block":0,
"eip158Bolock":0
}
}
2.創建創世塊
接下來創建目錄eth-private,將piccgenesis.json文件放入該目錄中,執行cd eth-private
geth --datadir "./chain" init piccgenesis.json
創建區塊鏈創世塊,當前區塊鏈數據會保持到chain目錄下;
3.啓動私有鏈
執行以下命令啓動私有鏈:
geth --identity "PICCetherum" --rpc --rpccorsdomain "*" --datadir ".\chain" --port "30303" --rpcapi "db,eth,net,web3" --networkid 95518 console
4.在私有鏈中創建賬號、挖礦及轉賬(常用命令)
eth.accounts 區塊鏈賬號
personal.newAccount("123456") 創建賬號,密碼12
eth.getBalance(eth.accounts[0]) 取第一個賬號比特幣個數
personal.unlockAccount(eth.accounts[0]) 解鎖第一個賬號,區塊鏈賬號隔一段時間默認會鎖定
miner.start(1) 開始挖礦,線程數1
miner.stop() 停止挖礦