简介:接入EOS支付,发起交易很简单,接收交易也很简单,但交易验证,却是最常被低估以及忽略的部分。记得之前交易所遭到EOS假币攻击吗?就是交易验证的锅。然而就是这样一个和资金安全息息相关的部分,几乎找不到一篇专门讲的文章,遂作此文。

接入EOS支付,发起交易很简单,接收交易也很简单,但交易验证,却是最常被低估以及忽略的部分。记得之前交易所遭到EOS假币攻击吗?就是交易验证的锅。然而就是这样一个和资金安全息息相关的部分,几乎找不到一篇专门讲的文章,官方文档也无处可寻,遂作此文。

EOS交易验证,不是看某一个参数就可以的,需要验证这四个部分:

1.交易excuted;

2.不可逆,即交易所在区块号低于当前最新不可逆块号;

3.合约账户和货币符号,假币攻击就是因为交易所没验证合约账户;

4.From和to,即转入转出的账户需要再次确认。

Transaction同时满足这四个条件,才能判断为交易成功,并执行下一步程序。而且,如果是通过公共API或API服务商提供的数据进行交易验证,需要使用不同服务提供商的API至少进行二次确认,以防止API信息出错导致问题。

验证的技术实现:

1.交易excuted:验证transaction status参数为"executed";

2.不可逆:获得transaction所在区块的区块号以及主网最新不可逆块的区块号(不可逆区块高度),判断block_num

主网最新不可逆块的区块号可以通过RPC get_info等接口获得,也有一些获取transaction信息的接口返回时直接包含不可逆区块高度,比如EOSPark HTTPS API的get_account_related_trx_info.

官方RPC接口 get_info Node.js代码示例:

EOS RPC 接口获取主网基本信息

返回数据示例:

EOS RPC 接口获取主网基本信息返回数据示例

EOSPark HTTPS API的get_account_related_trx_info详情可以看之前这篇:https://www.jianshu.com/p/bb7dbe5d20e7

3.合约账户和货币符号:合约账户即action(act)中的account,货币符号可以从quantity中提取,也有些接口直接返回货币符号;

4.From和to:位于action(act)下data下。

Transaction结构示例,可以清楚看到status、block_num、action(act)中的account、action(act)下data下的quantity、from、to的位置:

EOS transaction结构示例

我们有一个区块链知识星球,做区块链前沿资料的归纳整理以方便大家检索查询使用,也是国内顶尖区块链技术社区,欢迎感兴趣的朋友加入。如果你对上面内容有疑问,也可以加入知识星球提问我:

eos 区块链 java 开发_EOS 交易验证的主要思路 - EOS 区块链开发实战相关推荐

  1. SSM基于区块链的物联网数据交易 计算机毕业设计源码46193

    摘  要 物联网技术作为继互联网技术后新一代的通信信息集成应用的典范,其巨大的应用前景受到了学术界和政商界的广泛关注.物联网技术在一些传统行业已经有了很深入的应用,例如,其在商品生产信息溯源.环境监测 ...

  2. eos区块链 java客户端_分享一个网友第一次开发EOS区块链总结的经验

    在处理项目时,用Java Connector for EOS区块链编写: 创建钱包 创建帐户 创建交易 创建签名交易 在帐户之间转移代币 我遇到了各种和运行本地EOS节点需要遵循的基本步骤.这个小指南 ...

  3. eos区块链 java客户端_在EOS区块链上使用EOSJS和scatter开发dApp

    由于我一直在深入研究EOS dApp的开发,我看了不少好文章.在这里,我汇总了下做一些研究后得到的所有知识.在本文中,我将解释如何使用EOSJS和scatter.我假设你对智能合约以及如何在EOS区块 ...

  4. 基于Java语言构建区块链(四)—— 交易(UTXO)

    基于Java语言构建区块链(四)-- 交易(UTXO) 2018年03月11日 00:48:01 wangwei_hz 阅读数:909 标签: 区块链比特币 更多 个人分类: 区块链 文章的主要思想和 ...

  5. 基于Java语言构建区块链(六)—— 交易(Merkle Tree)

    基于Java语言构建区块链(六)-- 交易(Merkle Tree) 2018年04月16日 10:21:35 wangwei_hz 阅读数:480更多 个人分类: 区块链比特币bitcoin 最终内 ...

  6. 七、区块链如何运用merkle tree验证交易真实性

    转载自:https://www.tangshuang.net/4117.html 本文假设你已经知道区块链中merkle tree的原理,现在搞明白具体怎么来实现交易真实性验证. Merkle Tre ...

  7. 区块链JAVA数字交易所官方商业版开发级全套三端纯源码

    介绍: 区块链JAVA数字交易所官方商业版开发级全套三端纯源码 网盘下载地址: http://kekewangLuo.net/fsQqJmSy7st0 图片:

  8. layui如何获取父节点的父节点_区块链如何运用merkle tree验证交易真实性

    大部分材料都会提到区块中保存了merkle根,并且利用它作交易真实性验证.但是具体如何作这个真实性验证,没有一篇文章可以通俗的讲出来.本文假设你已经知道区块链中merkle tree的原理,现在想搞明 ...

  9. 《如何开发区块链底层平台》-- 同济创业谷PPIO CodeTalks区块链技术分享会

    摘要:2019年11月26日,同济创业谷与 PPIO CodeTalks 联合举办了<创新X - 区块链与创新创业>区块链技术分享会. 在本次分享会中,我们有幸邀请到了四位重量级嘉宾来做主 ...

最新文章

  1. javascript之namespace模式
  2. 用类模拟C风格的赋值+返回值
  3. git配置服务器版仓库
  4. python中函数重载和重写
  5. 音视频技术开发周刊 | 151
  6. draw graph using gnuplot
  7. python入门——P36类和对象:给大家介绍对象
  8. 程序员的遗憾:忽视数学必定后悔!
  9. 请详细描述LVS DR模式的原理
  10. 分布式事务解决方案之最大努力通知
  11. oracle mysql认证考试流程_oraclemysql认证的考试流程有哪些
  12. qq发送文件时显示服务器拒绝,qq给对方发文件为什么服务器拒绝接收 - 卡饭网...
  13. 解决ROS工作空间每次使用都要source的问题
  14. 个人永久性免费-Excel催化剂功能第98波-零代码零距离轻松接触并拥有金融大数据...
  15. HDU 3496 Watch The Movie(看电影)
  16. 华为硬件工程师手册_华为,英飞凌,中兴硬件工程师面试题
  17. 神经网络训练会释放60多万磅二氧化碳?MIT的方法让它降到1/1300
  18. QTextEdit设置可输入字符字节限制
  19. 团队建设:一个团队从无到有再到高效的管理方式
  20. 人体红外传感器简明教程

热门文章

  1. 华三模拟器:路由备份路由聚合
  2. Python网络爬虫实例(爬一些小网站的图片)
  3. 数据分析复盘报告,用Excel轻松搞掂!
  4. 还在用PDF做简历?落后了!
  5. win10 无法拨号上网720错误
  6. 录入年、月、日,判断日期的合法性
  7. 为企业数字人才建粮仓:专访极客邦科技双数研究院院长付晓岩
  8. 如何训练一个通用人工智能
  9. 在matlab中数据波动指标,阶跃响应指标的matlab计算
  10. Mark loves cat