【区块链】记录合约开发中遇到的坑

区块链 同时被 2 个专栏收录
27 篇文章 0 订阅

记录合约开发中遇到的坑

一、 交易没有被广播

问题:合约在在线编译器remix上能够正常读写数据,在本地私有链上却失败数据写不进去,也没有任何错误提示。

例如:

> bikeshared.userRentStart.sendTransaction("0x34ecdbb13d4e58d5c7aa749feaf5c0f660a3d896",1, {from:user1})
===>
"0x05ba935316952c5d2f727bf665faad6535b7296761d5b06f6e57165885f57bbb"
查看:
> txpool.inspect
{
  pending: {
    0x1B0e770c80eAE3bF5a9d85F970C20Fcf02B2b63C: {
      61: "0x3F232c4d9b685754be7ECAF2eA0da154431Aeb9A: 0 wei + 90000 gas × 18000000000 wei"
    }
  },
  queued: {}
}
再查看:
{
  pending: {},
  queued: {}
}
===> 但是数据并没有被修改

原因:gas 和 gasPrice 太小了,开到下面这么大就成功了

> bikeshared.userRentStart.sendTransaction("0x34ecdbb13d4e58d5c7aa749feaf5c0f660a3d896",1, {from:user1, gas:500000, gasPrice:3800000000000})
"0x81edba1d917aaa8ea8c9cbfe885dfeec49f81a6a6041b3a4cec40589be8746a9"

二、BigNumber

问题: 当尝试在app.js中读取合约中数据时报错

Uncaught BigNumber Error: new BigNumber() not a base 16 number

参考:here

可能存在原因:

  1. 节点没有同步完成
  2. 当指向一个实际没有实现该API的地址时,也会发生同样的事情。如果回退函数不返回字符串,则解析字符串时会遇到麻烦。

三、Invalid JSON RPC response: undefined

参考:here

原因:代码中可能用到了personal.unlock..等操作,但是私有链启动时没有加上personal参数

解决办法:启动命令 - "personal,db,eth,net,web3,miner" //添加personal

  • 1
    点赞
  • 2
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值