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命令,来生成规则,并 ...
随机推荐
- Linux 后台启动 Redis
1. 修改 redis.conf 首先,这里有一个坑 ! 不同的 redis版本,在安装的时候,redis.conf 的路径稍微有些不同 redis.conf 可能出现的三个位置: /etc/redi ...
- Hexo 踩坑:jquery 报错
今天玩了一下Hexo(一个基于node.js的静态博客框架),结果部署到服务器上后发现了一个报错. jquery未定义. jquery怎么会报错呢?一看是找不到链接上的文件. //ajax.googl ...
- R语言 循环语句、分支语句和中止语句-控制流篇
for 循环 用法 for (n in m) expr 若n在m中则运行 expr while 循环 用法 while (condition) expr 当符合condition时运行expr rep ...
- springboot整合邮件发送(163邮箱发送为例)
先登录163邮箱获取授权 勾选后安装提示会叫你设置授权密码之类的:记住授权的密码 1.引入maven依赖 <dependency> <groupId>org.springfr ...
- Seaborn实现单变量分析
import numpy as np import pandas as pd from scipy import stats,integrate import matplotlib.pyplot as ...
- MediaDevices对象
mediaDevices 是 Navigator对象的一个 只读属性,返回一个 MediaDevices 对象,该对象可提供对相机和麦克风等媒体输入设备的连接访问,也包括屏幕共享. 语法 const ...
- ABC 158 F - Removing Robots dp 单调栈
LINK:Removing Robots 没想到 自闭. 考虑了一个容斥 发现不合法方案难以计算. 就算可以计算也几乎是n^2的做法. 考虑dp 左边会对右边产生影响 所以考虑先dp右边的再考虑左边的 ...
- odoo本地pycham环境搭建(mac)
本文以odoo12为例配置本地环境,注意不是docker环境 1.安装pycharm(推荐2020.1版本,破解地址:https://www.cnblogs.com/xuexianqi/p/12767 ...
- Asp.Net项目发布 到 IIS、 Core3.1 发布到 IIS CentOS8.x
摘要:发布项目到IIS或者.Net Core 项目发布到IIS服务器或者CentOS记录一下,后面忘了又来看看. 1.服务器安装IIS 1.1.不管你是本地的电脑还是网上购买的服务器,只要是能通过远程 ...
- windows:shellcode 远程线程hook/注入(二)
https://www.cnblogs.com/theseventhson/p/13218651.html 上次分享了基本的远程注入方法,遗留了一个问题:shellcode执行完后怎么回到线程su ...