Render Network学习记录

最近经常看见 $RNDR (Render Network)的介绍,一个去中心化渲染网络。所以把 $RNDR 加入了Watch List。

今天看见币安上 $RNDR 涨了30%,本着学习的态度就去官网看了看Render Network的介绍,这里跟大家分享下。

同样本文不构成任何投资参考建议,各位认真读完后,自己可以去调研验证并得到自己的结论。

Render Network官网介绍

在RNDR的官网介绍中,首先介绍了当今虚拟世界的发展会非常迅速,对渲染(Render)的需求会越来越强烈。

这里简单解释一下渲染(Render)的作用。视频制作、3D建模、电影特效等制作,在各类编辑软件制作完成后,需要将编辑的内容进行渲染,得到最后的成品。这个渲染过程需要消耗大量的GPU算力,根据制作的精细复杂程度的不同,需要渲染的算力不一样。

如果是个人制作的视频基本上使用个人电脑就可以完成渲染,如果是4K高分辨率多路视频,可能需要用到GPU显卡工作站进行渲染。

如果是大型电影特效,如果使用工作站渲染的话需要花费大量时间,所以需要用到像渲染农场这类的服务,将自己制作好的工程文件提交渲染农场,这样可以在较短时间内得到制作成品。

Render Network的市场痛点分析

Render Network官网根据当前行业的情况总结出了四个痛点:

  • Network Scalability

    以当前的渲染方式去扩展GPU渲染能力十分困难,例如本地渲染、云渲染等,这些方式不能有效利用全世界的GPU算力,并且无法追踪渲染的任务。

  • Sleeping Network

    很多GPU设备,在未工作的时候属于空闲状态,实际上这部分空闲GPU算力可以被有效利用起来。比如某人有台强劲GPU算力的工作站,在不制作视频的时候实际上这是被浪费掉的算力。

  • A Better Use for GPU Power

    现在GPU算力大多被用来做POW运算,实际上是无意义且低效浪费的,应该被利用起来做渲染的事情。

  • Digital Rights Management

    没有一个统一的存储给艺术家储存他们的视频作品,且无法证明这些视频作品是他们创作的。通过Render Network创作者们可以方便存储并且访问他们的作品。

Render Network的解决方案

创作者们有渲染的需求,而一部分人也有闲置的GPU算力,所以Render Network的解决方案就是将渲染的需求和闲置的GPU算力连接起来,将闲置资源充分利用。

主要工作流程如下:

  1. 任何闲置GPU算力的设备可以将其注册到Render Network上,这个GPU设备就成为了Node Operator;
  2. 有渲染需求的用户,将需要渲染的文件发送到Render Network上,由Render Network将这个渲染任务分配给闲置算力的GPU设备(Node Operator);
  3. 同时有渲染需求的用户根据渲染任务的复杂程度,支付RNDR Token进行渲染;
  4. Render Network会分配渲染任务给Node Operator,当Node Operator渲染完该任务,并且将结果发送回Render Network后,会得到RNDR Token的奖励;
  5. 同时Render Network也会得到一小部分的RNDR Token收益,用于维护整个网络。

这里有一张Render Network官网的示意图:

看到这图的时候,我一直认为Render Network是一个全在以太坊上的去中心化协议,想研究一下Render Network是如何工作的,所以我接着Render Network的官网上查找资料,结果发现事实并不如此。其中Knowledge Base页面介绍了其是如何工作的。

How Render Network Works?

如何成为一个创作者

这个页面描述了如果你是一个有渲染需求的创作者,如何支付RNDR Token去让Render Network帮助你完成渲染工作。下面翻译官网中创者者如何完成一个渲染流程:

  1. 使用OctaneRender渲染工具输出一个.orbx扩展名的文件并上传到Render Network。

    OctaneRender是OTOY公司的一个渲染工具软件,而Render Network团队的母公司就是这个OTOY,参考**这里**的Render Network团队介绍。

    也就是说需要使用Render Network进行渲染,当前只能用OctaneRender这一个渲染工具。

  2. 待渲染的.orbx文件上传完成后,创作者在界面上可以选择一些渲染参数(如多少分辨率、采样率等)。

  3. 选择价格等级(Tier2 or Tier3),越贵的价格等级,Render Network会匹配更快的GPU节点进行渲染,从而更快地完成渲染工作。

  4. 创作者可以下载一个OctaneBench工具,用来预估这次渲染任务大概需要花费多少RNDR Token。

  5. 最后到了最关键支付步骤

    给创作者账户充值有两种方式,一种是充值RNDR Credit,一种是充值RNDR Token

    充值RDNR Credit就是使用PayPal进行充值;而充值RNDR Token就是利用 MetaMask去调用RNDR Token的合约地址进行充值。

上图是充值介绍的截图,请注意截图中的三点:

  • 使用PayPal充值1个RDNR Credit只需要1 欧元,而现在去市场上购买RDNR Token需要5.7 美元!而RNDR Credit的作用和RNDR Token作用完全一致!

  • 充值RNDR Token,是用MetaMask钱包向该Token的合约地址进行一次调用。(之后会分析合约是如何实现充值的)

  • 已经充值的RNDR Token只能被用作渲染费用的支付,而不能提现。。。

    在支付完成后,等待Render Network安排闲置GPU节点进行渲染,最后创作者可以下载渲染完成后的文件并确认渲染任务结果。

下面我们来看看如果你有闲置GPU设备,你可以如何参与到RNDR Network去赚取RNDR。

如何贡献闲置GPU资源

这个页面描述了如果你有GPU闲置资源,你的闲置GPU算力如何加入到Render Network中并获取收益。

  1. 填写一个表格后,RNDR团队的人会通过邮件联系你。(如果有人有兴趣可以试试,本人没填写)

    To join the network as a node operator, complete the RNDR Interest Form and you will be added to the on-boarding queue. When your node is ready to be added, The RNDR Team will follow up with more on-boarding information.

  2. 通过后,你需要从RNDR团队给你的Email中,下载并安装一个应用,按照邮件的指导就能搭建自己的GPU算力节点。

    Download and install the application sent to you from The RNDR Team (team@rendertoken.com). Additional information for setting up your node will be included in the email.

  3. 下载好的应用程序运行起来(看官网截图是一个windows 的应用程序),在完成分配的渲染任务后,需要等待创作者在24-48小时间确认渲染成果,确认后这次渲染即算成功,将会得到RNDR Token奖励。

    Creators have 24-48 hours to approve rendering jobs. Only after a Creator confirms that renders are successfully processed, will you receive your RNDR tokens.

  4. RNDR Token的奖励需要等待 7 - 10 天才会被转到你的钱包,原因是为了省gas费。(之后会分析合约是如何实现奖励的转账)

    Payouts are currently taking place every 7 - 10 days in a consolidated transaction to save on transaction fees required to make payments on the Ethereum blockchain.

Render Network产品现状总结

我大概归纳以下目前RNDR产品现状,按照官网的描述,Render Network作用是用于连接有渲染需求的创作者以及有闲置GPU资源的用户。如果这两个角色想要使用Render Network服务,需要:

  • 受众小。创作者必须使用RNDR团队母公司OTOY开发的OctaneRender渲染工具,其余工具暂时不支持。鄙人不知道是否有人用过OctaneRender渲染工具,也不知道其普及程度。

  • 中心化。创作者使用OctaneRender提交渲染任务,上传工程文件(.orbx扩展名文件)至Render Network。上传的工程文件是中心化存储,渲染任务的分配也由Render Network进行中心化分配。

  • 价格不一致且不可提现。RDNR Token的作用是用来支付这个渲染任务费用,RDNR Credit作用也是如此。使用PayPal支付1 RDNR Credit 只需要花 1 欧元。而使用RDNR Token支付的话,目前单个价格大概在5.7美元,且充值的RDNR Token不能被提现至用户钱包。

  • 不开放。用户如果有闲置GPU算力想接入Render Network,需要填写表格经过官方确认后才会通过邮件通知去下载指定软件,才可以贡献闲置GPU算力获取奖励。

  • 整个Render Network利用Ethereum和智能合约的地方只有RDNR Token,即仅发生在用户支付渲染任务费用,和分发渲染任务奖励的地方。

  • 通过RDNR Token的合约地址来看,RDNR Token的持币人数大约是9600人,最大持币地址是持有约64%的总发行量的智能合约(注:该合约未在Etherscan中上传合约代码)

  • RDNR Token的合约使用了OpenZeppelin的Proxy,具体实现的合约地址为0x1a1fdf27c5e6784d1cebf256a8a5cc0877e73af0。(简单解释下OpenZeppelin Proxy的作用是智能合约的代理入口,这样具体实现的智能合约可以进行升级而无需修改对外Proxy合约的地址。)

  • RDNR Token的合约除了实现了ERC20协议之外,还有以下两个方法值得关注。

    /**
    * @dev Add RNDR tokens to a job
    *
    * This can only be called by a function on the RNDR token contract
    * @param _jobId the ID of the job used in the jobBalances mapping
    * @param _tokens the number of tokens sent by the artist to fund the job
    */
    function fundJob(string _jobId, uint256 _tokens) external {
    		// Jobs can only be created by the address stored in the renderTokenAddress variable
    		require(msg.sender == renderTokenAddress, "message sender not authorized");
    		jobBalances[_jobId] = jobBalances[_jobId].add(_tokens);
    		
    		emit JobBalanceUpdate(_jobId, jobBalances[_jobId]);
    }
    
    /**
     * @dev Send allowances to node(s) that performed a job
     *
     * This can only be called by the disbursalAddress, an accound owned
     * by OTOY, and it provides the number of tokens to send to each node
     * @param _jobId the ID of the job used in the jobBalances mapping
     * @param _recipients the address(es) of the nodes that performed rendering
     * @param _amounts the amount(s) to send to each address. These must be in the same
     * order as the recipient addresses
     */
    function disburseJob(string _jobId, address[] _recipients, uint256[] _amounts) external canDisburse {
      require(jobBalances[_jobId] > 0, "_jobId has no available balance");
      require(_recipients.length == _amounts.length, "_recipients and _amounts must be the same length");
    
      for(uint256 i = 0; i < _recipients.length; i++) {
        jobBalances[_jobId] = jobBalances[_jobId].sub(_amounts[i]);
        ERC20(renderTokenAddress).safeTransfer(_recipients[i], _amounts[i]);
      }
    
      emit JobBalanceUpdate(_jobId, jobBalances[_jobId]);
    }
    
    1. fundJob()方法,也就是创作者充值RDNR Token时调用的方法,可以看到该合约只是记录JobId和充值的Token数量。比如创作者发起一个渲染任务,Render Network在合约中记录了这个渲染任务的JobId和创作者为这个任务愿意支付的费用,并不包括执行渲染任务的GPU节点钱包地址信息
    2. disburseJob()方法,这个方法是用来分发RDNR Token的奖励给执行渲染任务的GPU节点的。该方法需要传入上述方法中记录的渲染任务的JobID,以及接受奖励的钱包地址和对应奖励数量列表,这些地址就能得到RDNR Token的奖励。特别需要注意该方法只能由RDNR团队的地址调用,即RDNR团队可以传入他任何想奖励的钱包地址和数量。

所以我们可以看到,创作者支付完Token后,Render Network分配渲染给哪个GPU节点?奖励哪些GPU节点?GPU节点奖励的数量是多少?这些都是由RDNR团队的人控制。

基于以上几点,官网介绍和产品现状之间来看有较大差距。自我怀疑可能是项目还在开发中,也许产品使用介绍里只是当前状态,所以我又去看了看官网的白皮书,看看该项目是否有远景规划。

Render Token Whitepaper

项目白皮书总共只有10页介绍,前5页在叙述渲染行业的背景,以及OTOY的产品渲染流程。一直到第5页才开始在讲RNDR Token和整个项目的规划。

而我发现整个项目的规划基本上和产品现状差不多。。。看到Roadmap我已经心灰意冷。

在RoadMap中,产品计划第三期完成时间是2018年的第三、四季度,该白皮书的上传时间则是2018年的5月29日。已然是三年前的时间了。。。

个人感受

Render Token项目现状和我的预期有很大差距,毕竟好像刚刚上架币安。同时CoinDesk发文: Multicoin, Alameda和Solana基金会支持Render Token做去中心化的渲染农场,总计$30 million。

在我看来Render Network就是OTOY公司的一个传统的云渲染产品,然后套上了Render Token的激励,而实际上现阶段这个激励完全不需要上链。

在元宇宙的大概念下,确实会有大量3D模型的渲染需求。但是不知道是何种原因,让一个三年前的项目又获得了重生。我原本以为它会像我上篇文章Terra和Luna介绍中那样有巧妙的设计,但是却令人失望。

Subscribe to Xing
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.