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ū)塊鏈的生成的合約不兼容。
ABI在區(qū)塊鏈中的使用
最后編輯于 :
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內(nèi)容
- 作者 | John Baker譯者 | Guoxi 話說,區(qū)塊鏈行業(yè)對人才的缺口越來越大,但由于區(qū)塊鏈涉及的知識領...