区块链开发学习第三章:私有链上部署helloBlockchain简单合约
前面讲了部署私有链以及新增账户,现在进行到了部署合约了,此操作真是踩了无数无数无数的坑,到写文章为止确实是已经部署好了,但是还有些坑是还没有解决的!
一、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,请参考我在第一章讲到的启动方式
好像还有其它问题,但只能想起来这三个了,真的是弄了好久啊,泪牛满面!!!
区块链开发学习第三章:私有链上部署helloBlockchain简单合约的更多相关文章
- 区块链开发学习第七章:第一个Dapp-猜拳游戏
第一个简单的Dapp-猜拳游戏.本智能合约的功能很简单,就是用户与电脑猜拳,用户选择出手后,电脑随机一个选项,然后调用智能合约方法把两个选项值传过去,在智能合约上进行比较,并通过区块链合约事件广播结果 ...
- Intel汇编语言程序设计学习-第三章 汇编语言基础-上
汇编语言基础 3.1 汇编语言的基本元素 有人说汇编难,有人说汇编简单,我个人不做评价,下面是一个简单的实例(部分代码): main PROC mov eax,5 ;5送EAX寄存器 add ...
- 《ORACLE数据库管理与开发》第三章学习之常用函数记录
<ORACLE数据库管理与开发>第三章学习之常用函数记录 注:文章中的*代表所要操作的列名 1.lower(*)/upper(*),将此列下的值转为小写/大写 2.initcap(*):把 ...
- Android艺术开发探索第三章————View的事件体系(下)
Android艺术开发探索第三章----View的事件体系(下) 在这里就能学习到很多,主要还是对View的事件分发做一个体系的了解 一.View的事件分发 上篇大致的说了一下View的基础知识和滑动 ...
- Android艺术开发探索第三章——View的事件体系(上)
Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 Motion ...
- Knockout应用开发指南 第三章:绑定语法(3)
原文:Knockout应用开发指南 第三章:绑定语法(3) 12 value 绑定 目的 value绑定是关联DOM元素的值到view model的属性上.主要是用在表单控件<input&g ...
- Knockout应用开发指南 第三章:绑定语法(2)
原文:Knockout应用开发指南 第三章:绑定语法(2) 7 click 绑定 目的 click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数.大部分是用 ...
- Knockout应用开发指南 第三章:绑定语法(1)
原文:Knockout应用开发指南 第三章:绑定语法(1) 第三章所有代码都需要启用KO的ko.applyBindings(viewModel);功能,才能使代码生效,为了节约篇幅,所有例子均省略了此 ...
- Lucene/Solr搜索引擎开发笔记 - 第2章 Solr安装与部署(Tomcat篇)
一.安装环境 图1-1 Tomcat和Solr的版本 我本机目前使用的Java版本为JDK 1.8,因为Solr 4.9要求Java版本为1.7+,请注意. 二.Solr部署到Tomcat流程 图1- ...
随机推荐
- 数据库删除discuz 部分数据操作
如何快速清理discuz 3.2 中等待审核的回复数:pre_forum_post_moderate,点击清空 清空回收站的主题帖:DELETE FROM `pre_forum_thread` WHE ...
- php安全 过滤、验证、转义
不要相信外部源 $_GET $_POST $_REQUEST $_COOKIE $argv php://stdin php://input file_get_contents() 远程数据库 远程ap ...
- [转载]centos6.3安装启动使用PostgreSQL 9.2
----------------------------------------------安装---------------------------------------------------- ...
- Expression Tree 遍历集合
场景 从接口返回的数据是集合,却是 object 类型的.这个时候需要遍历这个集合.现提供两种方法. 方法一: 因为集合是可枚举的,所以可以尝试转为 IEnumerable 类型,然后遍历即可. st ...
- P7737-[NOI2021]庆典【tarjan,虚树】
正题 题目链接:https://www.luogu.com.cn/problem/P7737 题目大意 给出一张无向图满足若\(x\Rightarrow z,y\Rightarrow z\)那么有\( ...
- CF204E-Little Elephant and Strings【广义SAM,线段树合并】
正题 题目链接:https://www.luogu.com.cn/problem/CF204E 题目大意 \(n\)个字符串的一个字符串集合,对于每个字符串求有多少个子串是这个字符串集合中至少\(k\ ...
- 设计 4 个线程,其中两个线程每次对 j 增加 1 ,另外两个线程对 j 每次减少 1 。写出程序。
题目:设计 4 个线程,其中两个线程每次对 j 增加 1 ,另外两个线程对 j 每次减少 1 .写出程序. 代码实现 public class ThreadTest{ private int j; c ...
- JAVA 150道笔试题知识点整理
JAVA 笔试题 整理了几天才整理的题目,都是在笔试或者面试碰到的,好好理解消化下,对你会有帮助,祝你找工作顺利,收到满意的 offer . 1.Java 基础知识 1.1 Java SE 语法 &a ...
- spring 创建Bean最全实现方法
创建bean方式,spring创建bean的方式包含:自动注入方式和人工注入方式.分别为:1)xml 配置化方式 2)@bean注解注入方式3)@Component方式 4)接口注入方式 5)imp ...
- 11.2.0.4 ORA-15025 ORA-27041 IBM AIX RISC System/6000 Error: 13: Permission denied
ASM device error ORA-27041 ORA-15025 ORA-15081 (Doc ID 1487475.1) 描述总结:数据库的alert中发现大量ORA-27041 ORA-1 ...