We continue the translation of the “White Books” blockchain (namely blockchain, not bitcoin) projects. And today in line ... Golem.
Project golem
White Paper on crowdfunding (Version v0.9, October 2016)
')
Content
- Golem Project Overview
- Main idea and functions
- Golem Ecosystem
- Infrastructure resources
- Demand for computing resources
- Programs & Microservices
- Primary use case: CGI rendering
- Plans for the future: Golem as part of Web 3.0
- Golem Network Token (GNT)
- Application Registry
- Transaction Framework
- Road map
- Brass golem
- Clay golem
- Stone golem
- Iron golem
- Future implementations
- Crowdfunding
- Crowdfunding resume
- Budget and Financing
- Golem team
Golem Project Overview
Main idea and functions
●
Golem is the first truly decentralized supercomputer that forms the global market for computing resources. Combined with flexible tools to help developers safely distribute and monetize their software, Golem also changes the way they organize and execute computational tasks. Thanks to the microservice architecture and asynchronous task execution, Golem should be the basis for future Internet service providers and software developers. And due to the fact that the cost of computing is significantly reduced, complex programs (CGI rendering), scientific calculations and machine learning become more accessible for everyone.
●
Golem connects computers on a p2p network, allowing application owners and individual users (customers) to rent computer resources from other users (suppliers). These resources can be used to perform tasks that require any amount of time and computing capacity. Today, such resources are provided by centralized cloud service providers, but their shortcomings are closed networks, proprietary payment systems, and tight software code restrictions. In addition, the main transaction system for Golem is Ethereum, which allows direct payments between customers, suppliers and software developers.
●
Golem's function as the basis of the decentralized computing resources market can be considered both IaaS (infrastructure as a service) and PaaS (platform as a service). However, Golem's true advantage is that it allows you to integrate specialized programs. Any interested party can freely create and install programs on the Golem network by publishing them in the Application Registry. Using the Structure of Transactions, developers can also expand and customize the payment mechanism, creating unique mechanisms for software monetization.
Golem Ecosystem
Golem's business task is to organize the market of computing resources in accordance with completely new principles thanks to relatively recent technological advances. On the other hand, such major players as Amazon, Google, Microsoft and IBM dominate the computing market today and do their best to ensure high profitability, which leads to high prices for computing services. Fortunately, this market situation will not last forever. In the Golem network, the provision of computing resources is based on the contributions of individual and professional providers (providers), in combination with a set of specialized software solutions from the Golem Application Registry, which itself operates in a single and competitive market with almost
complete information .
Scaling the computing market with Golem requires combining three groups: suppliers of computing resources, task initiators (customers) who post their tasks on the Golem network and, of course, software developers. These three groups constitute the unique, interdependent Golem ecosystem.
Infrastructure resources
The computing power in the Golem network is provided by the suppliers. The supplier can be either a regular user who can provide free time on his gaming PC, or a large data center that provides all of its computing power. The interest of suppliers to join Golem is that they receive payments from customers for the tasks performed. Of course, the Golem user interface will be easy to use and allow suppliers to easily set prices and decide what part of their free resources they are willing to rent.
Demand for computing resources
In order to pay remuneration to suppliers for the capacity provided, Golem must attract customers who are interested in these capacities. The market that creates Golem will be very competitive due to the fact that this is a market with almost complete information and thanks to the ease of deploying programs on any equipment. This will not only simplify the use of Golem, which will certainly attract customers - a highly competitive environment will also increase market efficiency, which will most likely lead to a much more objective and profitable price compared to existing cloud computing platforms.
One of the important features is that the Golem market will allow customers to become suppliers: because most of them need additional resources only occasionally. They will be able to rent their own equipment and receive additional income. In addition, the financial aspect will not be the only incentive to use Golem: one of the key functions of the Golem will be the availability of various software running on its network and accessible from the Application Registry.
Programs & Microservices
Although some primary use cases (such as CGI rendering) will be developed and implemented by the Golem team, of course, it is necessary to involve other developers in creating applications for the Golem. The number and quality of such applications is one of the key factors for Golem’s future success. For this reason, the Application Registry and the Transaction Structure are among the most important characteristics of the entire ecosystem and will occupy a central place in the development process. Once implemented, they will provide developers with flexible and efficient tools for deploying, distributing, and monetizing Golem-based software. It will be an ideal solution for microservices and some future decentralized applications (DApps), but it can also be an interesting way to distribute existing proprietary and free software.
Primary Usage: CGI Rendering
Alpha version of Golem: CGI-rendering using Blender
CGI rendering is the first and very significant example of the actual use of the
Golem .
Instead of using expensive cloud services or waiting for their own powerful computer to appear, CGI artists can now visualize graphics quickly by renting computing resources from other users.
Payment from the customer (in this case, the CGI artist) is sent directly to the suppliers who have provided their resources.
In addition, when the computer of the contractor is idle, he can receive tasks from other users.
Plans for the future: Golem as part of Web 3.0
We believe that in the future, the Internet will become a truly decentralized network, allowing users to safely and directly share content without sharing it with corporations or other intermediaries. Accordingly, Golem will be used not only for specific computing tasks, but also for the mass rental of computers that will perform operations in a self-organizing network. Of course, this will require the parallel development of other technologies, many of which have received significant support in recent years.
More efficient data exchange technologies are needed, but with the ongoing development of IPFS / Filecoin and Swarm, appropriate solutions seem to be within reach.
Over time, the Ethereum network will become more scalable, more efficient and will include a full-featured network of micropayment channels. As soon as these technologies become available, it is easy to present Golem primarily as a microservice platform, allowing users to run both small (for example, note-taking application) and large applications (for example, streaming service) in a completely decentralized way. Despite the ambitiousness, the above is a powerful argument in favor of the large potential of the Golem.
Golem Network Token (GNT)
GNT is the main component of Golem and is designed to provide flexibility and control over the future of a project. GNT is released with crowdfunding (described in this document), and after the first major release of Golem, the GNT token will have various functions.
● Payments from customers to suppliers for the use of their resources and remuneration to software developers will be paid exclusively to GNT.
● After launching the Application Registry and the Transaction Structure, GNT tokens will be required for other operations: provision of collateral by software vendors and developers, or testing and certification of programs (see the “Application Registry” section).
● GNT's general terms of use will be set in the Transaction Structure, but specific parameters can be set separately for each program to be installed.
The number of GNT tokens will be limited to the pool of tokens created during crowdfunding.
Creating GNT tokens and primary functions of a GNT account
● Golem network token is released on the Ethereum platform. Its design conforms to widely used standards for the implementation of tokens. This allows GNT to be used in existing solutions, such as the Ethereum Wallet.
● The maximum number of tokens created during crowdfunding:
○ Total: 1,000,000,000 (100%)
○ Crowdfunding participants tokens: 820,000,000 (82%)
Tokens Golem team 60,000,000 (6%)
○ Tokens of Golem Factory GmbH 120,000,000 (12%)
● Sending 1 air to a GNT account will create 1,000 GNT
● After crowdfunding is completed, there will be no creation of tokens, minting, or mining.
● Tokens can be freely sent / received immediately after crowdfunding.
More details in the “Crowdfunding” section.
Registry of Applications
The Registry of Applications is a smart contract for Ethereum, where everyone can publish their own applications, ready to run on the Golem network. Objectives of the Application Registry:
● Provide developers with the ability to publish their applications and interact with users in a decentralized manner;
● Provide a place for customers to search for specific tools that meet their needs;
● For security reasons, give suppliers complete control over the program code they run.
Since the Golem network is completely decentralized , we also want the Application Registry to be managed by the community itself.
Golem allows customers to run a program code on a computer from a supplier.
This code is executed in a sandbox and with a minimum priority.
But software errors are found everywhere, after some time, attackers will be able to bypass the sandbox and run malicious code on the host machine, or even get control over it. That is why we cannot rely solely on sandboxes.
We could try to automatically determine the security of the code, but this is practically impossible (according to the Stop Problem).
The code verification process cannot be fully automated and runs on an autonomous network.
On the other hand, it is impossible to assume that no one will ever publish malware that will run over the Golem network.
To solve this problem , we decided to divide the users of the Application Registry into three categories: authors, validators and suppliers. Authors publish applications, validators check and certify them as safe by adding them to their own whitelist.
Validators can also mark applications as malicious by adding them to the blacklist.
Suppliers also have the right to decide which validator lists to use in each particular case of the launch of Golem on their equipment.
In addition, suppliers can maintain their own whitelists or blacklists. This gives each vendor greater flexibility in determining which software to run and how carefully it is monitored.
Moreover, this system does not exclude any of the parties, and there is always room for the emergence of new validators.
By default, Golem works using the white list of trusted applications.
Since an empty whitelist for someone who only tries Golem for the first time may seem like a problem, we will add a number of proven applications to the whitelist of the original distribution.
A supplier can use this mechanism by maintaining its own whitelist or use lists of validators that it trusts.
On the other hand, a supplier owning a server farm may wish to use only blacklists.
This option is designed for administrators of dedicated servers who want to maximize profits and be ahead of the rest.
In this case, the blacklist is used in order to avoid any problem applications known at the moment.
Again, a supplier can maintain its own blacklist or use validator blacklists that it trusts.
Transaction Structure
Creating something new and exciting, it is difficult or almost impossible to predict absolutely all the possibilities that open up with its appearance.
Golem is a distributed global supercomputer, and so on. He will undoubtedly be in demand in a variety of applications.
These applications may require a wide variety of remuneration models. We cannot develop a single payment system for Golem, and we will not try to force application developers to use it.
When a developer integrates his application into Golem, he has the right to decide which transaction model to use, provided that it is compatible with the Transaction Structure.
The Transaction structure will be a set of requirements; Basic requirements may include:
● entry in the Application Registry;
● using an open source environment and / or a deterministic environment, such as EVM;
● community approval or transaction model rating;
● Use GNT to pay for software and service providers.
We are building a Ethereum Based Transaction Structure. Ethereum gives us a lot of power, which is very necessary in the implementation of advanced, confidence-free schemes.
It includes components that are extremely difficult to implement in P2P networks, for example, reputation score.
Sample Transaction Structure components:
● Various payment schemes, for example:
nano payments ,
mass payments .
● Off-chain payment channels
● Customizable receipts
● Payments to software developer
● Launching the program on each individual host (host, hourly launch, etc.)
In the future, this may turn into a template that will be customized by the community and used when implementing custom transaction models.
To achieve specific non-payment goals, more complex components can be used in the transaction model. For example:
● Customer’s pledge account for tasks requiring a higher level of responsibility (high price due to the use of specialized equipment or long-term subtasks); the customer can create a two-way security account and require suppliers to participate in it.
● Supplier pledge: the customer may require control over a number of embedded GNT tokens.
● Customer pledge: the supplier can only accept tasks from customers owning a certain amount of GNT.
● Registration of a task as binding to a backup conflict resolution mechanism similar to TrueBit.
Road map
In this section, we present the main stages of Golem development.
You can read non-technical details of the Golem architecture
in our blog , some thoughts about the upcoming calls are described
here , and of course, you can familiarize yourself with the program code on
GitHub .
Successive versions of the Golem program are divided into stages. This is a preliminary plan, since Golem uses advanced technology and is in itself a very complex project.
Before each stage, research should be carried out and the results obtained, which are described in technical documents. However, two important points need to be made:
1. At each stage, add new features.
2. The results of each stage depends on the amount of attracted financing.
In the description of these stages, which is given below, these functions are assigned to four indicative financing scenarios.
3. Functions marked with “+ / ++ / +++” will be implemented if the appropriate level of funding is reached.
We assigned code names to various versions of the Golem program, based on the golems of the game Dungeons & Dragons. The analogy is not perfect, but still it's e-golems.
Brass golem
... they are created to achieve the same goal set during the creation, they wait in absolute patience until they are enlivened to fulfill this task.
Brass Golem is the stage at which we are now and check our concept, conduct alpha testing.
The current version of Golem is focused only on rendering in Blender and LuxRender, and although it will be useful for CGI artists, we believe that CGI rendering will be primarily proof of the correctness of our concept, as well as our training ground.
Brass Golem will be used within 6 months after the end of crowdfunding and all tests.
Despite the fact that we do not expect that CGI rendering in Blender will create enough turnover to justify all the forces that we have invested in the project, but this will already be the first decentralized market of computing power.
List of features offered:
● Basic Task Statement Scheme, which allows you to prepare the first task formulation;
● Basic Application Registry - the first version of the application registry, based on Ethereum, which allows you to save tasks defined using the basic task definition scheme;
●
IPFS integration for coordinating task data and content delivery, for example, delivering files needed to calculate a task, delivering results back to the customer;
● Docker-environment with Golem-data for performing calculations in the sandbox
● Local verification: a probabilistic verification system that calculates a fragment of the problem on the customer’s machine;
● Basic UI and CLI;
● Basic reputation system;
● Implementing
Blender and
LuxRender tasks.
Clay golem
There is a chance (...) that the evil spirit of chaos will take possession of the Clay Golem.
If this happens, the golem’s control will be lost and he will attack the nearest living creature.
Clay Golem has a big advantage over Brass Golem. Clay Golem includes the Tasks API and the Applications Registry, which allow Golem to make a multi-purpose solution for distributed computing.
Now developers have the means to integrate with Golem. However, this innovation may affect the stability and security of the system, so this version should be considered experimental and focused on early users and enthusiasts. Test your new ideas and solutions at this stage.
List of features offered:
● Basic Tasks API: an interface that allows the user to set simple tasks;
● Initial Transaction Structure model with hard-coded payment schemes;
● Redundant verification: verification scheme based on comparing the results of redundant calculations;
● Basic delegation of subtasks: a mechanism for more accurate distribution of subtasks;
● (+) Virtual machine support as a sandbox for computing;
● (+) Developer documentation explaining how to implement your own tasks on the Golem network;
● (++) Examples of the implementation of tasks: an example of the implementation of machine learning, the implementation of scientific problems, etc.
Stone Golem
The creators always retain control over the Stone Golems (...) unlike the Earthen.
Stone Golem will bring more security and stability, but will also improve the functionality already implemented in Clay Golem. An extended version of the Task API will be presented. The Application Registry will be complemented by a Certification Engine, which will create a
trust, community-managed network for applications. In addition, the Transaction Structure will create an environment that allows Golem to be used in a SaaS model.
The list of proposed functions:
● Complete Tasks API: an interface that allows users to set tasks;
● Application Registry: here developers publish applications that are ready to be launched on the Golem network;
● Transaction structure allowing selection of reward models for task templates;
● Basic Software Certification: a mechanism that allows users to whitelist and blacklist programs, creating a decentralized trust network;
● SaaS support: the ability to add support for proprietary software that can be used in tasks. Payments for task creators should also be implemented in the app;
● (+) Examples of SaaS tasks — use cases that show developers how to create tasks that are available in the SaaS model;
● (++) Golem Web Client: a web interface for Golem nodes as an alternative to the built-in GUI / console interface;
● (+++) Supplier control panel - provides statistics, graphics, as well as additional settings for suppliers;
Iron golem
Iron Golems are made of iron and are very strong. The magician who created them always keeps control of them.
Iron Golem is a golem that has passed many tests, it gives more freedom to developers, allowing them to create applications that use Internet access or applications that run outside of the sandbox. Of course, the decision to use applications with a higher level of risk will continue to remain with suppliers who rent out their equipment.
Iron Golem must be reliable, very resistant to attacks, stable and scalable.
It will also provide various tools for developers, greatly simplifying the creation of applications.
Finally, the Standard Golem Library will be implemented.
List of features offered:
● External communication channels: this allows Golem to use resources and interact with programs outside the Golem network;
● Direct posting mode: trusted mode for obviously “white” applications or protected environments, in which the Golem performs calculations outside of Docker / VM;
● Environmental Certification;
● Network dashboard - a publicly accessible website displaying basic Golem network statistics;
● (+) Additional security mechanism - tasks that use open communication channels or direct deployment mode are especially difficult to ensure security. Additional measures may be needed to ensure the security of such tasks for suppliers (for example, centralized audit oracles, special contracts or code monitoring programs can be implemented);
● (++) Golem Developer Kit: a set of diagnostic and test tools to simplify the creation of applications for Golem;
● (++) Reputation system: a reputation protocol that allows a node to effectively control network behavior;
● (++) Extended Transaction System: a system that automatically tries to match customers with suppliers in a way that is most beneficial for all participants;
● (+++) integration devp2p - changes in p2p and network protocols using the new version devp2p;
● (+++) MapReduce and topological sorting of tasks: adds the next level of abstraction, allowing users to set more general interdependent tasks;
● (+++) Golem Standard Library (Golem STD): independent of the programming language used, providing access to low-level components of the Golem core.
Special attention will be paid to the I / O functions that are used by tasks and subtasks.
Each supported programming language will be linked to Golem STD. This link will serve as a means of extending the standard library of the corresponding language (special extensions from developers of programming languages are also possible).
Using Golem STD, it is possible to automatically set a task, regardless of the operating system.
Golem STD will allow users to create Golem applications using different programming languages, which should significantly increase the number of possible use cases and simplify the task setting process.
Future implementations
Currently, numerous Ethereum DApps and future platforms are in development or at the alpha testing stage. We see great opportunities in this environment, not to mention solutions that can potentially be used as part of the Golem ecosystem, either directly or as extensions.
The possibility of integrating the following systems will be considered, and their implementation will depend on the release of the working version of the Golem and the complexity of development:
● Payment solutions based on P2P routing and transactions, such as Raiden or multilateral payment channels ;
● External decentralized identification services, for example, uPort ;
● External solutions for verification of tasks or reputation, for example TrueBit ;
● External storage solutions, such as FileCoin, Swarm.
Crowdfunding
Golem crowdfunding and token release are organized on smart contracts for Ethereum.
Participants wishing to support the development of the Golem project can do this by sending a broadcast to a specific account.
By doing so, they create GNT tokens (Golem Network Tokens) at a rate of 1000 GNT per 1 ETH.
The participant must send a broadcast to this account after the start of crowdfunding (StartBlock).
Crowdfunding ends when an EndBlock is created, or when the amount of incoming air reaches its maximum.
Crowdfunding Summary
* Minimum funding for crowdfunding contract implementation. If minimum funding is not reached, a refund will be made on a separate contract.
, :
● - :
golem.network
● Twitter:
twitter.com/golemproject
● Slack:
golemproject.slack.com (
)
● :
blog.golemproject.net
● Reddit:
reddit.com/r/golemproject
, ETH, . , , .
On the project’s web page, you will also find a detailed guide on how to participate in crowdfunding, using an Ethereum wallet or Parity.
Crowdfunding is implemented as a smart contract using several simple parameters:
● Golem Factory GmbH: controls the smart contract and the address at which ETH will be received (this is the multisig address);
● The percentage of pre-allocated tokens is 18% (6% - Golem Team, 12% - Golem Factory GmbH);
● StartBlock, EndBlock: these block numbers indicate the beginning and end of crowdfunding;
● maxCap: maximum capitalization of crowdfunding, in GNT;
● GNT creation rate, in ETH.
A crowdfunding contract follows several important rules:
● , ETH -;
● ( maxCap, ), ETH ;
● ETH -, GNT;
● , ;
● :
○ ETH Golem Factory GmbH;
○ - 18% , , .. 82% , ;
○ - , , GNT .
. , Golem Factory GmbH .
GNT , , .
GNT-, Golem. GNT ., , : :
● — , - GNT ( ETH).
○ GNT ( ). , .
○ , ( , - ).
● — , GNT .
○ , - GNT-, Golem
Factory GmbH, .
○ , GNT, Golem Factory GmbH , MigrationAgent, GNT ( ).
GNT , MigrationAgent.migrateTokens GNT .
○ MigrationAgent , .
.
Migration should be used if at some point it turns out that for some reason (for example, changes in Ethereum or changes in Golem design) a token update is required. The update can be done by token holders and cannot be carried out by Golem Factory GmbH.
Budget and funding The
broadcast collected during the crowdfunding will be used by Golem Factory GmbH in accordance with the roadmap presented above.
The crowdfunding code implies that the level of project financing can be any between the minimum and maximum funding (capitalization).
If the required level of capitalization is reached, the roadmap must be fully implemented.
Golem should be considered as a research project using advanced technology.
The progress that we have already made in the work on the alpha version of Brass Golem confirms the correctness of our ideas presented in this document, but we understand that there is a lot of work ahead.
The Golem team is ready to fulfill all of its commitments regarding the technologies presented in this document, but ultimately it all depends on the success of crowdfunding.
Under the “minimal funding” scenario, the end result is a working Iron Golem with functionality that enables the creation of a decentralized computing power market, as well as the simplest tools for developers to integrate their own programs into the Golem network.
, , .
« » Iron Golem'a, , Web 3.0.
, , , DApps .
, Golem , .
/
. , 20 ( ) 4 .
— , , .
— , .
- ( : ). .
Community support and expansion activities are strictly linked to the Golem expansion plan.
It includes both communication and marketing tools to attract new communities to the Golem, as well as support (funding or co-financing) third-party integration with the Golem.
The events will be mainly focused on attracting customers to ensure the growth of the number of integrated solutions that are actively used by Golem network members.
The category of additional technologies includes the costs of external technologies on which the Golem depends. Most likely, own development of technologies necessary for Golem will be financed.
Contingency Fund calculated as 10% of the total budget (5% with minimal funding).
'Viggith'
.,
,
,
P2P
'chfast'
Ethereum
, .
, , , , , , Ethereum, Hydrachain
Morfa .
.
Ethereum , - Ethereum (EVM).
PS ( ..) , .. . — . — , . — . .