ABI在区块链中的使用

ABI,application binary interface,如名字所示,是程序被编译为binary code后二进制程序的接口,是二进制格式的程序之间通信方式,是low level的,与机器硬件紧密相关的。与此对应的是我们熟悉的API,是high level的,硬件无关的。当API更新时,程序员需要更新代码以符合新的API比如更新参数个数。而ABI更新则需要编译器重新编译代码。
ABI是一个json格式的文件,可以很好的编码和解码。
区块链项目使用ABI,因为在区块链里保存的合约都是二进制格式的,虚拟机执行这些二进制程序,要有一种合适的方式传递调用所需要的合约名,函数名,函数参数,通过对ABI里json格式解析就可以得出调用哪个合约哪个function和用哪些参数。
ABI json格式的定义和解析,在不同操作系统有不同定义(linux用的ELF,windows用的PE),在区块链中也是如此,以太坊和EOS生成的ABI格式就不同,里面包含的tag名称和数量也不同。所以跟操作系统类似,不同区块链的生成的合约不兼容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文:Smart contracts 正如我们在[intro]中看到的那样,以太坊中有两种不同类型的帐户:外部拥有...
    Jisen阅读 10,424评论 1 7
  • 作者 | John Baker译者 | Guoxi 话说,区块链行业对人才的缺口越来越大,但由于区块链涉及的知识领...
    笔名辉哥阅读 6,549评论 0 51
  • 1 EOS智能合约的介绍1.1 所需背景知识1.2 EOS智能合约基础知识1.3 技术局限性 2 智能合约文件2....
    cenkai88阅读 30,654评论 5 28
  • 1. 账户与钱包1.1 创造并管理钱包1.2 生成EOS Keys并导入1.3 备份您的钱包1.4 创建账户 2....
    cenkai88阅读 9,427评论 1 7
  • 10月29号,我们一家从深圳搬到东莞。 10月31号在华达电子商务培训报到。 11月中旬我有种特...
    长得漂亮不如活得漂亮阅读 2,047评论 0 0