Skip to content
This repository has been archived by the owner on Oct 31, 2023. It is now read-only.

0.22 concent mainnet #4961

Merged
merged 7 commits into from
Dec 3, 2019
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
372 changes: 368 additions & 4 deletions golem/CONCENT_TERMS.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,371 @@
<h5><u>Disclaimer</u></h5>
<h4><u>Terms of Use of Concent Service</u></h4>
<p><em>Last Update: June 2019.</em></p>
<p>
These Terms of Use of Concent Service (hereinafter the “Terms of Use”)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd make sure this is a simple ascii text file, not utf8. So all should be changed to ".

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and to '

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yup, detected by the test suite and fixed already :)

shall serve as an agreement that sets forth the terms and conditions which
will govern the use and participation in the Golem Concent Service
(hereinafter the “Concent Service”).
</p>
<p>
Concent Service is an optional network service built for the purpose of
improving the integrity and security of the computational power marketplace
(hereinafter the “Platform”) provided by Golem Factory GmbH
(hereinafter the “Golem Factory”).
</p>
<p>
By selecting the utilization of the Concent Service you shall also have
indicated your acceptance of these Terms of Use, the Golem Factory GmbH
Disclaimer, the Golem Factory GmbH User Interaction Guidelines and the
Golem Factory GmbH Privacy Policy. All terms herein shall have the
respective meaning as set forth in the User Interaction Guidelines,
which can be found here:
<a href="https://golem.network/privacy/">https://golem.network/privacy/</a>
and here:
<a href="https://golem.network/user-interaction-guidelines/">
https://golem.network/user-interaction-guidelines/</a>.
If you are unwilling to agree to these Terms of Use,
the usage of the Concent Service shall be discontinued.
</p>
<p>
Agreement to the Terms of Use bonds the user as follows:
</p>

<h5>I. The Golem Project</h5>
<p>
Golem Factory has conceptualized and developed a global, open source,
decentralized supercomputer that anyone can access
(hereinafter the “Golem Network”). The Golem Network enables users who
are seeking additional computing power (“Requestors”) to rent it from users
with idle resources (“Providers”; together the “Users” and/or “You”).
The contractual relationship arises only between the Provider and the
Requestor. Golem Factory does not form any part of the relationship between
the Provider and/or Requestor exchanging computational power.
Concent Service is an additional service of the Platform, with its own
relationship between parts (Requestors, Providers) according to the rules
and regulations set out in these Terms of Use.
</p>
<p>
By using the Golem Network along with the Concent Service, you represent
and warrant that you are of the legal age of majority in your jurisdiction.
This is a non-waiverable requirement to access the Golem Network and enter
into arrangements as Provider or Requestor. You further represent that you
are legally permitted to use the Golem Network in your jurisdiction
including owning cryptographic tokens of value and interacting with
the Golem Network in any way. You further represent you are responsible
for ensuring a full compliance with the applicable laws in your
jurisdiction and acknowledge that Golem Factory is not liable
for your compliance and/or failure to comply with such laws.
</p>

<h5>II. The Concent Service</h5>
<p>
Concent Service is an additional feature that Golem Factory has developed
and makes available to all Users of the Golem Network who wish to enhance
the integrity and processes of the Golem Network.
</p>
<p>
The Concent Service is acting as an Oracle with a software-based validation
method and a fully automated triggering system of payments according to
predefined rules as set out in these Terms of Use. The automated asset
allocation is based on a smart contract built on Ethereum (hereinafter
the “GNT Deposit”) as further described below. Golem Factory has no direct
control or access to the funds held in the GNT Deposit.
</p>
<p>
The goal of the Concent Service is to enforce the integrity and security of
the Golem Network by securing the execution of payments and the delivery of
results of assigned computations for the Users of the Golem Network who
have opted in on the Concent Service. Golem Network nodes can, and in
certain circumstances will verify whether other nodes in the network have
pledged the required amounts to GNT Deposit and only agree to work with
them if that is indeed the case.
</p>
<p>
If Users of the Golem Network who utilize the Concent Service interact in
an unobstructed way, there will be no necessity for arbitrage through the
Concent Service. The Concent Service only intervenes in User interactions
in the Golem Network under predefined circumstances as set out in these
Terms.
</p>
<p>
The Users acknowledge that a 100% availability of the Concent Service is
technically not possible. Golem Factory acts to the best of its power to
make Concent Service available at all times. The maintenance or security
concerns, as well as other force majeure events beyond Golem Factory’s
control can lead to short-term disruptions or temporary suspension of the
Concent Service. Golem Factory excludes, as far as legally permissible, the
liability for all damages in connection with business interruptions.
</p>

<h5>III. Opt-In</h5>
<p>
The Concent Service is non-mandatory and/or fully optional. Users may
choose to opt-in and comply to these Terms of Use. The Concent Service will
only intervene if necessary. The Providers and Requestors each have the
possibility to opt-in to the Concent Service, if they meet the following
requirements:
</p>
<ul>
<li>Accept these Terms of Use</li>
<li>
Have a minimum amount of GNT available on the account,
in order to submit a deposit to the Concent Service.
The minimum deposit fee shall be a minimum of twice the
cost of a single subtask/job that was commissioned by
a Requestor to a respective Provider.
</li>
<li>
Have a minimum amount of ETH to cover the Ethereum transaction fee
(also known as gas cost) when submitting the deposit.
</li>
</ul>
<p>
By opting-in to the Concent Service, each User accepts and agrees these
Terms of Use.
</p>
<p>
As the Concent Service is an autonomous Oracle, Golem Factory has no direct
control over the funds pledged to GNT Deposit smart contract by Golem
Network nodes. Where required and only within the scope as described
hereinafter, Concent Service can only enforce a payment of the amount
pledged to the GNT Deposit by the Users of the Golem Network who have
opted-in and the funds can only be transferred between the two parties
within the boundaries of specific agreements between them and strictly
under the circumstances described hereinafter. Alternatively, any funds
not used up by the arbitrage can be transferred back to the Golem Network
node that made the deposit while observing the enforced delay.
</p>
<p>
Concent Services is not guaranteed to be free of charge. A small amount
will be due, if Concent Service is requested by the Parties for additional
verification of the results rendered (see also IV. e). Concent Service can
charge the respective fee directly to the involved parties through
GNT Deposit which can execute such transactions. If needed, Concent Service
may also charge a small communication fee for each case it handles.
You hereby consent to such transactions to be executed on your behalf.
</p>
<p>
Golem Factory is not liable for any contact between the Users outside of
the Scope of Concent Service. Golem Factory is not liable for any breach
of duty arising from the contracts concluded between the Users (including
non-fulfillment of a contract) and Golem Factory cannot be held responsible
for the quality of any work results / computations ordered by a Requestor
through the Golem Network. By acceptance of these Terms of Use, all Users
acknowledge that Golem Factory only provides the technical applications to
enable Requestors and Providers to interact with the Concent Service.
</p>

<h5>IV. Services</h5>
<p>
The following functions form part of the Concent Service and each User of
the Concent Service consents to these functions. By accepting the Terms of
Use and actively opting-in to Concent Service, the User agrees that the
Concent Service may perform these functions individually or in combination.
</p>
<p>
Golem nodes - Providers and Requestors alike - communicate with the Concent
Service using its communication endpoints to send and receive messages. In
order to properly react when any Concent functions are triggered, both
nodes must periodically poll the Concent’s receive endpoint to verify if
there are any messages waiting for their reaction. Failure to receive and
respond to a message waiting in the Concent Service’s queue within a time
window of the given Concent scenario when the reaction of the particular
node is required constitutes a failure of said scenario on given node’s
end.
</p>
<h6>a. Enforcement of reports on the completion of a task</h6>
<p>
Concent Service can assist Providers who are unable to report the
successful completion of an assigned task to the Requestor through the
usual peer-to-peer communication channel.
</p>
<p>
In order to do that, the Concent Service requires the respective Requestor
to receive the forced-report from the Concent and issue an acknowledgment
to the Concent. The acknowledgement is then made available to the Provider
and can in turn be used by the Provider to request payment from Requestor
later.
</p>
<p>
Alternatively, if the Requestor fails to respond to the awaiting force
report message, Concent Service issues the proof of this failure to the
Provider which allows the Provider to seek payment from the Requestor
nevertheless. Should the Requestor subsequently refuse to pay the Provider
for this task, the proof can be submitted to the Concent Service and the
service will honor its own proof to enforce payment.
</p>
<h6>b. Enforcement of download of results</h6>
<p>
If any problems should arise while downloading results of computational
tasks from Provider, Requestor may persist that the Provider uploads the
results to the Concent Service. After such successful upload, Concent
Service will verify the integrity of the results and make the results
available for the respective Requestor.
</p>
<p>
However, should the upload to the Concent Service fail, Concent Service
will provide the Requestor a corresponding proof of failure of the upload
process and Requestor may use such proof to automatically issue a result
rejection when asked about the verification verdict.
</p>
<h6>c. Enforcement of acceptance of results</h6>
<p>
Should a Provider not receive a response regarding the results of the
computational task they performed on behalf of the Requestor, after the
results are delivered to the Requestor (either through the normal
peer-to-peer communications channels or through Concent Service),
a Provider can address Concent Service to acquire the verdict.
The Concent Service will demand the verdict from the Requestor in turn
and such verdict (whether it’s an acceptance or rejection of the results)
will be relayed back to the Provider.
</p>
<p>
Should the Requestor remain inactive and not react to the inquiry of the
Concent Service, such inactivity will be assumed as acceptance of the
results and the Concent Service will automatically allocate the outstanding
payment to the Provider using the Requestors Concent Service deposit.
</p>
<h6>d. Enforcement of payment</h6>
<p>
After completion of a computational task the Requestor has the appropriate
time to make the payment to the Provider (Up to 24h). Should a Requestor
not trigger the payment within the given timeframe, Provider can approach
Concent Service in order to force payment using the Requestor’s deposit.
Concent Service will then search the Ethereum Blockchain to verify if all
enumerated payments have been completed between the Requestor and Provider.
Should no matching transaction be identified or should the sum of
identified transactions be lower than the sum of claims, Concent Service
will then enforce the payment from the Requestor’s deposits to the Provider
using the GNT Deposit smart contract.
</p>
<h6>e. Additional verification</h6>
<p>
Should a Requestor reject a Provider’s result of a computational task,
Provider has the possibility to verify the results with Concent Service
acting as objective party. In order to make use of such service, Provider
must make a deposit to Concent Service in the amount of minimum twice the
cost of a single subtask/job that was commissioned by the Requestor to the
respective Provider. When both parties have made their deposit and Concent
Service has been provided the original request from the Requestor and the
delivered result in question from Provider, Concent Service will run a
verification of the results and thus verify if the rejection was justified.
</p>
<p>
If Concent Service should deem the rejection of the results unjustified,
Concent Service will force payment of the adequate amount from Requestor’s
deposit to Provider and will charge an additional cost on top of the
original claim to cover its own verification fee.
</p>
<p>
Should however, Concent Service come to the conclusion that the results
have been legitimately rejected, Concent Service will use the Provider’s
deposit to cover the fee for the verification.
</p>
<p>
In both cases, the verification fee shall be the cost of a single
subtask/job that was commissioned by the Requestor to the respective
Provider.
</p>
<p>
You hereby acknowledge that the used verification method of
non-deterministic computational results is probabilistic and as such,
even when prepared with care, might not work correctly with all use cases
and/or input data. Golem makes every reasonable effort to provide the
correct functioning of such verifications.
</p>

<h5>V. Disclaimer of Warranty</h5>
<p>
THERE IS NO WARRANTY FOR THE UNDERLYING SOFTWARE, TO THE EXTENT PERMITTED
BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING GOLEM PROVIDES
THE SOFTWARE “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE
SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION. THE USERS ACKNOWLEDGE THAT
</p>

<h5>VI. Limitation of Liability</h5>
<p>
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
GOLEM, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE SOFTWARE AS
PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE OR THE
NON-PAYMENT OF A FEE ), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED
OF THE POSSIBILITY OF SUCH DAMAGES.
</p>

<h5>VII. Assumption of Risks of Cryptographic Systems and Currencies</h5>
<p>
By using the Golem Network and Concent Service in any way, you acknowledge
the inherent risks associated with cryptographic systems; and warrant that
you have an understanding of the usage and intricacies of native
cryptographic tokens, like GNT or ETH, smart contract based transactions
such as those that follow the Ethereum Token Standard and blockchain-based
software systems.
</p>
<p>
You understand that Ethereum and other blockchain technologies and
associated currencies or tokens are highly volatile due to many factors
including but not limited to adoption, speculation, technology and security
risks. You also acknowledge that the cost of transacting on such
technologies is variable and may increase at any time causing impact to any
activities taking place on the Ethereum blockchain. You acknowledge these
risks and represent that Golem cannot be held liable for such fluctuations
or increased costs.
</p>
<p>
You acknowledge that you are solely responsible for the process of selling
and buying GNT or ETH and that Golem does not offer any such service.
Golem cannot be held liable for any losses or damages of GNT, ETH or other
Cryptocurrencies resulting from the use of the services of any third-party
provider (i.e. exchanges).
</p>
<h5>
VIII. Assumption of Risk of Regulatory Actions in One or More Jurisdictions
</h5>
<p>
Golem Network and Ethereum could be impacted by one or more regulatory
inquiries or regulatory action, which could impede or limit the ability of
Golem to continue to develop, or which could impede or limit your ability
to access or use the Golem Network or Ethereum blockchain.
</p>
<p>
Golem endeavours to comply with all applicable laws, i.e. all legal
requests for information, and reserve the right to provide information,
including Project Information, to law enforcement personnel and other third
parties to answer inquiries, to respond to legal process, to respond to
the order of a court of competent jurisdiction and those exercising
the court’s authority and to protect the Golem Network and its Users.
</p>
<h5>IX. Indemnification</h5>
<p>
You agree to release and to indemnify, defend and hold harmless Golem and
its parents, subsidiaries, affiliates and agencies, as well as the
officers, directors, employees, shareholders and representatives of any of
the foregoing entities, from and against any and all losses, liabilities,
expenses, damages, costs (including attorneys’ fees and court costs) claims
or actions of any kind whatsoever arising or resulting from your use of
the Software, your violation of this Disclaimer, and any of your acts or
omissions that implicate publicity rights, defamation or invasion of
privacy. If you are obligated to indemnify Golem, Golem reserves the right,
at its own expense, to assume the exclusive defense and control of any
matter and, in such case, you agree to cooperate with Golem in the defense
of such matter.
</p>
<h5>X. Jurisdiction and Governing Law</h5>
<p>
Any dispute between the Users and Golem shall be submitted to the exclusive
jurisdiction of the competent Courts of Zug, Switzerland, with
the exclusion of any other jurisdiction or arbitration.
</p>
<p>
Concent Service is currently a testnet-only service at this moment.
This document will be updated with proper Terms of Service when we release
it for mainnet user.
This Disclaimer shall be governed by and construed and interpreted
in accordance with the substantive laws of Switzerland, excluding the Swiss
conflict of law rules. The United Nations Convention for the International
Sales of Goods ("Vienna Sales Convention") is excluded.
</p>
2 changes: 1 addition & 1 deletion golem/config/environments/mainnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def __init__(self):
}

os.environ[CONCENT_ENVIRONMENT_VARIABLE] = os.environ.get(
CONCENT_ENVIRONMENT_VARIABLE, 'disabled'
CONCENT_ENVIRONMENT_VARIABLE, 'main'
)

self.CONCENT_VARIANT = CONCENT_CHOICES[
Expand Down
Loading