Eos上的Eos原生代币不见了

在之前的代码中,发送Eos代码是通过下面的函数进行的:

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的实现已经移到下面这个文件
libraries/chain/contracts/eosio_contract.cpp
查看这个文件时,会发现apply_eos_transfer函数已经不见了。也就意味着,在native代码中,已经没有创建一个叫Eos的代币了,也就是没有所谓的native token了。这和以太坊已经不同了,以太坊上还是会创建一个叫Eth的原生代币的,代币的传输都是在区块链代码里实现,而不是智能合约代码里实现。那么Eos链上的代币在什么地方呢?答案是通过智能合约来发行一个叫Eos的代币。在libraries/contracts/currency目录下已经有相关的实现了。区块链的魔力之处是一切都基于共识,只要大家都认,它就是。完全不需要通过某个权威的组织或者个人去背书。区块链上信心比什么都重要,而人性难测,再加上目前区块链的体量还很小,这也是造成区块链的市值波动会很剧烈的原因吧。

开发Eos的公司block.one已经明确表示只负责开发软件了,其它的一切都交给社区。在链上线后,block.one再认定哪条链才是“真正”的Eos链并会对其进行维护。美国的法律还是相当严格的,这样block.one也就规避了违法发行证券的风险,block.one的CEO还是很明智的。

所以到时,一定会有组织或者个人在名为eosio的帐户上通过智能合约发布一个叫EOS的代币。从实现方式上来讲,这个Eos已经和其它代币没有差别了。用户也不会在乎其中的技术实现的区别。之所以采用这种方式,原因可能是为了减少代码的复杂度。既然这个Eos和其它代币已经没有了区别,那么操作上就可以统一起来。这对于例如实现去中心化的交易所来说,可以减少一些工作量。另外,由于Eos的DPOS还是有挖矿的,每年增发5%。所以挖矿的收益发放的实现肯定也会有所区别了,这需要通过智能合约来配合实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,477评论 19 139
  • importUIKit classViewController:UIViewController{ varpage...
    冰凡513阅读 2,144评论 0 0
  • 孩子的许多问题在于家长没有及时做好,孩子缺乏自信心,缺乏能力,习惯不好,家长的责任逃不掉,今天的学习让我们明白正能...
    lid7520阅读 2,994评论 0 0
  • 每个人,都有自己的了不起,你的优秀,不需要任何人来证明。 做一个平静,善良的人, 做一个微笑挂在嘴边,快乐放在心上...
    大红小绿阅读 2,839评论 0 0