十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍“C++智能合约怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++智能合约怎么实现”文章能帮助大家解决问题。
创新互联从2013年创立,是专业互联网技术服务公司,拥有项目做网站、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元环县做网站,已为上家服务,为环县各地企业和个人服务,联系电话:13518219792
Ricardian Contracts是数字文档,用于定义两方或多方之间交互的条款和条件。
在20世纪90年代,伊恩·格里格(Ian Grigg)在寻找创造数字化现金的愿景的朋友之后学会了资产的数字化。Ian Grigg发现债券数字化的必要性,并试图在互联网上发行相同的债券,因为它们也是金融资产,而世界正在开始通过互联网创建业务。在努力解决问题的过程中,Ian Grigg开发了李嘉图合约。
###李嘉图合约与我们今天的智能合约有什么不同?
智能合约是机器可读的指令集,而李嘉图合约是指明智能合约所遵循的指令意图的文件。
智能合约看起来像这样:
`#includeclass simpletoken : public eosio::contract { public: simpletoken( account_name self ) :contract(self),_accounts( _self, _self){} void transfer( account_name from, account_name to, uint64_t quantity ) { require_auth( from ); const auto& fromacnt = _accounts.get( from ); eosio_assert( fromacnt.balance >= quantity, "overdrawn balance" ); _accounts.modify( fromacnt, from, [&]( auto& a ){ a.balance -= quantity; } ); add_balance( from, to, quantity ); } void issue( account_name to, uint64_t quantity ) { require_auth( _self ); add_balance( _self, to, quantity ); } private: struct account { account_name owner; uint64_t balance; uint64_t primary_key()const { return owner; } }; eosio::multi_index _accounts; void add_balance( account_name payer, account_name to, uint64_t q ) { auto toitr = _accounts.find( to ); if( toitr == _accounts.end() ) { _accounts.emplace( payer, [&]( auto& a ) { a.owner = to; a.balance = q; }); } else { _accounts.modify( toitr, 0, [&]( auto& a ) { a.balance += q; eosio_assert( a.balance >= q, "overflow detected" ); }); } } }; EOSIO_ABI(simpletoken, (transfer)(issue) )`
上面的示例显示了为发布新token而设计的C++智能合约。
虽然李嘉图合约看起来像这样:
TOKENNAME = XYZ INFLATION = 5% INITIALISSUE = 1,000,000,000 The Community hereby creates a currency known as {{TOKENNAME}}, possession of which is evidence of a contribution to the community. The quantity of {{TOKENNAME}} shall increase no more than INFLATION per year after the first {{INITIALISSUE}} of {{TOKENNAME}} are distributed.
李嘉图合约前面的部分看起来像普通的软件合同。
使用刻度线指定条件,使用单击按钮同意指定的条件和整个合约。
是的,由于加密签名,李嘉图合约极其安全。每个李嘉图合约文档都可通过其哈希值进行唯一标识。编辑文档很困难,一旦所有各方同意并使用私钥在其上签名,它就变得不可变。
我在iang.org上发现了一个不言自明的形象:
请记住:李嘉图合约首先是人类可读的,然后是机器可读的合约。
李嘉图合约的视觉表征:
开放市集合约模式的视觉表征:
EOS网络上的宪法和仲裁员!
我希望它能帮助你更好地理解李嘉图合同。谢谢你的阅读。
@iang在他的一篇文章中对此进行了很好的解释。假设我们有一份合约转让某些token以换取100美元。
这是智能合约:
{Alice,Bob,100,dollarsvalue,token}
dollar可能是新加坡元还是港元,计算机如何知道指定的dollar是美元以及阅读合约的人如何知道上述dollar是美元?
为了明确智能合约的意图,需要一份详细的李嘉图合约。与EOS网络一样,利益相关者同意宪法,如果他们对其他人采取行动,他们有可能通过仲裁程序。李嘉图合约有助于仲裁员和成员接受合约意图的审判。记住:不是每个人都是技术人员。
关于“C++智能合约怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注创新互联行业资讯频道,小编每天都会为大家更新不同的知识点。