如何创建一个模拟区块链

我正在创建一系列非常容易理解的文章,这些文章既解释了我所做的事情,也让我重写从旧的混乱黑客到希望更清洁版本的所有内容。

使     测试   环境成为可能的单个主要组件是构建在geth源库中的模拟后端。模拟的后端是一个geth-ethereum虚拟机,您可以初始化、提交事务、密封块,实际上,将其视为私有区块链节点。

因此让我们从一个极其简单的例子开始——创建一个模拟区块链,其中一个账户持有特定数量的以太。我通常使用一个名为getclient的函数来连接到我正在使用的后端。

 如何创建一个模拟区块链_设计制作_MEMS/传感技术

我们使用memorykeys库中的getaddress返回一个绑定到角色的地址。〔1〕〔2〕

我们使用etheru     ti   ls库中的strtoether返回一个表示ether值的大int值a     字符   串[3]

var baseClient *backends.Simula     te   dBackend

func getClient() (client *backends.SimulatedBackend, err error) {

    if   baseClient != nil {

return baseClient, nil

}

funds, _ := etherU  TI ls.StrToEther(“10000.0”)

baseClient = backends.NewSimulatedBackend(core.GenesisAlloc{

getAddress(“banker”): {Balance: funds},

}, 8000000)

return baseClient, nil

}

我们现在有一个后端系统,有一个账户(我称之为银行家),余额为10000以太。

你可以用下面的代码进行操作

func m     ai   n() {

client, err := getClient()

if err != nil {

log.Fatal(err)

}

bal, err := client.BalanceAt(context.Background(), getAddress(“banker”), nil)

if err != nil {

log.Fatal(err)

}

fmt.Println(etherU  TI ls.Ethe     rToS   tr(bal))

}

假设您已添加GETH,memorykeys和etherU  TI ls,您的环境现在应该为您设置导入,您将看到显示10k以太的余额

go run sbe.go keyU  TI ls.go

10000.000000000000000000

68
184
0
44

相关资讯

  1. 1、传阻止梁朝伟接《如懿传》演乾隆,刘嘉玲霸气回应:我没这么肤浅1798
  2. 2、杨采妮:我不需要被保护徐克是“隐形的翅膀”149
  3. 3、因演李云龙成名,后娶三婚女星送房车补偿前妻,今60岁活成这样4008
  4. 4、新《蝙蝠侠》电影或将于今年3月在英国杀青3931
  5. 5、他出道比成龙早,曾创下百万票房新纪录,今67岁对戏甄子丹!2657
  6. 6、文艺百家|《斗罗大陆》为何没能破壁出圈?249
  7. 7、张铎妈妈向儿媳道歉,哭着说对不起陈松伶,昔日婆媳之间矛盾频出4402
  8. 8、《南少林之怒目金刚》中演女侠,李牧芸现实中爱健身,身材无敌了4589
  9. 9、口碑压《司藤》热度超《山河令》,谁还敢说它是国产版太阳的后裔571
  10. 10、她弃豪门嫁秃头厨师,六年婚变丈夫“偷吃”,今一人抚养3孩子4169
全部评论(0)
我也有话说
0
收藏
点赞
顶部