Golem项目概览
宏大愿景和核心特征
Golem是第一个真正去中心的全球算力市场。Golem结合灵活的开发工具,帮助开发者 发布软件并赚钱,进而改变了算力任务的组织和执行方式。通过实现去中心微服务和 异步任务执行,Golem致力于成为建设未来互联网的基石。通过大幅降低计算价格,复 杂的应用,如CGI渲染,科学计算,机器学习(人工智能)将惠及每个人。
通过P2P网络连接电脑,使应用所有者和个体用户(算力“请求方”)可以从其他用户租 用算力(算力“供应商”)。这些算力资源可以完成对计算时间和计算能力有一定要求 的计算任务。在当下,算力资源被中心化云服务商把控,受制于封闭网络,外部支付 系统,和死板的运营模式。Golem还有一个核心内置的特性—基于以太的支付转账系 统,可以实现算力买家(请求方),卖家(供应商),及软件开发者之间的直接支付。
Golem作为去中心算力市场的支柱功能可以看作为是一种基建即服务(Iaas),也是一 种平台即服务(PaaS)。通过集成一些专属软件后,Golem会展现其真正的潜力。任何 有兴趣的第三方可以在Golem基础上自行创建和部署软件并通过应用注册市场进行发 布。在转账支付框架下,开发者可扩展和自定义支付方式,实现独特的赚钱方式。
Golem生态系统
Golem的商业应用可以归结为这样的现实,因为近年来的科技进步,算力资源市场可以根据全 新理论重新架构。在当下,算力市场被Amazon,Google及微软这样的巨头垄断,他们借助市 场优势力量享受高额利润,进而导致算力服务价格居高不下。幸运的是,市场不会一成不变。 有了Golem,算力资源供应将来自于个人和专业算力供应方提供,并可结合一系列分布在 “Golem应用注册市场”上的专属软件方案。“应用注册市场”本身也是具有详细信息,自我运行 的具有竞争优势的应用市场。
Golem所实现的新的市场机制需要3组用户支持:算力资源卖家(”算力供应商“),把需要计 算任务上传到网络的任务创建者(”算力请求方“), 还有软件开发者。这三组人员形成了 Golem独特的互相交互依存的生态系统。
基建供给(算力供应)
算力供应来自于算力供应商。可以是从出借游戏用闲置CPU的个人到销售所有计算能力的大型 数据中心。算力供应商有动力加入Golem,因为完成任务即能获得报酬收入。当然,Golem的 UI会简单易用,使算力供应商轻松设置价格,选择要出租的闲置资源。
算力需求
为了鼓励算力供应商贡献资源,Golem需要吸引算力请求方来寻找算力资源。因为Golem市场 上完备的信息,易用的任务部署,使其极具竞争力。Golem使用简单,吸引算力请求方,提高 市场效率,进而在定价和综合性方面与现存云计算平台项目相比更具优势。
另一个重要特性:Golem会将算力请求方转变为算力供应商,因为大部分算力请求方只是阶段 性需要额外算力,他们也可以出租硬件算力而赚取GNT(Golem网络代币)。进一步讲,经济 收益并不是唯一参与Golem的动力:另一个重要特性是Golem网络运行丰富的软件,用户可以 在“Application Rgistry”应用注册市场获取这些软件。
软件和微服务
尽管初期是Golem团队开发部署一些应用软件案例(比如CGI渲染),但促使其他软件开发者 集思广益开发自己的Golem应用显得格外重要。这种独立开发者贡献的应用软件数量和质量是 Golem未来成功的重要因素。因此,在整个生态中,”Application Registry“ 软件注册市场和转 账支付框架是重要的功能,也是开发过程中核心部分。曾经提到过,我们要为开发者提供灵活 易用的工具,以便于在Golem上部署,分发软件并赚钱。这将是微服务以及未来去中心应用 (DApp)的最佳解决方案。当然在Golem上发布现存专属及开源软件业同样有趣。
第一个案例: CGI 渲染
长期展望:Web 3.0的基石
我们认为Web 3.0将会是真正的去中心网络,使用户直接交换内容,无需与机构组织和第三方 共享。在这种大环境下,Golem不仅仅是用于执行具体计算任务,也将实现在自治网络中集群 租赁机器设备完成算力项目。当然这种目标需要其他技术同步发展才能实现,我们可以看到这 些相关技术近年来的飞速进展。
更好的数据共享技术非常有必要,考虑到目前IPFS/Filecoin以及Swarm项目的开发进展,适当 的解决方案似乎触手可及。最终,以太坊网络扩展性更强,效率更高,拥有一个完备的微支付 通道网络。当这些技术实现,我们不难想象,Golem将成为一个微服务平台,使用户以完全去 中心的方式运行小型应用(比如记事本应用)和大型应用(流媒体播放)。尽管显得雄心勃勃, 这种展望确实是Golem远期潜力的终极目标。
Golem网络代币(GNT)
Golem网络代币(GNT)账户在众筹阶段创建。GNT是Golem的核心部分,用来保证项目发展的灵活掌控。GNT代币在众筹阶段生成,随后GNT将是Golem网络诸多功能实现的组成部分。
Golem是算力请求方使用设备资源并对算力供应商,及软件开发商支付酬劳的唯一币种
当Application Registry(应用市场)和转账支付框架搭建完成,GNT也会参与其他交 互, 比如算力供应商和软件开发者提交押金,或者使用GNT参与软件验证(参见应用
市场部分)。
使用GNT的总则在转账支付框架中制定,但具体交互方式亦可在单个软件应用集成中确立。
GNT代币生成和初始分配
应用注册市场
应用注册市场(应用市场)是一个以太坊智能合约,在这里人人可以发布可在Golem网络上运 行的应用软件。应用市场的目标是:
使开发者可以发布应用软件,并使用去中心方式提供给用户;
算力请求方可以在这里找到适合自己的专用工具;
基于安全考量,算力供应商可以把控运行的代码。
因为Golem网络是完全去中心的,我们也希望应用市场成为社区驱动的典范。
Golem允许算力买家“请求方”在其他人的设备上运行应用代码。代码在沙盒中,以最小权限运 行。但是软件bug无处不在,也曾有人攻破沙盒,在主机上运行恶意代码或者取得控制权。所 以我们不能完全依赖沙盒方案。我们可以尝试自动评测代码是否安全,但这几乎不可能实现。 代码评审和验证程序无法实现自动化。不可能杜绝在Golem上发布恶意软件的情况。
我们通过将应用市场用户分成三类的办法解决这一问题:作者,验证者和供应商。代码作者发 布应用,验证者检查应用程序并通过将应用程序加入白名单方式证明应用程序安全可靠。验证 者也可以将应用程序加入黑名单标明恶意程序。供应商有权选择信任哪个验证者。除此以外, 供应商还可以管理自己的黑白名单,使其能够灵活选择要运行的软件,及工作量。更进一步讲, 系统不剔除任何一方,有足够空间留给新验证者。
Golem默认基于白名单运行应用。对于第一次使用Golem用户,空白的白名单是个问题,初次 部署我们会设置一部分已验证白名单条目。供应商可以利用该机制,管理自己的白名单或者简 单的使用自己所信任验证者的白名单。
另一方面,运营算力农场的供应商可能希望完全依赖黑名单。这是给专用设备用户量身定做的选项,这些用户愿意承担风险实现利润最大化,黑名单可以用来排除已知恶意应用。供应商也可以管理自己的黑名单,或者使用所信任验证者的黑名单。
转账支付框架
当建造令人兴奋的新事物时,很难预测面临的机遇,但新事物总是带来惊喜。总的来说, Golem被定义为“全球超级计算机”,据此Golem毫无疑问因拥有众多分门别类的应用而找到自 己的商机。这些应用需要多样的盈利模式。我们不能设计一个一刀切的支付系统。
当一个开发者将应用软件与Golem集成,他可以自主选择转账支付模式,只要符合Golem的转 账支付框架即可。转账支付框架的形式是一系列需要遵循的选择条件。基本要求如下:
是否在应用市场注册;
是否为可审查,开源,确定性代码。比如说EVM;
社区评级;
GNT用作支付软件和算力资源报酬。
基于以太坊开发转账支付框架:我们急需先进且非信任的支付系统,这在P2P网络中难以实 现, 以太坊在我们实现这个目标过程中提供了强大力量,比如信用评级功能。
转账支付框架组成部分:
多样的支付方案,极微支付(nanopayments)批量支付(batching)
脱链支付通道
定制收据
支付给软件开发者
使用软件单位(按节点,按小时)
未来,这套机制可能演变为一套社区监控的模板代码,可以当做定制转账支付模式运行。
也可以在转账支付模式中加入更多复杂因素,以满足非支付方面的要求。例如:
请求方要求对需要更高关注度任务进行担保(因为需要特殊硬件设备及长期运行子任 务,该任务价格较高);请求方可以创建双方担保合约,并要求供应商加入。
供应商押金:请求方可以要求控制一部分具有锁定时效的GNT代币押金。
请求方押金:供应商可以只接受来自于请求方具有一定数量且锁定时效GNT的任务。
将某个任务锚定到类似Truebit的争议解决防备机制中。
注*(Truebit 是一种解决相关方争议的概念性方案。也就是说用类似Truebit这种外部验证来校 验结果)
路线图
下面是众筹成功所能支持的路线图。你可以在这个帖子找到Golem架构的建议描述。以及一些面临的挑战here,当然你也可以看我们的代码GitHub.
我们以分阶段里程碑方式按序发布Golem软件。此处仅可以作为初步计划,Golem采用尖端科技,项目复杂度较高。
每个阶段里程碑都将根据白皮书描述进行研究论证。有三个事情需要格外提醒。
1. 每个阶段都有新功能增加;
2. 每个里程碑阶段的交付程度取决于融资水平。在下面的里程碑描述中,软件功能分四
种融资水平进行归类。
3. 用 ‘+/++/+++’ 标记的功能将根据达到融资水平而实现。
我们通过借鉴龙与地下城中魔像(Golem)的等级来命名软件版本号。这种类比或许不甚完 美,但确实可以称之为网络魔像。
青铜Golem版本
“他们存在只为一个目标,在其出生之日已有注定,需耐心等该,知道他们激活并完成使命.”
青铜Golem是目前的概念版,处于Alpha测试阶段。最新的版本实现在Blender和LuxRender环境 下的渲染。CGI设计师可用,但我们仍将CGI渲染作为概念产品和产品试验场。青铜Golem在 众筹结束后会冻结六个月进行全面测试。尽管我们不认为CGI渲染会带来足够收益以证明我们 为该项目付诸的努力,但这确实是第一款去中心算力市场产品。
功能列表:
基本任务定义系统,实现第一个任务定义;
基础应用注册—第一款基于以太坊应用注册,实现基本任务定义系统中任务存储;
集成IPFS进行任务数据调度和内容发放。即,通过IPFS传递计算任务所需的文件,传递计算结果给请求方;
Docker环境Golem镜像运行沙盒内计算;
本地验证:基于在请求方设备计算一小部分任务的概率验证系统;
基础 UI 及CLI;
基础信用评级系统;
实现Blender和LuxRender渲染任务。
黏土Golem版本
“黏土魔像或被邪灵附体。如此发生,魔像失控并攻击身边的生命体”
黏土版本是青铜版本后的一大跃升。黏土里程碑带来了算力任务API和应用注册市场,并使 Golem提升为多用途通用计算解决方案。开发者具有了与Golem平台集成的方法。这种进步同 时也可能带来了安全性和稳定性方面的妥协,所以该版本应当视作科技爱好者和尝鲜人士的实 验版本。在黏土版本上可以建立自己的原型产品。
功能列表:
基本任务API:用户用来定义简单任务的界面;
内置支付方式的基础转账支付框架;
冗余验证:基于冗余计算结果进行对比的验证系统;
基础子任务授权:更先进的子任务分配机制(可以更有效地建立ad-hoc代理任务);
(+) 支持虚拟机作为计算沙盒;
(+) 开发者教程;
(++) 算力任务执行示例:即机器学习任务和科学计算任务。
Stone Golem
“石头魔像不会抵抗其创造者的控制,比如黏土魔像”
石头Golem版本将加强安全和稳定性,并进一步扩展黏土版本中的功能。任务API有所改进, 应用市场将有认证机制辅助,并建立一个社区驱动的应用信任网络。同时,转账支付定义框架 使Golem以SaaS软件即服务模式运行。
功能列表:
任务API:定义任务界面;
Application Registry: 应用注册市场,开发者发布可以运行在Golem网络上的应用;
转账支付框架:允许对任务模板进行报酬模式选择;
基础认证支持:用户对应用程序标注黑白名单的机制,建立一个去中心的信任网络;
支持软件即服务:实现接入外部软件,应用在算力任务中。任务创建者支付系统也将在应用中实现;
(+) SaaS软件即服务任务实例: 展示开发者如何创建SaaS模式任务;
(++) Golem网页客户端:除原生GUI/控制台界面外,网页端的Golem;
(+++) 算力供应方仪表盘—提供状态,可视化图形,及高级设置管理界面。**
铁Golem版本
“铁魔像由铁而生,是所有魔像中的最强者。他们从不抗拒法师和创造者的控制。”
铁版本是Golem久经测试的版本,给开发者更大自由度去创建应用软件,使用因特网连接,并 在沙箱外运行。当然选择高危应用的决定权依然属于算力供应商。铁版Golem是个强健的,抗 攻击,安全并且扩展性优良的版本。铁版Golem将为开发者提供多种工具,使开发应用更为便 捷。最终实现Golem标准程序库。
功能列表:
外部数据链:是Golem可以使用外部资源;
主机直选模式:对于特定白名单应用和安全环境采用的可信模式,Golem可在Docker/VM之外运行;
环境验证支持;
网络状态仪表盘—显示Golem网络基本状态的公共网站;
(+)更多安全机制—使用外部数据链接和主机直选模式对安全都是挑战。需采用其他方法保证算力供应方安全;
(++) Golem 开发者工具包:一套检测试验工具,使创建应用的过程更容易;
(++) 信用评级系统:允许节点有效监控网络行为;
(++) 高级转账支付系统:以最有利方式自动撮合请求方和供应商;
(+++) 集成devp2p - 使用新版本devp2p;
(+++) MapReduce(映射化简)和拓扑排序:增加抽象层,使用户定义更多通用任务;
(+++) 语言无关函数化可以实现Golem底层核心访问。要特别关注任务和子任务相关I/O函数。每个相关编程语言都将绑定Golem STD标准库. 这种绑定是为了扩展默认标准库 (编程语言作者的自定义扩展也是可行的)。有了Golem STD就有可能实现独立于操 作系统的自动任务定义功能。Golem STD使用户可以使用不同编程语言创建应用,有 效提升应用潜力和简化任务创建过程。
未来集成
现在有数以千计的Dapps(去中心化应用)和各种平台正在开发阶段或者已经进入Alpha 测试 阶段。我们在这个大环境中开到了巨大的机遇,更不用说有些方案或作为扩展直接应用于 Golem。参考集成难度,Golem有可能会考虑下面这些系统。
基于闪电网络的支付通道方案,即Raiden or multi-party payment channels;
外部去中心身份认证服务,即 uPort;
任务验证及信用评级外部解决方案,即TrueBit;
外部文件存储方案, 即Filecoin,Swarm。
Golem项目众筹
Golem众筹以及对应的代币生成都采用太坊智能合约。参加众筹者需要发送以太ETH至众筹合约中指定的合约地址,以1000GNT/1ETH比例换得Golem网络代币 (GNT), 参与者必须在众筹开启后(众筹合约中规定开始区块链号,及结束区块链号),及众筹结束前或者达到顶格融资额度前发送ETH。
*最低融资额度未在众筹合约中规定。如果未达到该额度,单独的合约将执行退款.
众筹简介
通过以下渠道公布众筹合约地址:
项目网站: golem.network
官方Twitter: twitter.com/golemproject
官方Slack: golemproject.slack.com (you can join here)
官方Blog: blog.golemproject.net
Reddit: reddit.com/r/golemproject
请在发送ETH前反复检查合约地址,出于安全考量,我们建议您从以上两个渠道交叉确认该地 址。
在Golem主页,你也能找到使用Ethereum Wallet或Parity钱包的众筹指南。 众筹由几个简单参数组成的智能合约执行:
Golem Factory GmbH: 掌握智能合约和地址,参与众筹的ETH发送给该地址。(多重签名地址);
预留代币比例为18%(6%为Golem团队预留,12%是Golem Factory GmbH公司预留);
起始块,结束块:标明众筹时间始终点的区块号。
maxCap: 以GNT计价的众筹融资顶格;
GNT创建比例:与ETH兑换比例。
众筹合约遵循以下几个重要规则:
众筹开始前,不能发送ETH到众筹合约地址。
众筹结束(达到众筹顶格或者到截止时间)后,不能发送ETH到众筹合约地址
众筹期间,参与者将ETH发送到众筹合约地址即时生成GNT代币。
所有代币在众筹阶段锁定
以下事项仅发生在众筹结束后:
发送ETH到Golem Factory GmbH指定的地址;
众筹合约生成18%预留代币(也就是说无论融资额度多寡,参与众筹者的代币占总量的82%);
众筹合约结束融资,GNT代币取消锁定。
合约中没有约定最低融资额度,如果众筹期间未达到该融资额度,Golem Factory GmbH将退回以太币。
众筹会创建GNT代币,该代币基于广泛接受的以太坊代币标准,同时具有两个额外的有助于 众筹和未来升级的功能 — 代币生成和代币移植:
代币生成:众筹阶段,众筹合约按照接收到的ETH生成GNT代币。
新生成的GNT代币默认锁定。只有众筹结束才能解锁。
只有众筹阶段才能生成GNT代币;结束后不会再增发,数量恒定。
代币移植:GNT代币移植到另一个合约的功能
默认情况下没有任何用途,但是假设某个环节GNT需要升级,Golem Factory
GmbH 可以建议采用移植合约,将代币转移到新合约。
就技术而言,如果GNT代币升级,Golem Factory GmbH在GNT合约中预留
MigrationAgent接又(出于安全原因,只能做一次)。通过移植合约执行后,所 有GNT持有者可以决定是否通过MigrationAgent.migrateTokens将GNT代币升级 到新合约。
MigrationAgent只能在代币部署完成后执行。所以目前只是预留接又。
合约移植是在某个环节下代币需要升级,无论什么原因(以太坊更改,Golem设计更改)。升 级代币需要持有人支持,Golem Factory GmbH无法强迫实施。
预算和融资水平
融资所获得ETH将由Golem Factory GmbH公司遵照路线图使用。众筹方法显示融资水平可能处 于最低限和顶格额度之间。该路线图是按照顶格额度设计。
Golem是关于最新科技的研发项目。在“青铜Golem”版本研发证明了我们在白皮书描述的设想 的可信度,但我们也同样知晓未来庞大的工作量。Golem团队对于白皮书中描述的的技术全力以赴,但最终实现程度也需要依靠融资水平而定。
在“最低额度”情况下,最终交付的是一款“铁Golem”版本,功能实现创建去中心算力市场和基 础开发者工具包使开发者能够集成自己的软件。需要说明的是,最低额度也足够交付基本功能的应用市场和转账支付框架。
在“顶格融资”情况下,我们会全力交付一款高阶功能“铁Golem”版本。不仅针对实现彻底搅翻 算力市场,而且要尽力实现一些Web3.0重要组成部分的开发。特别是,此融资水平可以实现 软件应用的灵活分发和并通过软件赚钱,实现Dapp和微服务。设想下,实现顶格融资后, Golem团队倾尽全力集成众多应用交付给整个社区。
功能和融资水平对照表
团队预算: 只包括人员成本。最高融资额度预计支持20人团队(大部分为开发者)为期4年的 开销。
办公及简介成本预算:包括在Zug和华沙的办公开销以及间接的有关人力的开销。
第三方合作 包括与第三方合作需要支付的费用。这部分费用较高主要是因为安全评审。法律和会计服务费用也包含其中。
社区活动及推广: 包括社区交流,市场推广,以及第三方集成接入支持(赞助或共同出
资)。该费用主要面向算力请求方,保证用户持续增长。
配套技术:该费用用于Golem依赖的外部技术开销。最主要的方式是赞助其实现对Golem有利 的改进。
备用金占总预算的10% (最低融资额度则为5% )。
Golem是一项极具挑战的事业,需要一个能力很强且及其专注的团队。团队成员中,特别是 Julian, Andrzej, Piotr, Paweł, Wendell, 和Radek曾经一起在以太坊,Hydrachain,及Morfa编程语 言项目中共事。其他人陆续加入Golem项目。 Alex Leverington 和 Paweł Bylica多年来一直是以 太坊核心开发者, Paweł 目前还在为以太坊虚拟机(EVM)工作。