Foresight Ventures | Dfinity:去中心化云计算平台+高性能区块链网络

撰文:msfew/img/20230508214251774816/1.jpg "/>

从底层开始:P2P层(收集分发数据)→共识层(整理消息,验证后写入区块)→消息路由层(传输信息到目的地)→应用执行层(通过WASM安全沙盒环境进行计算)开发阶段,Dfinity的开发者工具都会把各个层级抽象出来,复制给开发者一个本地版来方便开发。应用运行机制

代码编译为WASM模块,部署到ICP的Canister容器(容器中包括了程序本身、状态、用户交互记录)中。https://zhuanlan.zhihu.com/p/372441370Canister

类似以太坊中的智能合约,除了运行环境是WASM的沙盒以外本质上没有其他大区别。正如之前提到的,一个很重要的特点就是ICP作为一个类似Serverless的服务提供商,上面的应用相比以太坊应用是需要具有更高的实时性的,比如ICP版抖音,因此Canister需要做更多的交互,同时也要保证不宕机、不拥挤卡顿。存储

ICP的应用状态是存储在内存里的,通过共识阶段来进行管理和确认修改。在Dfinity的博客上有个经常被提及的词就是正交持久性(orthogonalpersistence)。它所指的依然是Serverless的特点,开发者不用担心数据丢失,不用担心数据存在哪里。这就说明ICP和中心化的云平台是类似的,也有容灾备份等操作。我们可以看一份Dfinity提供的节点服务器硬件要求。

我们可以看到节点服务器要求16条32GB的内存和3.2TB的SSD。相比与以太坊验证节点4GB内存和290GBSSD(https://nimbus.guide/hardware.html)的配置要求来说算是比较夸张了。当然对于存储来说,更夸张的是Filecoin,需要1TB内存和16TBSSD的配置(https://zhuanlan.zhihu.com/p/337597732)。ICP的计算和状态存储基本都是跑在内存上的(类似比如中心化云平台SAP的HANA),硬盘可能只是起到一个镜像存储的作用,因此对内存的要求比较高。这就类似游戏服务器和网页服务器的关系,游戏服务器需要处理应用无数多的状态;网页服务器相比之下就比较无状态,可能更多的是每次去数据库读取不同的数据就可以。和Filecoin相比,ICP并不是专注于存储,而是Serverless,存储的数据可能就是常规的应用数据、应用状态以及应用代码本身,所以也不需要那么夸张的存储要求。链上应用实现方法

Do Kwon、Terraform Labs等遭到集体诉讼,指控其出售未经注册的证券:6月19日消息,根据一份文件,周五,Do Kwon、Terraform Labs(TFL)等被提起集体诉讼,指控其出售未经注册的证券,并就UST稳定币和相关代币LUNA的稳定性做出虚假陈述,以诱导投资者购买它们。

案件中提到的其他被告包括Jump Crypto、Jump Trading、Republic Capital、Republic Maximal、Tribe Capital、DeFinance Capital(这似乎是一个拼写错误,因为TFL没有这个相关联的公司)、DeFinance Technologies(可能是另一个拼写错误)、GSR Markets、Three Arrows Capital和Nicholas Platias。

诉讼称,尽管Terra代币具有投资合同的所有特征,因此是“符合Howey测试的证券”,“但没有向SEC提交注册声明。”

该诉讼还称,LFG的成员代表TFL促进了UST的稳定,并误导投资者相信可用的储备池将足以抵御“众所周知的UST/ LUNA投资者对银行的挤兑”。然而,在5月6日至5月9日之间,Terra生态系统特有的结构性缺陷“暴露了UST/LUNA交易对真相”。(The Block)[2022/6/19 4:37:54]

链上应用的项目结构非常类似以太坊。前端:Web端React或Vue等框架,手机端ReactNative或Flutter后端:Motoko(Dfinity开发的编程语言)或其他任何能打包编译成WASM的语言(比如Rust)数据结构:Canister(Dfinity为此开发了类似JSON的接口描述语言Candid)1.Cancan(类似抖音的短视频平台)

源码网址:https://github.com/dfinity/cancan

Cancan类似ICP平台上的抖音。Cancan的前端是用了Web端React框架,后端是用了Dfinity自研的Motoko语言。Motoko的部分还用到了MotokoPackageManagerVessel这样的高级功能。除此之外也用到了系统的一些API,包含了测试和持续集成,而且注释也写得非常详细。Cancan可以说是在很少的代码量里实现了一个非常标准化的ICP全栈应用,值得ICP开发者学习。整个应用的状态都是使用了Canister容器和ICP来取代服务器、CDN、数据库等。前端:React框架的资源都是在一个单独的Canister里(https://github.com/dfinity/cancan/tree/main/src/utils/canister)。后端与数据库:视频数据和点赞等数据全部都在Canister定义了类型(https://github.com/dfinity/cancan/blob/main/backend/State.mo)。同时要应对百万用户级别的访问,Cancan用了一个Motoko里的高级数据类型:分布式哈希表。由于是类似Serverless的架构,Cancan不用像传统前后端交互一样运作,而是类似能直接在数据库上进行get和post方法(类似谷歌的Firebase)。总之,从Cancan的例子来看,当学会了Motoko并且熟练掌握这门语言以后,在ICP上的开发会无比高效而且完全不用担心最恼人的部署等问题。2.Portal(直播平台)

Meta Platforms美股盘后涨幅扩大至近20%:4月28日消息,Facebook母公司Meta今天发布了该公司截至3月31日的2022财年第一季度未经审计财报。报告显示,Meta第一季度总营收为279.08亿美元,与去年同期的261.71亿美元相比增长7%;净利润为74.65亿美元,与去年同期的净利润94.97亿美元相比下降21%。Meta第一季度营收未能达到华尔街分析师预期,但每股摊薄收益超出预期,从而推动其盘后股价大幅上涨逾19%。[2022/4/28 2:35:57]

项目网址:https://ja7sy-daaaa-aaaai-qaguq-cai.raw.ic0.appPortal是一个比较新的ICP上的边看边赚,边播边赚的直播平台,目前正在Alphatest。Portal的源码暂时找不到,但是可以看出来前端用的是React框架。经过和开发人员的交流,可以知道Portal的关键的用户或代币数据都是在ICP上,视频的流媒体等数据的存储和分发是用的Livepeer协议。前端:React框架,目前来看客户端比较简陋。数据库:没那么复杂的数据都在ICP上,而最难处理的流媒体视频等数据不在ICP上,而是用的Livepeer。ICP上的数据部分不再赘述。Livepeer自称是一个基于以太坊的视频直播平台,本质上是一个分布式节点的视频流媒体解决方案提供商,只是经济系统基于以太坊。Portal使用Livepeer,就类似冷存储使用Filecoin平台,并不能体现出技术上特别大的创新。总而言之,Portal作为一个直播平台,最关键和难处理的视频分发以及存储都是选择用的Livepeer,和ICP没有关系。Portal与ICP的关系仅仅是部分简单的数据使用ICP存储以及修改。这实际上就是Portal抱ICP的大腿,在宣传其生态的同时,也能给自己打上这么一个ICP平台第一直播网站的标签。ICP到底强在哪里?

用户角度

抽象的来说,ICP已经足够“快”了,以至于用户都无法感知到它在后端是区块链。可以说ICP和其他云平台在使用上是感受不出区别的。在传统区块链,比如以太坊上部署智能合约的应用会让用户体验非常差,由于要各种确认交易支付手续费,以及网络确认的缓慢。但是在ICP上,由于其POS+随机数的共识协议,TPS高,同时有数据结构的各种优化,可以支撑起流畅的用户体验。因此才有各种应用的ICP版,比如LinkedUp、Distrikt。开发者角度

读取数据:目前普遍是在250ms以下。这个速度基本上是人按下鼠标并放开的时间长短,人基本体验不出来。写入数据:因为需要达成共识,所以比读取需要更多时间。目前通常是2-5秒。与BTC或ETH相比,这要快了无数数量级。与中心化云平台相比,这可能看起来很慢,但实际上这个速度是还可以接受的。目前Canister是单线程的,之后Canister如果升级成多线程,那读取和写入的速度也能大幅度提升。从开发应用的角度而言,这个速度不算快,但是对于做一个普通的WebApp绝对够用了。区块链角度

ICP的架构设计,类似云平台,有更多的节点意味着节点与用户之间的物理距离可能更短,网络会更快,可以做到“更多节点=更多子网=更大的网络容量=应用更高的性能”。具体的技术实现可以参考这篇详细的博客:https://medium.com/dfinity/a-technical-overview-of-the-internet-computer-f57c62abc20f。ICP的缺点

动态 | 视频游戏Fortnite接受XMR作为支付选项:门罗币在官推宣布,在线视频游戏Fortnite已经开始接受XMR作为加密货币的支付选项。据悉,该游戏拥有超过1.25亿全球玩家,2018年10月,其在最新一轮融资中的估值超过150亿美元。[2019/1/2]

https://dfinity.org/roadmap/Canister优化

目前,Canister能给其他Canister发更新请求。如果有A、B、C三个Canister,A要通过B去和C交互,那么就需要A发更新请求给B→B发更新请求给C→C接收请求。但是问题就是这样的响应时间大概需要4秒,对用户体验来说很慢。如果是跨不同子网的话就可能更慢。如果要是有10个Canister需要交互的话,那一个请求需要20秒就是很恐怖的。在ICP里有查询请求,性能是很快的,一次只需要200微秒,但是跨Canister的链式请求没有原生支持。所以为了避免未来跨应用间请求的性能问题,ICP需要更新,提供原生的高性能API。还有一点就是目前Canister的执行是单线程的,虽然Canister中可以“打包”执行一些指令,但是如果支持多线程的话,也会大大改善性能。但是这些更新和生态中的其他部分息息相关,比如ICP所支持的RustSDK也和Rust这门语言自己的生态发展息息相关,所以技术上或许需要多方努力才能改进完成。自定义域名

目前在ICP上部署的APP的域名都是Canister的id在加上ic0.app,比如https://ja7sy-daaaa-aaaai-qaguq-cai.raw.ic0.app。虽然开发者可以自行通过购买其他的域名来重定向到Canister的长域名,但是在使用过程中,那么长的域名还是会对用户体验有很大的影响。同时Dfinity论坛里的开发者以及他的客户也对这个问题很有意见,认为是开发过程中的巨大阻碍。这或许是很小的一点缺陷,但是也能展现出Dfinity还需要努力完善这些细节。除此之外,在与Dfinity的开发者交流之后得知,在ICP上创建账户会有两个账号,这对于区块链应用使用者来说是很反直觉的,所以应用开发者通常会单独再创建一个账号。这也是Dfinity在用户体验上能提高的地方。没有杀手级应用

https://github.com/dfinity/awesome-dfinity从Dfinity的官方生态Repo中可以看出Dfinity的生态还是不那么繁荣的,没有一个耳熟能详的杀手级应用。虽然ICP的技术很强,但是就是没有爆款产品出现在这个平台上,这样可能就会形成恶性循环,导致生态越来越差。生态的不完善实际上也和一些标准还未推进有关系,比如下一点提到的代币标准。代币标准

ICP目前是没有同质化代币以及非同质化代币标准的,这是一件很可怕的事情。作为一个区块链的公链,链上应用最吸引人的就是其代币的经济系统,而ICP却还没有标准化的提案。对一个开发者来说,没有标准化的提案就意味着开发者的应用可能会在未来,因为不满足标准化而被生态所抛弃。所以这也导致了大多开发者还在观望,可能宁愿在波场做一个应用,拥抱波场生态,也不愿意在ICP做。总结

Dfinity的ICP是一个高性能,有着云平台Serverless定位的区块链网络。通过优秀的共识算法与架构设计,以及经过各种优化后打磨出的自研编程语言,ICP能保证网络上应用的安全性和高性能。尽管在应用生态和标准制定上,ICP还略有仍需建设,但目前ICP已经是一个成熟的专注于Serverless功能的区块链网络,能帮助DApp开发者更快地搭建更高性能的应用。免责声明:ForesightVentures所有文章均不能作为投资建议或推荐,投资有风险,请评估个人风险承受能力后,审慎做出投资决策。联系邮箱:相关资料与引用https://medium.com/dfinity/a-technical-overview-of-the-internet-computer-f57c62abc20fhttps://www.chainnews.com/articles/465260109330.htmhttps://forum.dfinity.org/t/how-does-the-storage-mechanism-in-dfinity-works/2733https://medium.com/dfinity/software-canisters-an-evolution-of-smart-contracts-internet-computer-f1f92f1bfffbhttps://support.internetcomputer.org/hc/en-us/articles/4402245887764-What-are-the-Hardware-Requirements-to-be-a-Node-Provider-https://forum.dfinity.org/t/few-general-noob-questions-about-the-internet-computer/1938/3https://www.chainnews.com/zh-hant/articles/626831391302.htmhttps://www.zhihu.com/question/275674226https://medium.com/dfinity/cancan-the-internet-computers-decentralized-tiktok-is-now-open-source-5eed04547aa1https://www.reddit.com/r/dfinity/comments/mum43f/how_fast_is_dfinity_exatcly/https://forum.dfinity.org/t/custom-domains-for-ic0-app-community-consideration/6162/18https://forum.dfinity.org/t/inter-canister-query-calls-community-consideration/6754https://academy.ivanontech.com/blog/breaking-down-eth-2-0-ewasm-and-evm-explained

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:46ms0-1:175ms