# Render Network学习记录 — Mirror

By [cyberk.eth](https://paragraph.com/@cyberk) · 2021-12-23

---

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

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

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

Render Network官网介绍
------------------

在RNDR的[官网](https://render.x.io/)介绍中，首先介绍了当今虚拟世界的发展会非常迅速，对渲染（Render）的需求会越来越强烈。

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

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

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

### Render Network的市场痛点分析

Render Network[官网](https://render.x.io/)根据当前行业的情况总结出了四个痛点：

*   **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官网的示意图：

![](https://storage.googleapis.com/papyrus_images/92eb740bbe3ae257532ecbe5ee4118a12b2fe80aa8273dd6e8b2a0c64cbf1165.png)

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

How Render Network Works？
-------------------------

### [**如何成为一个创作者**](https://know.rendertoken.com/getting-started/how-to-get-started)

这个[页面](https://know.rendertoken.com/getting-started/how-to-get-started)描述了如果你是一个有渲染需求的创作者，如何支付RNDR Token去让Render Network帮助你完成渲染工作。下面翻译官网中创者者如何完成一个渲染流程：

1.  使用OctaneRender渲染工具输出一个.orbx扩展名的文件并上传到Render Network。
    
    OctaneRender是OTOY公司的一个渲染工具软件，而Render Network团队的母公司就是这个OTOY，参考\*\*[这里](https://know.rendertoken.com/#what-is-the-rndr-network)\*\*的Render Network团队介绍。
    
    **也就是说需要使用Render Network进行渲染，当前只能用OctaneRender这一个渲染工具。**
    
2.  待渲染的.orbx文件上传完成后，创作者在界面上可以选择一些渲染参数（如多少分辨率、采样率等）。
    
3.  选择价格等级（Tier2 or Tier3），越贵的价格等级，Render Network会匹配更快的GPU节点进行渲染，从而更快地完成渲染工作。
    
4.  创作者可以下载一个[OctaneBench](https://render.otoy.com/octanebench/)工具，用来预估这次渲染任务大概需要花费多少RNDR Token。
    
5.  最后到了最**关键**的[支付步骤](https://know.rendertoken.com/getting-started/how-to-get-started/adding-tokens-to-your-account)。
    
    给创作者账户充值有两种方式，一种是充值**RNDR Credit**，一种是充值**RNDR Token**。
    
    充值**RDNR Credit**就是使用**PayPal**进行充值；而充值**RNDR Token**就是利用 MetaMask去调用RNDR Token的[合约地址](https://etherscan.io/token/0x6de037ef9ad2725eb40118bb1702ebb27e4aeb24)进行充值。
    

![](https://storage.googleapis.com/papyrus_images/7d994d0fb286d077664b2b787a5e996713a6a286655836ab6c070955d84e36f0.png)

上图是充值介绍的截图，**请注意截图中的三点：**

*   使用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资源](https://know.rendertoken.com/getting-started/how-to-get-started-1)

这个[页面](https://know.rendertoken.com/getting-started/how-to-get-started-1)描述了如果你有GPU闲置资源，你的闲置GPU算力如何加入到Render Network中并获取收益。

1.  填写一个表格后，RNDR团队的人会通过邮件联系你。（如果有人有兴趣可以试试，本人没填写）
    
    > To join the network as a node operator, complete the [RNDR Interest Form](https://rndrteam.typeform.com/to/OyZwsp) 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](http://mailto: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的[合约地址](https://etherscan.io/token/0x6de037ef9ad2725eb40118bb1702ebb27e4aeb24#readProxyContract)来看，RDNR Token的[持币人数](https://etherscan.io/token/0x6de037ef9ad2725eb40118bb1702ebb27e4aeb24#balances)大约是9600人，最大[持币地址](https://etherscan.io/address/0xe9f57628059ac658901ce42a83fe09272a62a6c8#code)是持有约64%的总发行量的智能合约（注：该合约未在Etherscan中上传合约代码）
    
*   RDNR Token的[合约](https://etherscan.io/token/0x6de037ef9ad2725eb40118bb1702ebb27e4aeb24#readProxyContract)使用了OpenZeppelin的Proxy，具体实现的合约地址为[0x1a1fdf27c5e6784d1cebf256a8a5cc0877e73af0](https://etherscan.io/address/0x1a1fdf27c5e6784d1cebf256a8a5cc0877e73af0#code)。（简单解释下OpenZeppelin Proxy的作用是智能合约的代理入口，这样具体实现的智能合约可以进行升级而无需修改对外Proxy合约的地址。）
    
*   RDNR Token的[合约](https://etherscan.io/address/0x1a1fdf27c5e6784d1cebf256a8a5cc0877e73af0#code)除了实现了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
-----------------------

[项目白皮书](https://documentcloud.adobe.com/link/track?uri=urn%3Aaaid%3Ascds%3AUS%3Ad442da8a-067e-490f-88cf-2c4511016ff7#pageNum=1)总共只有10页介绍，前5页在叙述渲染行业的背景，以及OTOY的产品渲染流程。一直到第5页才开始在讲RNDR Token和整个项目的规划。

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

![](https://storage.googleapis.com/papyrus_images/16587b8ba37da86f3100d612b9a36f745c8d4016a533848407eacdc0a6052e13.png)

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

个人感受
----

Render Token项目现状和我的预期有很大差距，毕竟好像刚刚上架币安。同时CoinDesk[发文](https://www.coindesk.com/business/2021/12/21/decentralized-rendering-engine-raises-30m-in-rndr-token-sale-as-metaverse-graphics-go-big/): Multicoin， Alameda和Solana基金会支持Render Token做去中心化的渲染农场，总计$30 million。

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

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

---

*Originally published on [cyberk.eth](https://paragraph.com/@cyberk/render-network-mirror)*
