在EOS资源分配的核心思想中,EOS的数量代表系统资源的使用权。EOS用户需要购买EOS,并将其抵押给EOS的系统账户,用以获取网络带宽资源和CPU计算资源的使用权。一个EOS账号创建的时候可以通过购买和抵押来获取资源,费用由主账号支付。如果创建账号时并未购买资源,则需要通过其他账号购买或者进行抵押,因为购买和抵押本身就是一种交易行为需要消耗资源。
EOS系统中有3类重要的资源:
1、 NET(网络带宽资源)
2、 CPU
3、 RAM
网络带宽资源
1、带宽资源
用户发送一笔交易信息后,区块生产者需要将交易打包生成区块,然后将区块通过网络同步给其它生产者,这个过程需要消耗一定网络带宽资源。而带宽资源的计量方式为交易信息在区块中所占的字节数。网络带宽以过去3天的平均消耗量为单位进行测量,单位是字节如KB。每次发送操作或事务时都会暂时消耗网络带宽,随着时间的推移会减少到0。
2、获取带宽资源的方式有两种
1)如果用户账户持有EOS,那么可以直接将 EOS抵押到EOS系统账户,然后,系统会根据抵押EOS所占全网EOS的比例,分配给用户对应的带宽资源。比如当前总共有10万个EOS抵押用于获得NET的使用权,而你自己的就抵押了1万个EOS在NET资源上,那么你能够使用全网所有带宽资源的10%。同时,用户可以取消抵押,将带宽资源转换为等量的EOS。这种带宽获取方式本身不会消耗EOS,但是,已经抵押的EOS不能够继续抵押或者出售,抵押锁定期至少3天。
2)如果用户账户没有token,可以从其它用户手中租赁带宽资源。
CPU计算资源
当用户调用智能合约时,区块生产者需要根据智能合约地址查找合约代码,然后将代码加载到内存中执行,这个过程需要消耗一定的CPU算力。CPU计算资源的计量方式为,运行智能合约(交易也属于智能合约的一种)所消耗的时间,用户每次调用智能合约都会消耗一点计算资源,如果消耗为0则无法继续执行合约。 获取计算资源的方式也是通过抵押EOS或者向其它用户购买。解除抵押之后,token也需要至少锁定3天。
RAM资源
1、什么是RAM资源
此处的RAM并不对等于计算机科学中的RAM,它在EOS软件平台上对应的就是内存数据库资源,除了CPU和带宽之外,需要使用到的其他资源就是RAM,是DApp开发时必须的资源。
2、如何获取RAM资源
RAM资源也是通过抵押EOS获取的,但是和网络带宽资源不同的是,抵押或者解除抵押需要收取0.5%的手续费,并且获得RAM不能出租给其他人,只能给自己使用。
在计费方式上,RAM是使用了Bancor算法,简单来说,就是根据当前的EOS的总量,跟可用RAM的总量,来计算出来RAM的“价格”,当RAM剩余量很少的时候,价格就会飙升。
购买RAM的流程为,从receiver账户扣除0.5%的交易手续费,然后,根据当前RAM的价格,将EOS兑换成RAM,接着更新receiver账户的RAM数量,不过,RAM的买卖,实质是发生在用户账户和系统账户之间的交易行为,而不是直接的市场交易行为
三者区别
1、RAM是自由市场买卖模式,由市场价格来决定。CPU、NET是抵押模式,抵押多少回收多少。
2、RAM是随时可以交易,但CPU、NET有三天等待期。
3、CPU和NET可用于出租给其他账户,取消抵押后,EOS可以回到自己的账户。RAM可帮助其他账户购买,但卖出时的EOS归其他账户所有。