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命令,来生成规则,并 ...
随机推荐
- java 之 实例方法和类方法
类方法:使用static修饰(静态方法),属于整个类的,不是属于某个实例的,只能处理static域或调用static方法: 实例方法:属于对象的方法,由对象来调用. 判断类方法,类方法的前面有stat ...
- git分支间切换注意点和bug分支的处理
目录 备注: 知识点 记一次分支合并问题状况 从分支点开始,不同分支修改工作区的内容(不添加到暂存区和提交),切换分支,工作区的内容是一样的. 必须在提交或者暂存当前暂存区的状态后,再切换或合并分支 ...
- vscode用MinGW和Clang配置C++环境
vscode是个不错的编辑器,简洁轻量,就是一开始的时候需要对环境进行配置,开个贴记录一下怎么用MingGW64+clang来配置. 下载地址 LLVM Download Page Pre-Built ...
- PyQt5布局管理器
布局分类 绝对定位:使用move方法将空间直接定死在某个坐标,不会随着窗口大小的改变而改变 可变布局:使用各种布局管理器,实现组件的位置和大小随着窗口的变化而变化 布局管理器 QHBoxLayout: ...
- A - New Building for SIS
You are looking at the floor plan of the Summer Informatics School's new building. You were tasked w ...
- HBase面试考点
HBase 架构图 组成部分及作用 Zookeeper在HBase中作用 Master的高可用 RegionServer的监控 元数据的入口 HMaster 不仅有维护集群元数据信息的功能,还能 通过 ...
- lua中 table.getn(t) 、#t、 table.maxn(t) 这三个什么区别?
lua中 table.getn(t) .#t. table.maxn(t) 这三个什么区别? RTlocal t = {1,888,x= 999,b=2,5,nil,6,7,[10]=1,8,{z = ...
- Centos 安装ixgbe驱动
1. 首先查看网卡类型 [root]# lspci | grep 8259907:00.0 Ethernet controller: Intel Corporation 82599ES 10-Giga ...
- PHP gregoriantojd() 函数
------------恢复内容开始------------ 实例 把格利高里历法的日期转换为儒略日计数,然后再转换回格利高里历法的日期: <?php$jd=gregoriantojd(6,20 ...
- Ubuntu安装Cloudera Manager以及CDH5.15.2
一.机子分配 注意,本安装教程是在真机上进行,而非虚拟机.另,此次搭建主要的目的是搭建测试环境,让Hadoop各组件能够运作起来即可,完成搭建后,将用小数据量进行相关数据的计算与测试.线上环境将会使用 ...