中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++智能合約怎么實現

發布時間:2022-01-15 14:30:28 來源:億速云 閱讀:312 作者:iii 欄目:互聯網科技

這篇文章主要介紹“C++智能合約怎么實現”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“C++智能合約怎么實現”文章能幫助大家解決問題。

Ricardian Contracts是數字文檔,用于定義兩方或多方之間交互的條款和條件。

在20世紀90年代,伊恩·格里格(Ian Grigg)在尋找創造數字化現金的愿景的朋友之后學會了資產的數字化。Ian Grigg發現債券數字化的必要性,并試圖在互聯網上發行相同的債券,因為它們也是金融資產,而世界正在開始通過互聯網創建業務。在努力解決問題的過程中,Ian Grigg開發了李嘉圖合約。

###李嘉圖合約與我們今天的智能合約有什么不同?

智能合約是機器可讀的指令集,而李嘉圖合約是指明智能合約所遵循的指令意圖的文件。

智能合約看起來像這樣:

 `#include <eosiolib/eosio.hpp>

class 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<N(accounts), account> _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.

李嘉圖合約前面的部分看起來像普通的軟件合同。

C++智能合約怎么實現

使用刻度線指定條件,使用單擊按鈕同意指定的條件和整個合約。

他們安全嗎?

是的,由于加密簽名,李嘉圖合約極其安全。每個李嘉圖合約文檔都可通過其哈希值進行唯一標識。編輯文檔很困難,一旦所有各方同意并使用私鑰在其上簽名,它就變得不可變。

它如何與智能合約一起使用?

我在iang.org上發現了一個不言自明的形象:

C++智能合約怎么實現

請記住:李嘉圖合約首先是人類可讀的,然后是機器可讀的合約。

李嘉圖合約的視覺表征:

C++智能合約怎么實現

開放市集合約模式的視覺表征:

C++智能合約怎么實現

誰在網絡上強制執行?

EOS網絡上的憲法和仲裁員!

我希望它能幫助你更好地理解李嘉圖合同。謝謝你的閱讀。

為什么世界需要EOS合約?

@iang在他的一篇文章中對此進行了很好的解釋。假設我們有一份合約轉讓某些token以換取100美元。

這是智能合約:

{Alice,Bob,100,dollarsvalue,token}

dollar可能是新加坡元還是港元,計算機如何知道指定的dollar是美元以及閱讀合約的人如何知道上述dollar是美元?

為了明確智能合約的意圖,需要一份詳細的李嘉圖合約。與EOS網絡一樣,利益相關者同意憲法,如果他們對其他人采取行動,他們有可能通過仲裁程序。李嘉圖合約有助于仲裁員和成員接受合約意圖的審判。記住:不是每個人都是技術人員。

關于“C++智能合約怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

恩施市| 澄迈县| 安平县| 红桥区| 武穴市| 阿荣旗| 延庆县| 镇原县| 小金县| 固镇县| 隆子县| 佛冈县| 屯留县| 合山市| 当涂县| 米易县| 行唐县| 尤溪县| 桃江县| 昭苏县| 马公市| 定远县| 铅山县| 浠水县| 商河县| 宜黄县| 磐安县| 进贤县| 夏邑县| 长乐市| 灵丘县| 额敏县| 双牌县| 石台县| 呼伦贝尔市| 临猗县| 铜川市| 姜堰市| 策勒县| 醴陵市| 泾阳县|