1. 程式人生 > 實用技巧 >以太坊區塊鏈開發-私鏈

以太坊區塊鏈開發-私鏈

1.首先檢視我們兩個私鏈錢包的以太坊wei餘額,後續我們寫轉賬到區塊鏈地址

2.然後我們啟動私鏈geth --identity "secbro etherum" --rpc --rpccorsdomain "*" --datadir "私鏈資料資料夾絕對路徑" --port "30303" --rpcapi "db,eth,net,web3" --networkid 95518 console

然後我們開始碼程式碼,我們這裡使用Nethereum以太坊開發框架

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net; using System.Runtime.CompilerServices; using System.Text; using System.Threading; using System.Threading.Tasks; using Nethereum.Contracts; using Nethereum.Hex.HexTypes; using Nethereum.RPC.Eth.DTOs; using Nethereum.Web3; using Nethereum.Web3.Accounts; using Nethereum.Web3.Accounts.Managed;
namespace ConsoleApp1 { class Program { static void Main(string[] args) { ShowWei(); Task.Run(async () => { var password = "123456";//私鑰密碼 var accountFilePath = @"D:\Geth\EthDBSpace\MyPrivChain\keystore\UTC--2020-08-08T17-14-07.485273900Z--9c086b477028ef6bc7c23efc0ad008982e622f61
";//keystore var account = Account.LoadFromKeyStoreFile(accountFilePath, password);//載入私鑰並簽名 var web3 = new Web3(account);//例項化 await web3.TransactionManager.SendTransactionAsync(account.Address, "0xd8f74f49b638fe0072bad0a177a7b6ff9063368c", new HexBigInteger(1));//傳送轉賬到指定區塊鏈地址單位WeiHexBigInteger(wei)) }).Wait(); Console.WriteLine("main end"); Console.ReadLine(); } public static void ShowWei() {//檢視錢餘額 var web3 = new Web3(); var balance = web3.Eth.GetBalance.SendRequestAsync("0x9c086b477028ef6bc7c23efc0ad008982e622f61").Result.Value; Console.WriteLine($"Balance in Wei: {balance}"); var etherAmount = Web3.Convert.FromWei(balance); Console.WriteLine($"Balance in Ether: {etherAmount}"); } } }

為了轉賬變化明顯,測試轉賬1wei

傳送轉賬記錄執行完畢,那麼我們檢視下餘額

此時會發現一個奇怪現象,前面的轉賬請求已經提交,為什麼兩個賬戶的餘額沒有發生任何變化?回想剛才我們講到的,以太坊使用POW共識激勵礦工記賬,而由於我們建立的是私鏈目前只有我們一個節點,所以此時並沒有其它節點參與記賬。所以我們需要通過挖礦把這筆轉賬記錄到塊中。

啟動挖礦

並立馬停止

現在我們在查詢下錢包以太坊Wei餘額

到賬成功,COOL!