前面讲了部署私有链以及新增账户,现在进行到了部署合约了,此操作真是踩了无数无数无数的坑,到写文章为止确实是已经部署好了,但是还有些坑是还没有解决的!

一、Solidity编译器

开始的时候用的https://remix.ethereum.org/    这个官网在线编译器,但不知道怎么回事,我k学上网都没问题,但就是访问这个网站有问题(事后用http就可以了),没办法我就打了其它编译器的主意,最开始是用的remix有一个中文版的编译器,但是用着发现好像无法连接私有链,没办法参照官方文档找其它编译器(文档地址:https://learnblockchain.cn/docs/solidity/installing-solidity.html),这么多里面看了一下,决定安装本地的Remix-Ide,参考安装文档(https://learnblockchain.cn/2018/06/07/remix-ide/),安装的过程中我已经不知道出现了多少问题了,直到最后!!!还是没有解决,卡在这这一步:npm install remix-ide -g安装已经成功了,执行remix-ide & remixd能看到安装的remix-ide,但是运行remix-ide又提示不支持的命令。搞了半天也没搞好,后来在群里有友人说还需要配置环境变量,但是我那时已经没有耐心了直接改了http用在线的remix了。后面我还是回去装本地版本的,实在不行的话安装docker再弄,环境问题真是糟心。

二、简单的helloBlockchain合约

1、新加sol文件,内容如下:

pragma solidity ^0.4.0;
contract helloBlockchain{
function renderHello() public pure returns (string){
return "Hello Blockchain";
}
}

因为我参考的文档都是老旧的,所以合约也是0.4.0-0.5.0版本的才行

2、编译

这是因为使用的版本问题,要找到0.4.0-0.5.0的版本添加进去

网上随便找到一个在线版本:https://solc-bin.ethereum.org/bin/soljson-v0.4.26+commit.4563c3fc.js,其它的也都可以在https://github.com/ethereum/solc-bin里面自行下载

3、部署合约

使用metamask的时候会自动选择Injected Web3来进行连接,请注意,这里的链网络一定要核查是与创世区块里面写的chainid、与启动区块链写的networdid一致的才行,不然会报错:invalid sender

部署要启动挖矿别忘了

四、遇到的问题

1、部署时报这个错:

原因:重启了电脑,私有链忘记启动了,哈哈哈

2、部署合约提示[ethjs-query] while formatting outputs from RPC '{"value":{"code":-32603"data":{"code":-32000"message":"invalid sender"}}}'

排查如下几点:

①需要解锁账户

②创世区块里面写的chainid与启动区块链写的networdid要一致,同时MetaMask设置-网络里面配置的id要同样是这个id

③启动私有链时要打开--allow-insecure-unlock,请参考我在第一章讲到的启动方式

好像还有其它问题,但只能想起来这三个了,真的是弄了好久啊,泪牛满面!!!

最新文章

  1. sublime 安装常用插件
  2. 271. Encode and Decode Strings
  3. svn log 不显示日志的问题
  4. Flex应用程序如何启动
  5. 向asp.net项目中添加控件AspNetPager
  6. ajax局部刷新分页
  7. MySQL推出Applier,可实时复制数据到Hadoop
  8. FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)
  9. android studio 开发免安装的app之目录结构
  10. mysql的模糊匹配
  11. Vue-动态修改数组
  12. ieee trans pami latex模板
  13. CSS中脱离文档流是什么意思?
  14. Ubuntu 16.04安装Pycharm2017.1.1
  15. 火狐浏览器sqlite插件
  16. springboot整合rabbirmq(3.7.9)中使用mandatory参数获取匹配失败的消息以及存入rabbitmq备份交换器中!
  17. Python装饰器进阶
  18. Linux下查看某个进程的线程数量(转)
  19. BlockingQueue笔记
  20. ADF_ADF基本概要(汇总)

热门文章

  1. win10系统移动热点使用技巧
  2. http报文常见的请求头、响应头
  3. 通宵修复BUG的思考
  4. MySQL修改root密码的多种方法, mysql 导出数据库(包含视图)
  5. AT2567-[ARC074C]RGB Sequence【dp】
  6. P3214-[HNOI2011]卡农【dp】
  7. Java两种基础结构
  8. selenium--常用判断
  9. 一、mybatis入门案例
  10. Python setattr() 函数 ,Python super() 函数: Python 内置函数 Python 内置函数