Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >维基链智能合约APIbug定位修复

维基链智能合约APIbug定位修复

原创
作者头像
维基链WICC
修改于 2019-03-04 06:41:36
修改于 2019-03-04 06:41:36
5110
举报

一、关于维基链WICC

1、自行查看相关资料

(1)官方网站 (2)Github (2)开发者中心

二、维基链提供智能合约Dapp开发

从源码可知WICC底层基于bitcoin,上层是运行Lua虚拟机,智能合约跟以太坊、EOS类似,特殊是由Lua开发

三、开发过程遇到的问题

1、由开发者接口文档可知其智能合约API是由底层mylib库提供合约与链数据的交互

2、mylib库GetTxConfirmHeight接口函数调用失败

(1)GetTxConfirmHeight接口说明

(2)由文档可知其功能是通过hash查询其上链时的区块高度

以某合约交易hash值cfad02ea148ca0a763baaf67735c010023bb75c88509f6a94e87921a54182f02 为例,可在维基链测试网区块浏览器查询到结果如下图,确认高度为639083

(3) 问题分析过程

· 测试代码如下

· 结果打印输出结果一直如下,即取不到hash被确认的高度

(4)查看底层接口代码

c++功底还不够深,看不出啥问题

(5)换个思路:有没有其他入参也是hash的接口调用是正常的?对比一下代码

功夫不负有心人,GetTxContracts接口也是入参为hash,写测试代码发现此接口是正常的,同样的入参,一个正常一个异常,对比一下函数实现

(6)对比发现亮点

由以下图片可见,ExGetTxConfirmHeightFunc 函数取入参hash直接进行操作,ExGetTxContractsFunc函数对入参hash进行倒序后再操作,加打印信息调试确实两者的hash有倒序的区别

(7)解决方法:在操作之前对hash进行倒序

(8)同样的代码测试通过

confirm_height= 639083.0

注意:链上虚拟机版本问题,输出的高度值为Number类型 :123456.0,开发者使用此值的时候需要注意

3、同样的问题出现在mylib库GetBlockHash接口函数中

取到的hash值为被倒序了,解决方法同上

4、修改之后引入的问题

由于区块链的特性是去中心化的,WICC共识机制为DPOS,目前为11个超级节点随机轮流记账出块,本地节点通过以上修改之后合约可以正常获得数据,但是由于超级节点没有同步更新 所以如果只修改本地节点,调用修复后的接口后,区块同步会停止 原因未找到,有进展后续会更新…

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
维基链私有链搭建方法
(3) 运行 sh bin/run-waykicoind-pri.sh启动Docker 节点
维基链WICC
2019/03/04
8220
维基链私有链搭建方法
维基链开发者社区问答Q&A
Q2: 区块链在应用的时候是有固定流程的吗?比如从数据层到网络层,共识层,激励层,合约层,最后是应用层?
维基链WICC
2018/12/22
6630
维基链开发者社区问答Q&A
维基链WICC | WaykiBridge,实现多端无缝体验维基链DApp
随着智能手机的普及,移动互联网已深入生活的方方面面。用户也更习惯直接通过手机来使用各种应用程序,包括DApp。手机钱包作为区块链世界的“支付宝”,担负着保存私钥的重要作用,用它来连接DApp服务端和终端用户,成为了很自然的选择。
维基链WICC
2019/05/17
6510
维基链WICC | WaykiBridge,实现多端无缝体验维基链DApp
蚂蚁区块链第10课 可信计算分类以及TEE硬件隐私合约链智能合约开发实践
本文介绍可信计算分类INTEL SGX技术和ARM TRUSTZONE技术技术方案概要,以及应用INTEL SGX技术的蚂蚁区块链TEE硬件隐私链的智能合约开发实践。
辉哥
2019/04/17
3.9K0
蚂蚁区块链第10课  可信计算分类以及TEE硬件隐私合约链智能合约开发实践
如何应对区块链黑客?维基链CTO来支招
近期,Fomo3D 第二轮最终大奖开出。安比(SECBIT)实验室分析发现,此轮游戏获奖技巧与第一轮如出一辙,均为黑客发起“阻塞交易”攻击,让自己成为最终得奖者。
维基链WICC
2018/12/04
7950
如何应对区块链黑客?维基链CTO来支招
维基链WICC | 项目进展周报第29期(4.8~4.14)
微信图片_20190416095728.jpg 技术&产品周报 应用建设 维基时代 v1.2.1上线: ①“发现”版块上线4款应用:一键发布数字资产,维基幸运数,fishchain, tokenwin。 ②上线“活动天地”板块,用户可以针对维基链官方话题进行讨论,并发帖,进一步优化了论坛功能。 T2D2建设 WaykiMax(Web钱包插件): ①增加代币功能,开发进度100%。 ②优化用户账号信息接口,提升用户体验。(100%) ③离线签名接口开发,包括发布合约接口、调用合约接口、普通转账、节点投票
维基链WICC
2019/04/16
6460
维基链WICC | 项目进展周报第29期(4.8~4.14)
维基链力推T2D2计划 加速社区生态建设
陈晓东:T2D2计划,也就是培训培训者(train the trainers)和开发开发者(develop the developers)的计划。维基链提出这个计划就是为了建设开发者社区,实现维基链大平台大生态的宏伟目标而制定的一个必要步骤。以维基链底层公链为核心技术的大平台和大生态的建设,必须有众多的开发者参与进来。基于区块链技术尚未被广大技术社区所掌握和维基链的公链技术也只是一小部分技术人员所拥有的现况,维基链推出T2D2计划就是为了培养出一大批合格的和优秀的开发者,能够充分掌握区块链和维基链的各项知识和技能。维基链社区开发者们可以一起参与维基链公链的进一步优化,也可以打造各种去中心化(decentralized)的和通证化(tokenized)的DApp应用和服务。
维基链WICC
2018/12/14
5780
维基链力推T2D2计划 加速社区生态建设
联盟链智能合约安全浅析
随着区块链技术的发展,越来越多的个人及企业也开始关注区块链,而和区块链联系最为紧密的,恐怕就是金融行业了。然而虽然比特币区块链大受热捧,但毕竟比特币区块链是属于公有区块链,公有区块链有着其不可编辑,不可篡改的特点,这就使得公有链并不适合企业使用,毕竟如果某金融企业开发出一个区块链,无法受其主观控制,那对于它的意义就不大。因此私有链就应运而生,但私有链虽然能够解决以上的问题,如果仅仅只是各个企业自己单独建立,那么还将是一个个孤岛。如果能够联合起来开发私有区块链,最好不过,联盟链应运而生。
Seebug漏洞平台
2020/08/31
2.2K0
联盟链智能合约安全浅析
基于Fisco-Bcos的区块链智能合约-简单案例实践
智能合约是指把合同/协议条款以代码的形式电子化地放到区块链网络上。FISCO BCOS平台支持两种智能合约类型:Solidity智能合约与预编译智能合约
huofo
2022/03/18
3K0
基于Fisco-Bcos的区块链智能合约-简单案例实践
ECOL生态令使区块链 3.0 时代提前,以太坊的弊病将会解决?
近几年来,无论是区块链爱好者还是加密数字货币的投机者,耳闻目睹了有关比特币隔离见证、扩容提速、软硬分叉、旷日持久、永无休止的争论,深切感受到了同步困难、网络拥堵、费用高昂、应用单一的区块链技术这些行业的瓶颈和痛点,其深层次原因是区块链架构先天不足导致的。去中心化的分布式账本之间的信息与价值自由流通性太差,底层数据结构系统之间的通道未被打通,无法形成不同账本之间的信息与价值流转;区块链行业底层一直非常多,公有链、私有链、联盟链。多链并存但多链并不互通,在底层数据结构上流通性,一直十分欠缺,一个标准化、智能化、互通性、兼容性、高效性的区块单元,成为区块链世界的基础协议并成为构建区块链世界的基石,就十分迫切需要。
区块链解说员
2018/08/02
5090
ECOL生态令使区块链 3.0 时代提前,以太坊的弊病将会解决?
【云+社区年度征文】云链结合,区块链服务BaaS平台实践与应用
| 导语 区块链与云计算结合,应运而生的BaaS服务是目前非常重要的发展趋势,现在的BaaS服务就像十年前的云服务一样,处于初期发展阶段,随着区块链行业标准逐步形成,优势应用正在逐步浮出水面。对于大多数关注应用开发的企业来说,无需深入了解区块链底层技术、也无需在底层技术上投入太多资源去“重复造轮子”,采用BaaS服务,并在其之上搭建业务应用是企业的理想选择。腾讯云区块链服务平台TBaaS,于2017年正式推出并实现商业化,发展至今已落地众多应用案例,获得业界多项专业认证与奖项。
Nancy WU
2020/12/15
3K0
【云+社区年度征文】云链结合,区块链服务BaaS平台实践与应用
蚂蚁区块链第5课 如何配置Cloud IDE证书并进行Solidity智能合约调试?
本文假设读者已按照前面课程完成了标准合约链或者TEE隐私合约链的部署。本文主要讲解蚂蚁区块链的智能合约编译环境的使用。包括以下内容: (1)蚂蚁区块链Cloud IDE 说明 (2)配置Cloud IDE证书 (3)Solidity智能合约编译/部署/运行
辉哥
2019/04/01
1.3K0
蚂蚁区块链第5课 如何配置Cloud IDE证书并进行Solidity智能合约调试?
Solidity 智能合约开发 - 基础
去年读研的时候上的 HKU 的 <COMP7408 Distributed Ledger and Blockchain Technology>,课程中学习了以太坊智能合约的开发,做了一个简单的图书管理 ÐApp,然后毕业设计也选择了基于 Ethereum 做了一个音乐版权应用,详见 Uright - 区块链音乐版权管理ÐApp,对 Solidity 开发有一些基础了解。
pseudoyu
2023/04/11
7780
Solidity 智能合约开发 - 基础
蚂蚁区块链第6课 TEE硬件隐私合约链(含标准合约链)的框架和功能概述
本文介绍蚂蚁区块链的TEE硬件隐私合约链和标准合约链的框架和功能介绍,说明开发流程。 TEE 硬件隐私合约链是在标准合约链功能基础上采用TEE硬件叠加隐私保护相关功能。
辉哥
2019/04/01
3K0
蚂蚁区块链第6课 TEE硬件隐私合约链(含标准合约链)的框架和功能概述
乐鸥文旅链全国路演已跨越5大省市,下一站会去你的家乡吗?
2018年下半年,乐鸥在线文旅为搭建乐鸥生态圈,将区块链旅游普及至大众,开启了“乐鸥文旅链CTC全球路演”活动,融合主题演讲、互动研讨、案例分享等多种形式,为全球区块链创业投资者,旅游业界人士以及普通公众带来一场场“大师智慧+实践干货”的区块链旅游盛宴。
区块链先锋
2018/07/14
6540
乐鸥文旅链全国路演已跨越5大省市,下一站会去你的家乡吗?
区块链智能合约的开发
区块链智能合约的开发是指使用特定的编程语言在区块链平台上创建、测试和部署自动执行的协议。这些合约在满足预设条件时自动执行,无需人工干预,从而实现了去中心化、透明和无需信任的交易和应用。以下是区块链智能合约开发的主要方面。
数字孪生开发者
2025/04/10
980
区块链智能合约的开发
海豚扒问离子链开发者:完美融合图灵完备智能合约和POS共识机制
冯翔:研发总监,超过5年的区块链底层架构设计与研发经验,区块链专业技术论坛区块链兄弟(Blockchain Brother)的核心发起人,Hyperledger项目核心开发人员、Hyperledger Explorer开源项目发起人,机械工业出版社《区块链开发实战》系列丛书第一作者。
海豚区块链
2018/06/13
1K0
海豚扒问离子链开发者:完美融合图灵完备智能合约和POS共识机制
浅谈BSC链智能合约DAPP系统开发功能逻辑
区块链相关名词解释 2)区块(Block):在区块链网络中,数假会以多条文件的形式进行打包放在一起,类似于将这些文件放入一个盒子里,故也称为数假区块。
开发weixin-XTKF556
2022/09/28
4480
Python在区块链开发与智能合约编写中的实战应用
区块链技术正逐渐成为各行各业的焦点,而Python作为一种灵活且强大的编程语言,被广泛应用于区块链开发和智能合约编写。本文将介绍如何利用Python进行区块链开发以及智能合约的编写,并提供代码实例来帮助读者更好地理解这些概念。
一键难忘
2024/08/14
2980
本体技术视点 | 智能合约安全与漏洞分析(一)
智能合约安全问题一直是区块链技术体系中探讨得比较多的话题之一。无论是以以太坊 EVM 虚拟机为代表的智能合约体系,还是以 EOS WASM 虚拟机为代表的智能合约体系,都或多或少地暴露过不同类型的智能合约漏洞。这些漏洞不仅使得项目方和用户损失惨重,而且也让用户对区块链的安全性产生了质疑。
本体Ontology
2019/12/05
7780
本体技术视点 | 智能合约安全与漏洞分析(一)
推荐阅读
相关推荐
维基链私有链搭建方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档