以太坊智能合约部署与交互

2023-11-06

启动容器来执行geth命令

root@ubu-blockchain2:~# docker run -i blockchain101/ethereum-geth:1.6.5 geth attach http://45.32.252.88:8201
Welcome to the Geth JavaScript console!

instance: Geth/01/v1.6.5-stable/linux-amd64/go1.8
coinbase: 0x4c57e7e9c2f728046ddc6e96052056a241bdbd0a
at block: 6064 (Wed, 02 Aug 2017 01:13:50 UTC)
 datadir: /ethcluster/779977/data/01
 modules: admin:1.0 eth:1.0 net:1.0 rpc:1.0 web3:1.0

查看我们的账户和余额


eth.getBalance(eth.accounts[0])

11000000000000000000
eth.getBalance(eth.accounts[1])
0
eth.accounts[0]
"0x4c57e7e9c2f728046ddc6e96052056a241bdbd0a"
> eth.accounts[1]
"0xe82e2f0a5abd8774767b9751659976f9c4f59181"

发起一笔交易


eth.sendTransaction({
   from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(3,'ether')})

"0x0075da712d26aea17d6647035107f509e13eaf3d113c1577db14d4cc4216caec"

查看交易细节


>  eth.getTransaction("0x0075da712d26aea17d6647035107f509e13eaf3d113c1577db14d4cc4216caec")

{
  blockHash: "0x3115703894dc6015c96ef4de3e5615f416498ca1f985902b38cd70e27dab8871",
  blockNumber: 1250,
  from: "0x4c57e7e9c2f728046ddc6e96052056a241bdbd0a",
  gas: 90000,
  gasPrice: 18000000000,
  hash: "0x0075da712d26aea17d6647035107f509e13eaf3d113c1577db14d4cc4216caec",
  input: "0x",
  nonce: 0,
  r: "0x2aef2c1fa03a0fa4172d21e3383d8c0431d45ec855b9d16efdd5eb2de90c414c",
  s: "0xc4d530fb7902bf509fe56bfbea4861bf6cc16791afc9c9103c1a18f77407d1f",
  to: "0xe82e2f0a5abd8774767b9751659976f9c4f59181",
  transactionIndex: 0,
  v: "0x17cdb6",
  value: 3000000000000000000
}
> eth.getBalance(eth.accounts[1])

3000000000000000000

验证用户0的余额


> eth.getBalance(eth.accounts[0])

7999622000000000000

编写一个简单的合约



contract Sample {
    uint public value;

          function Sample(uint v){
                    value=v;
          }

          function set(uint v){
                    value=v;
          }

          function get() constant returns (uint){
                    return value;
          }
}

remix网页编译得到ABI接口和合约的二进制代码、

 abi=[{
  "constant":true,"inputs":[],"name":"value","outputs":[{
  "name":"","type":"uint256"}],"payable":false,"type":"function"},{
  "constant":false,"inputs":[{
  "name":"v","type":"uint256"}],"name":"set","outputs":[],"payable":false,"type":"function"},{
  "constant":true,"inputs":[],"name":"get","outputs":[{
  "name":"","type":"uint256"}],"payable":false,"type":"function"},{
  "inputs":[{
  "name":"v","type":"uint256"}],"payable":false,"type":"constructor"}]



[{
    constant: true,
    inputs: [],
    name: "value",
    outputs: [{
        name: "",
        type: "uint256"
    }],
    payable: false,
    type: "function"
}, {
    constant: false,
    inputs: [{
        name: "v",
        type: "uint256"
    }],
    name: "set",
    outputs: [],
    payable: false,
    type: "function"
}, {
    constant: true,
    inputs: [],
    name: "get",
    outputs: [{
        name: "",
        type: "uint256"
    }],
    payable: false,
    type: "function"
}, {
    inputs: [{
        name: "v",
        type: "uint256"
    }],
    payable: false,
    type: "constructor"
}]

需要使用eth.contract来定义一个合约类


> sample=eth.contract(abi)

{
  abi: [{
      constant: true,
      inputs: [],
      name: "value",
      outputs: [{...}],
      payable: false,
      type: "function"
  }, {
      constant: false,
      inputs: [{...}],
      name: "set",
      outputs: [],
      payab
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以太坊智能合约部署与交互 的相关文章

  • truffle 安装以及基本指令

    1 linux下安装方式 npm install g truffle 环境要求 NodeJS 5 0 Windows Linux 或Mac OS X 2 创建工程 mkdir testdir cd testdir truffle init
  • IPFS环境搭建和用ipfs-api访问ipfs网络

    ipfs是去中心化星际文件系统 本文介绍节点软件ipfs环境搭建和使用方法 学习ipfs api在nodejs代码中访问ipfs网络 一 ipfs节点安装与使用 1 1下载节点软件 到官网下载windows版的ipfs节点软件 32位 64
  • 以太坊学习笔记:私有链搭建操作指南

    原文链接 https my oschina net u 2349981 blog 865256 讲解的内容非常详细 熟悉搭建以太坊私有链的相关操作 学习了 摘要 详解以太坊私有链搭建过程以及一些常用的操作 虽然以太坊是一个公有链系统 但是我
  • Solidity编程开发实例

    Solidity 编程开发实例 Voting 投票 接下来的智能合约教程非常复杂 但展示了很多Solidity的特性 它实现了一个入门的投票合约 当然 电子选举的主要问题是如何赋予投票权给准确的人 并防止操纵 我们不能解决所有的问题 但至少
  • 在区块链上开发可更新的智能合约

    由于区块链不可篡改的特性 智能合约一旦部署在区块链上 其执行的逻辑就无法再更改 长期来看 这个重要的特性反而限制了智能合约的弹性和发展 接下来要介绍如何设计及部署合约才能让合约在需要时可以更新 但这里的更新意思不是修改已经部署的合约 而是部
  • truffle教程

    直接在geth的控制台通过solc进行编译部署的示例已经很多了 比如这篇博客 此处不再赘述 本文主要演示怎样通过truffle部署以太坊智能合约 truffle是一个以太坊智能合约开发框架 它会帮你做很多琐碎的事情 安装使用都很简单 1 安
  • 以太坊控制台基本命令行操作

    创建账户 personal newAccount 123456 输入的参数是该账户对应的密码 账户地址保存在主目录下的keystore目录中 查询系统中的账户 personal listAccounts eth accounts 这个两个命
  • Solidity中引入的SPDX是什么

    Solidity中引入的SPDX是什么 起因 Solidity 0 6 8 要求引入 SPDX 许可证 否则会出现警告 Warning SPDX license identifier not provided in source file
  • 使用Go语言和以太坊智能合约交互

    尽管最近遇到了些麻烦 但以太坊仍然是区块链领域内智能合约的最大参与者 这似乎不会很快改变 在我看来 技术本身具有很大的潜力 是从学术的角度看很有意思 但正如上面提到的问题和之前的许多问题是区块链技术方面的 智能合约 特别是具有Solidit
  • 以太坊Python智能合约开发指南

    在以太坊上获得一个基本的智能合约是一个很简单的事 只需google查询 ERC20代币教程 你会发现有关如何做到这一点的大量信息 以编程方式与合约交互完全是另一回事 如果你是一个Python程序员 那么教程就很少 所以写这个Python中的
  • 区块链技术基本概念

    链客 专为开发者而生 有问必答 此文章来自链客区块链技术问答社区 未经允许拒绝转载 区块链技术根本概念 了解这些名词是一个不错的开端 公钥加密系统 Alice有一把公钥和一把私钥 她可以用她的私钥创建数字签名 而Bob可以用她的公钥来验证这
  • 读取本地文件到读出p.node涉及的函数

    这里是读取本地文件的所调用的函数 func ParseNode rawurl string Node error if m incompleteNodeURL FindStringSubmatch rawurl m nil id err H
  • 星际文件存储IPFS是如何颠覆云存储的?

    一句话概括 IPFS The InterPlanetary File System 星际文件存储系统是一种点到点的分布式文件系统 它连接的计算设备都拥有相同的文件管理模式 从某种意义上来说这个概念跟Web的最初理念很类似 但是实际上IPFS
  • 以太坊如何通过构建智能合约来销售商品?

    如何通过构建以太坊智能合约来销售商品 这是个问题 毫无疑问 比特币已经改变了我们看待和理解什么是金钱 价值以及最近由智能合约产生的所有权的方式 这很有趣 因为几乎每个人都听说过它或加密货币 来自许多业务领域的人 不仅仅是我们 IT工作者 在
  • nodejs以太坊Dapp开发中文资料收集(精选版)

    区块链技术是趋势 会Nodejs 想做区块链相关 选择了以太坊这个平台 网上资料虽然多少能搜到 但是鱼龙混杂 重复错误百出 不够系统 在几天的搜寻筛选之后 整理了以下中文以太坊智能合约开发资料 有不足或者补充的请留言 互相交流共同进步 1
  • 以太坊智能合约各方法对应的签名编码

    erc20智能合约常见方法对应的签名编码 常见例如交易 transfer address uint256 编码为 web3 sha3 transfer address uint256 substring 0 10 gt 0xa9059cbb
  • java和android程序员使用web3j进行区块链以太坊开发详解

    如何使用web3j为Java应用或Android App增加以太坊区块链支持 教程内容即涉及以太坊中的核心概念 例如账户管理包括账户的创建 钱包创建 交易转账 交易与状态 智能合约开发与交互 过滤器和事件等 同时也详细说明如何使用web3j
  • EOS智能合约安全开发终极指南

    EOS智能合约安全终极指南 当世界上最大的ICO EOS于2018年6月推出时 加密社区变得持怀疑态度 并且由于软件错误而被冻结了2天 但快进4个月 EOS今天占了以太网今天所做交易的两倍以上 通过免费和更快速交易的承诺 EOS最顶级的Da
  • 以太坊构建DApps系列教程(一):应用程序规则和区块链设置

    这将是一个如何使用以太坊区块链构建去中心化应用程序DApps的系列教程 第一篇教程重点介绍应用程序的规则和功能以及设置私有区块链 展示在使用或不使用DAO和应用程序的情况下如何构建自己自定义的以太坊代币 我们要构建3件事 自定义代币 使用代
  • 引介

    转载自 https ethfans org posts rlp encode and decode RLP编码和解码 RLP Recursive Length Prefix 递归的长度前缀 是一种编码规则 可用于编码任意嵌套的二进制数组数据

随机推荐

  • BaoStock:一个免费、开源的python证券数据接口包

    如果需要获取历史行情数据 www baostock com是个很好的免费 开源的Python证券数据接口包 特点 使用方便 免费免费免费 返回的绝大部分的数据格式都是pandas DataFrame类型 入门代码如下 import baos
  • 分布式系统常用的模式

    分布式系统常用的模式 Ambassador 名称 大使 模式 介绍 作为应用程序和其他服务的 中间人 负责应用程序和其他服务之间的通信 包括日志 监控或重试处理等任务 举例 K8S使用Envoy作为一个 大使 来简化服务之间的通信 优点 降
  • MySQL多表查询

    目录 一 查询和新增结合 二 聚合查询 1 聚合函数 2 group by子句 三 联合查询 1 笛卡尔积 1 内连接 2 外连接 1 左外连接 2 右外连接 3 自连接 4 子查询 嵌套查询 5 合并查询 一 查询和新增结合 将表2中的数
  • 第十二届蓝桥杯省赛第二场C/C++大学B组编程题题目及解析

    目录 试题F 特殊年份 试题G 小平方 试题H 完全平方数 试题I 负载平衡 试题J 国际象棋 试题F 特殊年份 include
  • 【Linux】设计模式

    目录 1设计模式 1 1概念 1 2设计模式分类 1 3单例模式 1 4单例模式代码演示 1 4 1懒汉模式 1 4 2饿汉模式 2 读写锁 2 1概念 2 2加锁规则 2 3接口 2 3 1初始化接口 2 3 2销毁接口 2 3 3解锁接
  • 第1章第5节:如何使用模板创建风格统一的幻灯片 [PowerPoint精美幻灯片实战教程]

    使用模板可以创建美观 风格统一和专业的幻灯片 要使用模板创建幻灯片 首先点击此处的文件选项卡 进入文件功能页面 然后在左侧的命令列表中 点击新建命令 在页面的下方 是由微软提供的常见的演示文稿模板 也可以通过搜索框 搜索指定主题的模板 点击
  • SharedPreferences 操作

    public class SPActivity extends Activity 使用SharedPreferences 来储存与读取数据 SharedPreferences mShared null 程序中可以同时存在多个SharedPr
  • IndentationError:expected an indented block错误解决

    IndentationError expected an indented block错误解决 描述 有时一个简单的问题会困扰很久 当发现问题后才感觉自己是多蠢 下面记录一个在日常Python编程过程中碰见的典型问题 参考文章 http h
  • C++编写及注册windows服务程序

    1 注册服务 在 开始 gt 运行 gt cmd 中输入 sc create TEST binPath C TEST EXE 则在windows下注册了一项服务 sc create TestService binpath c Service
  • GitHub Action + Release:打造 Electron 持续交付系统文件配置

    main yml上的文件配置 This is a basic workflow to help you get started with Actions name build Electron App For Win Mac Control
  • 上班族适合的兼职副业,副业做什么比较靠谱,副业赚钱的路子有哪些

    要找能不影响上班的副业 那前提条件就必须不能让你投入太多的时间在上面 否则说不影响上班就是扯淡哈 对于找什么副业比较靠谱这样的问题 我们首先要清楚 哪里的用户多 我们就在那个地方寻找就准没错 这也是基本道理 无可厚非 短视频平台就是现在人流
  • C++ const 关键字详解(全网最全)

    1 const修饰符的作用 const类型定义 指明变量或对象的值是不能被更新 引入目的是为了取代预编译指令 可以保护被修饰的东西 防止意外的修改 增强程序的健壮性 编译器通常不为普通const常量分配存储空间 而是将它们保存在符号表中 这
  • 红米手机5A完整卡刷开发版获取Root超级权限的流程

    小米的手机或平板不同手机型号一般小米官网都提供两个不同的系统 可分为稳定版和开发版 稳定版没有提供Root超级权限管理 开发版中就提供了Root超级权限 在很多工作的时候我们需要使用的一些功能强大的应用 都需要在Root超级权限下工作 比如
  • 骑士周游问题,马踏棋盘算法

    该问题实际上是图的深度优先搜索的应用 package com horsechess import java awt import java util ArrayList import java util Comparator public
  • 华为OD机试真题-猜字谜【2023.Q1】

    题目描述 小干设计了一人简单的清字谈游戏 游戏的迷面是一人错误的单词 比如nwes 玩家需要猜出谈底库中正确的单词 猜中的要求如 对于某个谜面和谜底单词 满足下面任一条件都表示猜中 1 变换顺序以后一样的 比如通过变换w和e的顺序 nwes
  • Qt自带了一些常用的对话框,例如消息框、警告框、提问框等等

    Qt自带了一些常用的对话框 例如消息框 警告框 提问框等等 而QMessageBox作为其中的一种 它可以用来显示简单的信息提示 如确认对话框 错误提示等等 但是 我们发现这些提示框的样式都是固定的 无法实现自定义的样式 那么本文将介绍如何
  • 检测到目标web应用表单密码类型输入启用了自动完成操作

    描述 在web应用form表单中 如果input标签没有指定 autocomplete 属性为 off 则 autocomplete 的属性会自动默认为on 当web应用form表单中的密码类型为input标签 autocomplete属性
  • Linux系统权限详解

    目录 一 权限解释 1 所有者权限 2 所属组权限 3 其他人权限 二 用户用户组解释 3 解释权限含义 4 权限命令解释 三 基本权限 U G O 1 权限对象 2 基本权限 3 高级权限 一 权限解释 在Linux系统中 文件和目录的访
  • 【数据结构入门】时间复杂度和空间复杂度

    算法在编写成可执行程序后 运行时需要耗费时间资源和空间 内存 资源 因此衡量一个算法的好坏 一般是从时间和空间两个维度来衡量的 即时间复杂度和空间复杂度 时间复杂度主要衡量一个算法的运行快慢 而空间复杂度主要衡量一个算法运行所需要的额外空间
  • 以太坊智能合约部署与交互

    启动容器来执行geth命令 root ubu blockchain2 docker run i blockchain101 ethereum geth 1 6 5 geth attach http 45 32 252 88 8201 Wel