Eos上的Eos原生代幣不見了

在之前的代碼中,發(fā)送Eos代碼是通過下面的函數(shù)進行的:

libraries/native_contract/eos_contract.cpp
void apply_eos_transfer(apply_context& context) {
   auto transfer = context.msg.as<types::transfer>();

   try {
      EOS_ASSERT(transfer.amount > 0, message_validate_exception, "Must transfer a positive amount");
      context.require_scope(transfer.to);
      context.require_scope(transfer.from);

      context.require_authorization(transfer.from);

      context.require_recipient(transfer.to);
      context.require_recipient(transfer.from);
   } FC_CAPTURE_AND_RETHROW((transfer))


   try {
      auto& db = context.mutable_db;
      const auto& from = db.get<balance_object, by_owner_name>(transfer.from);

      EOS_ASSERT(from.balance >= transfer.amount, message_precondition_exception, "Insufficient Funds",
                 ("from.balance",from.balance)("transfer.amount",transfer.amount));

      const auto& to = db.get<balance_object, by_owner_name>(transfer.to);
      db.modify(from, [&](balance_object& a) {
         a.balance -= share_type(transfer.amount);
      });
      db.modify(to, [&](balance_object& a) {
         a.balance += share_type(transfer.amount);
      });
   } FC_CAPTURE_AND_RETHROW( (transfer) ) 
}

新的代碼中,native contract的實現(xiàn)已經(jīng)移到下面這個文件
libraries/chain/contracts/eosio_contract.cpp
查看這個文件時,會發(fā)現(xiàn)apply_eos_transfer函數(shù)已經(jīng)不見了。也就意味著,在native代碼中,已經(jīng)沒有創(chuàng)建一個叫Eos的代幣了,也就是沒有所謂的native token了。這和以太坊已經(jīng)不同了,以太坊上還是會創(chuàng)建一個叫Eth的原生代幣的,代幣的傳輸都是在區(qū)塊鏈代碼里實現(xiàn),而不是智能合約代碼里實現(xiàn)。那么Eos鏈上的代幣在什么地方呢?答案是通過智能合約來發(fā)行一個叫Eos的代幣。在libraries/contracts/currency目錄下已經(jīng)有相關的實現(xiàn)了。區(qū)塊鏈的魔力之處是一切都基于共識,只要大家都認,它就是。完全不需要通過某個權威的組織或者個人去背書。區(qū)塊鏈上信心比什么都重要,而人性難測,再加上目前區(qū)塊鏈的體量還很小,這也是造成區(qū)塊鏈的市值波動會很劇烈的原因吧。

開發(fā)Eos的公司block.one已經(jīng)明確表示只負責開發(fā)軟件了,其它的一切都交給社區(qū)。在鏈上線后,block.one再認定哪條鏈才是“真正”的Eos鏈并會對其進行維護。美國的法律還是相當嚴格的,這樣block.one也就規(guī)避了違法發(fā)行證券的風險,block.one的CEO還是很明智的。

所以到時,一定會有組織或者個人在名為eosio的帳戶上通過智能合約發(fā)布一個叫EOS的代幣。從實現(xiàn)方式上來講,這個Eos已經(jīng)和其它代幣沒有差別了。用戶也不會在乎其中的技術實現(xiàn)的區(qū)別。之所以采用這種方式,原因可能是為了減少代碼的復雜度。既然這個Eos和其它代幣已經(jīng)沒有了區(qū)別,那么操作上就可以統(tǒng)一起來。這對于例如實現(xiàn)去中心化的交易所來說,可以減少一些工作量。另外,由于Eos的DPOS還是有挖礦的,每年增發(fā)5%。所以挖礦的收益發(fā)放的實現(xiàn)肯定也會有所區(qū)別了,這需要通過智能合約來配合實現(xiàn)。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,511評論 19 139
  • importUIKit classViewController:UIViewController{ varpage...
    冰凡513閱讀 317評論 0 0
  • 孩子的許多問題在于家長沒有及時做好,孩子缺乏自信心,缺乏能力,習慣不好,家長的責任逃不掉,今天的學習讓我們明白正能...
    lid7520閱讀 438評論 0 0
  • 每個人,都有自己的了不起,你的優(yōu)秀,不需要任何人來證明。 做一個平靜,善良的人, 做一個微笑掛在嘴邊,快樂放在心上...
    大紅小綠閱讀 406評論 0 0

友情鏈接更多精彩內(nèi)容