大家好,这里是链客区块链技术问答社区。
链客,转为开发者而生,有问必答!
智能合约是在EOSIO节点上工作的软件,它的耐久化数据存储在节点的RAM中,动作事情存储在区块链上并同步。EOS智能合约公开可实行的“操作”,这些“操作”是实行特定于合约操作的函数,受调用该操作的帐户的束缚和权限的限制。考虑到这一点,我们可以将合约看作三个方面一起作业的组合。
首要,我们有指定操作逻辑的函数定义。其次,我们有多索引表,它为我们供应了与耐久存储(RAM)联接的接口。第三,我们有“dispatcher”,它充当操作处理程序,并将传入的恳求映射到正在恳求的操作。这三个组成部分是每一份合同的底子“骨架”。
每个合约都定义为承继eosio::contract类的类。可以将定义合约情况的各种变量指定为类的私有成员。这些类的成员可以指定为“Actions”。EOSIO供应了EOSIO-cpp用于生成web程序集字节码和ABI的各种特色。EOS上的智能合约可以处理来自其他合约的通知,甚至可以调用其他合约的操作,前提是它们取得了必要的权限(eosio)。代码许可)。
每当我们调用合约上的操作时,都会创立一个新的合约实例,该操作在实行时被销毁。因此,标明合约情况的任何信息有必要在合约启动时(在结构函数中)加载,并在销毁之前或销毁期间(在析构函数中或在调用的操作体中)保存。有必要留心的是,一个情况只能关联一个智能合约。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。