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

一、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简单合约的更多相关文章

  1. 区块链开发学习第七章:第一个Dapp-猜拳游戏

    第一个简单的Dapp-猜拳游戏.本智能合约的功能很简单,就是用户与电脑猜拳,用户选择出手后,电脑随机一个选项,然后调用智能合约方法把两个选项值传过去,在智能合约上进行比较,并通过区块链合约事件广播结果 ...

  2. Intel汇编语言程序设计学习-第三章 汇编语言基础-上

    汇编语言基础 3.1  汇编语言的基本元素 有人说汇编难,有人说汇编简单,我个人不做评价,下面是一个简单的实例(部分代码): main PROC mov  eax,5  ;5送EAX寄存器 add   ...

  3. 《ORACLE数据库管理与开发》第三章学习之常用函数记录

    <ORACLE数据库管理与开发>第三章学习之常用函数记录 注:文章中的*代表所要操作的列名 1.lower(*)/upper(*),将此列下的值转为小写/大写 2.initcap(*):把 ...

  4. Android艺术开发探索第三章————View的事件体系(下)

    Android艺术开发探索第三章----View的事件体系(下) 在这里就能学习到很多,主要还是对View的事件分发做一个体系的了解 一.View的事件分发 上篇大致的说了一下View的基础知识和滑动 ...

  5. Android艺术开发探索第三章——View的事件体系(上)

    Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 Motion ...

  6. Knockout应用开发指南 第三章:绑定语法(3)

    原文:Knockout应用开发指南 第三章:绑定语法(3) 12   value 绑定 目的 value绑定是关联DOM元素的值到view model的属性上.主要是用在表单控件<input&g ...

  7. Knockout应用开发指南 第三章:绑定语法(2)

    原文:Knockout应用开发指南 第三章:绑定语法(2) 7   click 绑定 目的 click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数.大部分是用 ...

  8. Knockout应用开发指南 第三章:绑定语法(1)

    原文:Knockout应用开发指南 第三章:绑定语法(1) 第三章所有代码都需要启用KO的ko.applyBindings(viewModel);功能,才能使代码生效,为了节约篇幅,所有例子均省略了此 ...

  9. Lucene/Solr搜索引擎开发笔记 - 第2章 Solr安装与部署(Tomcat篇)

    一.安装环境 图1-1 Tomcat和Solr的版本 我本机目前使用的Java版本为JDK 1.8,因为Solr 4.9要求Java版本为1.7+,请注意. 二.Solr部署到Tomcat流程 图1- ...

随机推荐

  1. Jmeter目录分析

    通讯协议 最重要的基础知识. 性能测试的原理?通过协议模拟压力 jmeter目录结果解析 bin docs,文档 lib,存放库文件,所依赖的jar包 ext jmeter自己的jar包 jmeter ...

  2. 『Python』matplotlib常用函数

    1. 绘制图表组成元素的主要函数 1.1 plot()--展现量的变化趋势 import numpy as np import matplotlib.pyplot as plt import matp ...

  3. P7405-[JOI 2021 Final]雪玉【二分】

    正题 题目链接:https://www.luogu.com.cn/problem/P7405 题目大意 \(n\)个点在坐标轴上,\(q\)次每次所有点向一个方向移动若干步,每个点的权值是它第一次覆盖 ...

  4. P5748-集合划分计数【EGF,多项式exp】

    正题 题目链接:https://www.luogu.com.cn/problem/P5748 题目大意 求将\(n\)的排列分成若干个无序非空集合的方案. 输出答案对\(998244353\)取模. ...

  5. NOI.AC#2007-light【根号分治】

    正题 题目链接:http://noi.ac/problem/2007 题目大意 \(n\)个格子排成一排,每个格子有一个\(0/1\)和一个颜色.开始每个格子都是\(0\),\(q\)次操作取反一个颜 ...

  6. 关于国密HTTPS 的那些事(一)

    关于国密HTTPS 的那些事(一) 随着<密码法>密码法的颁布与实施,国密的应用及推广终于有法可依.而对于应用国密其中的一个重要组成部分----国密HTTPS通信也应运而生.为了大家更好的 ...

  7. 最详细STL(一)vector

    vector的本质还是数组,但是可以动态的增加和减少数组的容量(当数组空间内存不足时,都会执行: 分配新空间-复制元素-释放原空间),首先先讲讲vector和数组的具体区别 一.vector和数组的区 ...

  8. ldirectord

    试想,LVS作为前端负载均衡设备,当后端服务器宕机时,LVS还会把用户请求发送到该服务器上,这对用户体验来说是极其糟糕的,因为用户的请求无法得到处理.那么是否有一种机制,能保证后端服务器的是否正常?或 ...

  9. 洛谷 P7541 DOBRA 题解

    hhh... 我又来写题解了 solution 题意简化 一个字符串,将所有的 _ 替换成大写字母,使结果字符串符合要求: 1.不包含三个连续 元音 或 辅音 字母: 2.字符串中至少有一个 L . ...

  10. 都 2021 年了,Serverless 能取代微服务吗?

    来源 | Serverless 公众号 编译 | OrangeJ 作者 | Mariliis Retter "Serverless 能取代微服务吗?" 这是知乎上 Serverle ...