以太坊中的交易( Transaction )是指存储一条从外部账户发送到区块链上另-个账户的
消息的签名数据包,它既可以是简单的数字货币一一以太币的转账,也可以是包含智能合
约代码的消息 。

1.交易内容:

  • from :交易发送者的地址,必填;
  • to :交易接收者的地址,如果为空则意味这是一个创建智能合约的交易;
  • value :发送者要转移给接收者的以太币数量;
  • data (也写作 input):存在的数据字段,如果存在,则是表明该交易是一个创建或者调用智能合约交易;
  • Gas Limit (也写作 Gas, StartGas ):表示这个交易允许消耗的最大 Gas 数量;
  • GasPrice :表示发送者愿意支付给矿工的 Gas 价格;
  • nonce :用来区别同一用户发 出的不同交易的标记;
  • hash :由以上信息生成的散列值(哈希值),作为交易的 ID
  • r 、 s 、 v :交易签名的三个部分,由发送者的私钥对交易 hash 进行签名生成

2.交易三种类型:

2.1. 转账交易

转账是最简单的一种交易, 从一个账户向另一个账户发送以太币 。 发送转账交易时只需要指定交易的发送者、接收者、转移的以太币数量即可(在客户端发送交易时, Gas Limit 、Gas Price 、 nonce 、hash 、签名可以按照默认方式生成)

2.2. 创建智能合约的交易

创建合约是指将合约部署到区块链上,这也是通过发送交易来实现的 。 在创建合约的交易中 , “to” 字段是一个空字符串,在“ data"宇段中指定初始化合约的二进制代码,在之后合约被调用时,该代码的执行结果将作为合约代码。

2.3. 执行智能合约的交易

该交易是为了执行已经部署在区块链上的智能合约,在该交易中,需要将“to”字段指定为要调用的智能合约的地址,通过“ data"字段指定要调用的方法以及向该方法传递参数

eg. 查询交易的例子

web3.eth.getTransacti on('OxcSeee3ae9cflOfbee0532Se3a2Sc3bl9489783612e36cbSSb054c
2cb4f82fc28')
{blockHash: ' Oxdb85c62ef50103f08e922Ob59d6c08cbfb52e6ld84926dedb3fe9b694Oe6bbea’,blockNumber: 290081,from: 'Oxldcb8dlf0fcc8cbc8c2d76528e877f915e299fbe’,Gas: 90000,GasPrice: 50000000000 ’,hash: 'Oxc5eee3ae9cfl0fbee05325e3a25c3bl9489783612e36cb55b054c2cb4f82fc28',input: ' Ox' ,nonce: 34344,to: 'Ox702bd0d370bbf0b97b66fe95578c62697c583393',transactionindex: 0,value: 5000111390000000000
}

以太坊知识教程------交易相关推荐

  1. 以太坊知识教程------账户

    以太坊有两种不同类型的账户: 外部拥有的账户,公私钥. 合约账户 一个以太坊的账户包含四个部分 内容 外部账户 合约账户 该地址交易的次数( nonce ) a counter that indica ...

  2. 以太坊知识教程------智能合约(2)调用

    1. 合约消息 合约之间通过调用或发送消息的方式进行交互 .当一个合约接收到一条消息时,它可以回复一些数据,这样消息的原发送者就能立即使用 .采用这种方法,发送一条消息就像调用一次函数. 一个智能合约 ...

  3. 以太坊知识教程------智能合约(1)基本概念

    1.智能合约的定义 智能合约是一段 EVM 可执行的代码 智能合约的信息都被附在"交易"中,以交易的形式发布到网络中 合约发布之后用户会得到一个合约地址,相当于合约对象的指针 当网 ...

  4. 以太坊知识教程------智能合约的5种设计模式

    1.自毁合约 合约自毁模式用于终止一个合约,这意味着将从区块链上永久删除这个合约. 一旦被销毁,就不可能调用合约的功能,也不会在账本中记录交易. eg. 贷款合约,它应当在贷款还清后自动销毁:另一个案 ...

  5. 以太坊知识教程------智能合约(3)函数修饰符

    1. solidity的五个关键字修饰符 操作 定义 public 用来修饰公开的函数 /变量,表明该函数/变量既可以在合约外部访问,也可以在合约内部访问 . private 私有函数和变量,只有当前 ...

  6. 以太坊知识教程------智能合约(2)调用 delegatecall call send

    1. 函数调用call(-) <address>.call(-) 可以接受任何长度.任何类型的参数,每个参数将被填充到 32 字节并拼接在一起 . 但有一种例外情况,当第一个参数的长度恰好 ...

  7. java 以太坊 智能合约_web3j教程:java使用web3j开发以太坊智能合约交易

    从广义上讲,有web3j支持三种类型的以太坊交易: 1.以太币从一方交易到另一方 2.创建一个智能合约 3.与智能合约交易 为了进行这些交易,必须有以太币(以太坊区块链的代币)存在于交易发生的以太坊账 ...

  8. Hyperledger Besu企业以太坊快速教程

    Hyperledger Besu企业以太坊快速教程 发表于 2020-01-17 |  分类于 以太坊 Besu是Hyperledger中的企业以太坊产品,其最大优势在于兼容以太坊主网. 本教程介绍如 ...

  9. 以太坊原理分析(一)以太坊工作(交易)原理

    简介 不管你们知不知道以太坊(Ethereum blockchain)是什么,但是你们大概都听说过以太坊.最近在新闻里出现过很多次,包括一些专业杂志的封面,但是如果你们对以太坊到底是什么没有一个基本的 ...

最新文章

  1. GNN教程:DGL框架中的采样模型!
  2. Application,Session,Cookie,ViewState和Cache区别
  3. 网闸与防火墙的区别_网关和网闸、防火墙的区别?
  4. struts2教程--快速入门
  5. html设置flash满屏,在网页中实现flash全屏的几种方法
  6. java调用C++ DLL库方法
  7. Spring集成文件轮询和测试
  8. CNN(Convolutional Neural Network) 的基础
  9. RHEL5中mdadm配置raid5磁盘阵列
  10. python程序间通信_python进程间通信Queue工作过程详解
  11. 3个月定期存款利息怎么算?
  12. 【排版】LaTeX公式编辑器-Texlive入门
  13. ES 数据导出和数据导入
  14. 一文读懂天翼物联网平台(AIoT)
  15. ubuntu将cuda卸载干净
  16. Hudi同步Hive表报“HoodieException : Got runtime exception when hive syncing”错误的解决方法
  17. 深度增强学习(DRL)漫谈 - 从AC(Actor-Critic)到A3C(Asynchronous Advantage Actor-Critic)
  18. [读书笔记]Core Java: Volume I - Fundamentals Chapter 1
  19. (介孔sio2) 介孔二氧化硅微球的应用
  20. 为什么字库取模软件的取模只有人家的一半?

热门文章

  1. word置顶_小鱼便签怎么设置置顶
  2. 基于python的语料库数据处理电子版_基于 Python 自然语言处理工具包在语料库研究中的运用...
  3. 腾讯天津数据中心余热回收应用初探
  4. 明天要上班了,假如上天再给我一个假期…
  5. mysql root 权限注入_Mysql注入root权限直接写一句话马
  6. Pyecharts:pyecharts(图文+代码)实战(柱状图/条形图/散点图、漏斗图、仪表盘、折线/面积图、水球图、地图、平行坐标系、饼图、极坐标系、雷达图、词云图)之绘制各种吊炸天的图表
  7. ML之ECS:利用ECS的PAI进行傻瓜式操作机器学习的算法
  8. Matlab:单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题
  9. Py之easygui:easygui的简介、安装(最正确安装)、使用方法之详细攻略
  10. Apache部署网页-Ubuntu16.04