Remix+Geth 实现智能合约部署和调用详解
Remix编写智能合约
编写代码
Remix 在线编辑器
https://ethereum.github.io/browser-solidity/#optimize=false&version=soljson-v0.4.19+commit.c4cbbb05.js0
记得在setting里选择对应版本
在线调试
当complie没出现问题时, 就可以在线运行调试了
实现部署
点击Run, create, 实现部署

调用接口
在部署完之后会出现下面界面, 包括合约名字

如何调用接口?
只需要在对应的接口上输入参数, 调用的话,点击前面的接口名就能在下面看到输出

经过以上两步 我们应该已经调试好合约, 下面就是部署在私有链上了
Geth实现私有链部署合约和调用接口
部署合约
首先在ubantu安装好Geth环境, 配置好私有链,具体可参考此博客
https://blog.csdn.net/qq874455953/article/details/83692732
然后我们打开web3命令行

然后在Remix的complies界面点击detail

找到remix为我们自动生成的部署合约代码

复制此段代码 然后放到web3命令行
注意 生成的默认是第一个账户发起的
from: web3.eth.accounts[0]
需要解锁此用户才可以
personal.unlockAccount(eth.accounts[0])
然后挖矿确认 部署合约
miner.start();admin.sleepBlocks(1);miner.stop()

显示已经部署成功, 而且显示了合约的地址, 地址需要复制下来后面需要用
调用合约
获得合约实例
方法1:
其实当你在web3命令行运行remix赋值的命令语句时, 此时已经是有一个实例了, 对于我上面的例子,此时的实例就是 fitbody , 注意不是fitbodyContract , fitbodyContract 相当于一个类, 而fitbody是合约类生成的合约实例, 我们用的就是合约实例。这时的fitbody相当于下文的MyContract
这是方法2:
调用合约首先需要获得合约的实例,通过实例调用
var ac0 = web3.eth.accounts[0];
var MyContract = web3.eth.contract(<合约abi>).at(<合约地址>);
合约abi 通过编译本地合约代码获得
把remix的合约放到ubantu里 保存为code.sol
solc --abi code.tol
需要自行安装solidity编译器
而合约地址刚才已经保存。
通过实例调用合约接口
获得实例MyContract后可以通过下面方法调用
一般是需要先unLock调用的地址账户的
这种是对内容进行修改,或者合约需要发送以太币时的调用方式,执行完可获得交易的hash
MyContract.<你的合约接口, 这里一般会自动补全>.sendTransaction(<参数列表>, {from:<调用合约账户>, value : <附送的以太币>, gas: 10000000});
这种是进行查询时的接口调用方式
MyContract.<接口名>.call(<参数>);
Remix+Geth 实现智能合约部署和调用详解的更多相关文章
- 使用 Browser-solidity 在 Go-Ethereum1.7.2 上进行简单的智能合约部署
目录 目录 1.基本概念 1.1.什么是智能合约? 1.2.什么是Solidity? 1.2.1.Solidity的语言特性 1.3.什么是 Browser-solidity? 2.Browser-s ...
- EOS智能合约开发(四):智能合约部署及调试(附编程示例)
EOS智能合约开发(一):EOS环境搭建和创建节点 EOS智能合约开发(二):EOS创建和管理钱包 EOS智能合约开发(三):EOS创建和管理账号 部署智能合约的示例代码如下: $ cleos set ...
- solidity 智能合约之间的调用
智能合约之间的调用 在区块链上,有些功能往往无法通过一个智能合约完成,此时便会用到智能合约之间的调用.本篇文章带大家通过具体示例来了解一下智能合约之间的调用. 在智能合约的编译过程中,有两种情况:调用 ...
- Haproxy均衡负载部署和配置文件详解
HAproxy均衡负载部署和配置文件详解 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根据官方数据,其最高极限支持10G ...
- web缓存服务器varnish-4.1.6的部署及配置详解
web缓存服务器varnish-4.1.6的部署及配置详解 1.安装varnish4.1.6安装依赖 yum install -y autoconf automake jemalloc-devel l ...
- EOS测试链智能合约部署调用
ETH与EOS两者智能合约进行简单的对比. 1.编译智能合约(合约编译成.wasm与.abi格式后即可部署到区块链) [root@C03-12U-26 testcontract]# cat testc ...
- 区块链入门(5)Truffle 项目实战,Solidity IDE, 智能合约部署
在上一张我们学习了Truffle项目的创建,部署等相关内容,今天我们就来实战一下. 今天我们要做3件事: 1) 学习搭建一个Solidity IDE(Remix). 2) 使用这个Solidity I ...
- SCCM 2007 R2部署、操作详解系列之概念
站点类型 在安装站点时,您决定它将是主站点还是辅助站点.然后,在安装其他站点时,您可以选择将其安排到层次结构关系中,以便父站点管理子站点,中央站点收集所有站点信息,从而进行集中式管理.也可以根据业务和 ...
- Keepalived部署与配置详解
Keepalive详解 工作原理 Keepalived本质就是为ipvs服务的,它也不需要共享存储.IPVS其实就是一些规则,Keepalived主要的任务就是去调用ipvsadm命令,来生成规则,并 ...
随机推荐
- Flarum 的安装与配置
Flarum 是一款非常棒的开源论坛程序,本鸽子的论坛 就是用 Flarum 搭建的.之前有人问过我 Flarum 如何搭建,所以下面讲一下 Flarum 的搭建过程. 前提 域名需要提前解析. 有一 ...
- C++语法小记---同名覆盖
同名覆盖 子类中的同名成员会覆盖父类中的同名成员,但是在内存中仍然存在,只是无法直接访问,需要加上域名才能访问 子类中的同名函数会覆盖父类中的函数,复写是同名覆盖的一种特殊情况,只要不是多态场景,复写 ...
- zabbix自定义监控(当会话登录超过三个就报警)
安装过程在此省略. 1.agent端去修改配置文件 2.调用自定义内容 vim /etc/zabbix/zabbix_agentd.d/login.conf UserParameter=login-u ...
- java8中parallelStream提升数倍查询效率是怎样实现的,来看看这篇文章
作者:我恰芙蓉王 原文:https://www.cnblogs.com/-tang/p/13283216.html 业务场景 在很多项目中,都有类似数据汇总的业务场景,查询今日注册会员数,在线会员数, ...
- 题解 SP1841 【PPATH - Prime Path】
模拟赛考到了这个题,但我傻傻的用了\(DFS\),于是爆了零 后来才想明白,因为搜索树的分支很多,但答案的深度却又没有那么深,所以在这里\(BFS\),而\(DFS\)一路搜到底的做法则会稳稳地\(T ...
- XML转Bean
XML转Bean有很多方式,我使用的是xtream方式实现xml与bean的互转. 下面是简单的xml转bean /** * XML转换成bean * @param obj * @return yuy ...
- 华为云如何使用二次验证码/虚拟MFA/两步验证/谷歌验证器?
一般点账户名——设置——安全设置中开通虚拟MFA两步验证 具体步骤见链接 华为云如何使用二次验证码/虚拟MFA/两步验证/谷歌验证器? 二次验证码小程序于谷歌身份验证器APP的优势 1.无需下载ap ...
- Oracle连接报错之IO异常(The Network Adapter could not establish the connection)
简单介绍:自己封装oracle jdbc的一些常用功能jar包,自己本机玩没啥问题,给别人玩儿,发现总是抛异常 IO异常(The Network Adapter could not establish ...
- laravel 安装语言包
一.composer依赖网站地址:https://packagist.org/ 二.在搜索框输入: laravel-lang 三.点击进入,根据自己的版本进行安装: composer require ...
- 二手99新iPhone8Plus有锁移动联通版
原文是维基百科:http://www.bosimedia.com/wiki/IPhone_8#cite_note-1 iPhone8Plus详细介绍 iPhone 8与iPhone 8 Plus 是苹 ...