ABI在區(qū)塊鏈中的使用

ABI,application binary interface,如名字所示,是程序被編譯為binary code后二進制程序的接口,是二進制格式的程序之間通信方式,是low level的,與機器硬件緊密相關的。與此對應的是我們熟悉的API,是high level的,硬件無關的。當API更新時,程序員需要更新代碼以符合新的API比如更新參數(shù)個數(shù)。而ABI更新則需要編譯器重新編譯代碼。
ABI是一個json格式的文件,可以很好的編碼和解碼。
區(qū)塊鏈項目使用ABI,因為在區(qū)塊鏈里保存的合約都是二進制格式的,虛擬機執(zhí)行這些二進制程序,要有一種合適的方式傳遞調(diào)用所需要的合約名,函數(shù)名,函數(shù)參數(shù),通過對ABI里json格式解析就可以得出調(diào)用哪個合約哪個function和用哪些參數(shù)。
ABI json格式的定義和解析,在不同操作系統(tǒng)有不同定義(linux用的ELF,windows用的PE),在區(qū)塊鏈中也是如此,以太坊和EOS生成的ABI格式就不同,里面包含的tag名稱和數(shù)量也不同。所以跟操作系統(tǒng)類似,不同區(qū)塊鏈的生成的合約不兼容。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 原文:Smart contracts 正如我們在[intro]中看到的那樣,以太坊中有兩種不同類型的帳戶:外部擁有...
    Jisen閱讀 4,996評論 1 7
  • 作者 | John Baker譯者 | Guoxi 話說,區(qū)塊鏈行業(yè)對人才的缺口越來越大,但由于區(qū)塊鏈涉及的知識領...
    筆名輝哥閱讀 2,156評論 0 51
  • 1 EOS智能合約的介紹1.1 所需背景知識1.2 EOS智能合約基礎知識1.3 技術局限性 2 智能合約文件2....
    cenkai88閱讀 30,559評論 5 28
  • 1. 賬戶與錢包1.1 創(chuàng)造并管理錢包1.2 生成EOS Keys并導入1.3 備份您的錢包1.4 創(chuàng)建賬戶 2....
    cenkai88閱讀 3,987評論 1 7
  • 10月29號,我們一家從深圳搬到東莞。 10月31號在華達電子商務培訓報到。 11月中旬我有種特...
    長得漂亮不如活得漂亮閱讀 281評論 0 0