Hyperledger burrow集成truffle

环境

os:centos7.6

1. 安装nodejs和npm

安装nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm 
 nvm --version

使用nvm安装node和npm

nvm install node
node --version
npm --version

安装开发工具

sudo yum install gcc-c++ make

2. 安装solc

参考:https://blog.csdn.net/kk3909/article/details/105381559

3. 安装truffle

npm install truffle -g

报错?

Error: EACCES: permission denied, open '/root/.config/truffle/config.json'
You don't have access to this file

再安装一次

npm install truffle -g --unsafe-perm

4. 使用truffle部署智能合约

4.1 创建项目
mkdir MetaCoin
cd MetaCoin
truffle unbox metacoin
4.2 修改config
cat truffle-config.js
module.exports = {
  networks: {
    burrow: {
      host: "localhost",
      port: 26860,
      network_id: "*"
   }
  }
};
4.3 编译
truffle  compile
4.4 测试
truffle  test
4.5 部署
 truffle  deploy --network burrow

报错?

Error: Expected parameter 'from' not passed to function.
    at /root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/expect/index.js:5:1
    at Array.forEach (<anonymous>)
    at Object.options (/root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/expect/index.js:3:1)
    at Object.fork (/root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/environment/environment.js:30:1)
    at setupDryRunEnvironmentThenRunMigrations (/root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:225:1)
    at /root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:207:1
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

看起来是缺少from参数,修改一下truffle-config.js,from为节点的创世地址。

module.exports = {
  networks: {
    burrow: {
      host: "localhost",
      port: 26860,
      from: "7E4F21487B2E2CB2F6DE9AEA1875BD1FC55114CE",
      network_id: "*"
   }
  }
};
Error:  *** Deployment Failed ***

"Migrations" -- sender account not recognized.

    at /root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/deployer/src/deployment.js:364:1
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at Migration._deploy (/root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/migrate/migration.js:70:1)
    at Migration._load (/root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/migrate/migration.js:57:1)
    at Migration.run (/root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/migrate/migration.js:167:1)
    at Object.runMigrations (/root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:148:1)
    at Object.runFrom (/root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:110:1)
    at Object.run (/root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:87:1)
    at runMigrations (/root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:253:1)
    at setupDryRunEnvironmentThenRunMigrations (/root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:241:1)
    at /root/.nvm/versions/node/v13.12.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:207:1

还是出错,通过web3.eth.accounts是查询不到任何账户的,问题应该在这。

web3不支持ed25519类型的地址,我们重新生成账户,再测试。

./burrow spec -v1 -d1 |./burrow configure -s-  --curve-type secp256k1 >burrow.toml

这时通过web3.eth.accounts可以查询到账户,再部署一遍
还是报错?

Error:  *** Deployment Failed ***

"Migrations" -- Returned error: account not found at address 0xbdb18dda8da1bfc0123143674f86d8ca506c9ffa.

    at /usr/local/lib/node_modules/truffle/build/webpack:/packages/deployer/src/deployment.js:364:1
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at Migration._deploy (/usr/local/lib/node_modules/truffle/build/webpack:/packages/migrate/migration.js:70:1)
    at Migration._load (/usr/local/lib/node_modules/truffle/build/webpack:/packages/migrate/migration.js:57:1)
    at Migration.run (/usr/local/lib/node_modules/truffle/build/webpack:/packages/migrate/migration.js:167:1)
    at Object.runMigrations (/usr/local/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:148:1)
    at Object.runFrom (/usr/local/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:110:1)
    at Object.run (/usr/local/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:87:1)
    at runMigrations (/usr/local/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:253:1)
    at setupDryRunEnvironmentThenRunMigrations (/usr/local/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:241:1)
    at /usr/local/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:207:1

经查询根本没有这个账户0xbdb18dda8da1bfc0123143674f86d8ca506c9ffa,从哪来??

发现都是dry-run时报错,最终解决方案:

 truffle  deploy --network burrow --skip-dry-run

可以部署、调用合约,但通过grpc 不能获取合约metadata数据

结论

burrow暂时还不完全兼容truffle

参考文献

https://linuxize.com/post/how-to-install-node-js-on-centos-7/
https://www.trufflesuite.com/docs/truffle/getting-started/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1444. Elephpotamus Time limit: 0.5 second Memory limit: 64 MB Harry Potter is taking an examination in Care for Magical Creatures. His task is to feed a dwarf elephpotamus. Harry remembers that elephpotamuses are very straightforward and imperturbable. In fact, they are so straightforward that always move along a straight line and they are so imperturbable that only move when attracted by something really tasty. In addition, if an elephpotamus stumbles into a chain of its own footprints, it falls into a stupor and refuses to go anywhere. According to Hagrid, elephpotamuses usually get back home moving along their footprints. This is why they never cross them, otherwise they may get lost. When an elephpotamus sees its footprints, it tries to remember in detail all its movements since leaving home (this is also the reason why they move along straight lines only, this way it is easier to memorize). Basing on this information, the animal calculates in which direction its burrow is situated, then turns and goes straight to it. It takes some (rather large) time for an elephpotamus to perform these calculations. And what some ignoramuses recognize as a stupor is in fact a demonstration of outstanding calculating abilities of this wonderful, though a bit slow-witted creature. Elephpotamuses' favorite dainty is elephant pumpkins, and some of such pumpkins grow on the lawn where Harry is to take his exam. At the start of the exam, Hagrid will drag the elephpotamus to one of the pumpkins. Having fed the animal with a pumpkin, Harry can direct it to any of the remaining pumpkins. In order to pass the exam, Harry must lead the elephpotamus so that it eats as many pumpkins as possible before it comes across its footprints. Input The first input line contains the number of pumpkins on the lawn N (3 ≤ N ≤ 30000). The pumpkins are numbered from 1 to N, the number one being assigned to the pumpkin to which the animal is brought at the start of the trial. In the next N lines, the coordinates of the pumpkins are given in the order corresponding to their numbers. All the coordinates are integers in the range from −1000 to 1000. It is guaranteed that there are no two pumpkins at the same location and there is no straight line passing through all the pumpkins. Output In the first line write the maximal number K of pumpkins that can be fed to the elephpotamus. In the next K lines, output the order in which the animal will eat them, giving one number in a line. The first number in this sequence must always be 1.写一段Java完成此目的
06-03
题目翻译:哈利波特正在参加魔法生物关怀考试,他的任务是喂养一只小矮象河马。小矮象河马非常直接和冷静,只有在被真正美味的东西吸引时才会移动。此外,如果小矮象河马跌入自己的脚印链中,它会陷入昏迷并拒绝前进。根据海格的说法,小矮象河马通常沿着自己的脚印回家。这就是为什么它们从不越过脚印,否则它们可能会迷路。当小矮象河马看到自己的脚印时,它会尽力记住自离家出发以来的所有行动,然后计算出其巢穴的方向,然后转身朝着巢穴直走。一个小矮象河马执行这些计算需要一些时间。而一些无知的人认为这是一种昏迷,实际上这是这种美妙的,虽然有点迟钝的生物出色的计算能力的展示。小矮象河马最喜欢的美食是大象南瓜,而哈利所在的草坪上就有一些这样的南瓜。在考试开始时,海格将小矮象河马拖到其中一只南瓜旁边。喂了小矮象河马一只南瓜后,哈利可以把它引导到剩下的任意一只南瓜。为了通过考试,哈利必须引导小矮象河马尽可能多地吃南瓜,直到它遇到自己的脚印。 输入:第一行包含草坪上南瓜的数量N(3≤N≤30000)。南瓜从1到N编号,数字1被分配给小矮象河马开始时所在的南瓜。在接下来的N行中,按其编号对应的顺序给出南瓜的坐标。所有坐标都是范围从-1000到1000的整数。保证没有两个南瓜在相同的位置,并且没有一条直线穿过所有南瓜。 输出:第一行写出小矮象河马最多可以吃到的南瓜数K。在接下来的K行中,输出小矮象河马将要吃的南瓜的顺序,每行输出一个数字。这个序列中的第一个数字必须始终为1。 解题思路:这道题是一道比较难的贪心算法,需要仔细思考。我们可以先把所有的南瓜按照离开始点的距离排序,然后从第二个南瓜开始遍历,每次找到一个能够吃到的南瓜就将其加入结果中,并更新当前位置和能够到达的最远位置。如果当前位置已经在之前的路径中出现过,那么就不能再继续走了,因为这样会导致小矮象河马迷路。最后输出结果即可。 代码实现:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值