未验证 提交 e74b0282 编写于 作者: G Greg Lee 提交者: GitHub

Merge pull request #3607 from EOSIO/constitution

update constitution
# Action - `{{ buyrambytes }}`
This Contract is legally binding and can be used in the event of a dispute. Disputes shall be settled through the standard arbitration process established by EOS.IO.
### Description
The `{{ buyrambytes }}` action...
### Inputs and Input Types
The `{{ buyrambytes }}` action requires the following `inputs` and `input types`:
This action will attempt to reserve about {{bytes}} bytes of RAM on behalf of {{receiver}}.
| Action | Input | Input Type |
|:--|:--|:--|
| `{{ buyrambytes }}` | `{{ payerVar }}`<br/>`{{ receiverVar }}`<br/>`{{ bytesVar }}` | `{{ account_name }}`<br/>`{{ account_name }}`<br/>`{{ uint32 }}` |
{{buyer}} authorizes this conrtact to transfer sufficient SYS tokens to buy the RAM based upon the current price as determined by the market maker algorithm.
As an authorized party I {{ signer }} wish to buy {{ bytesVar }} bytes of RAM at the current price using the funds of {{ payerVar }} with the RAM to be owned by and be the property of {{ receiverVar }}.
{{buyer}} accepts that a 0.5% fee will be charged on the SYS spent and that the actual RAM received may be slightly less than requested due to the approximations necessary to enable this service.
{{buyer}} accepts that a 0.5% fee will be charged if and when they sell the RAM received.
{{buyer}} accepts that rounding errors resulting from limits of computational precision may result in less RAM being allocated.
{{buyer}} acknowledges that the supply of RAM may be increased at any time up to the limits of off-the-shelf computer equipment and that this may result in RAM selling for less than purchase price.
{{buyer}} acknowledges that the price of RAM may increase or decrease over time according to supply and demand.
{{buyer}} acknowledges that RAM is non-transferrable.
{{buyer}} acknowledges RAM currently in use by their account cannot be sold until it is freed and that freeing RAM may be subject to terms of other contracts.
All disputes arising from this contract shall be resolved in the EOS Core Arbitration Forum.
This Constitution is a multi-party contract entered into by the Members by virtue of their use of this blockchain.
# Article I - No Initiation of Violence
Members shall not initiate violence or the threat of violence against another Member.
# Article II - No Perjury
Members shall be liable for losses caused by false or misleading attestations and shall forfeit any profit gained thereby.
# Article III - Rights
The Members grant the right of contract and of private property to each other, therefore no property shall change hands except with the consent of the owner, by a valid Arbitrator’s order, or via community referendum. This Constitution creates no positive rights for or between any Members.
# Article IV - No Vote Buying
No Member shall offer nor accept anything of value in exchange for a vote of any type, nor shall any Member unduly influence the vote of another.
# Article V - No Fiduciary
No Member nor SYS token holder shall have fiduciary responsibility to support the value of the SYS token. The Members do not authorize anyone to hold assets, borrow, nor contract on behalf of SYS token holders collectively. This blockchain has no owners, managers or fiduciaries; therefore, no Member shall have beneficial interest in more than 10% of the SYS token supply.
# Article VI - Restitution
Each Member agrees that penalties for breach of contract may include, but are not limited to, fines, loss of account, and other restitution.
# Article VII - Open Source
Each Member who makes available a smart contract on this blockchain shall be a Developer. Each Developer shall offer their smart contracts via a free and open source license, and each smart contract shall be documented with a Ricardian Contract stating the intent of all parties and naming the Arbitration Forum that will resolve disputes arising from that contract.
# Article VIII - Language
Multi-lingual contracts must specify one prevailing language in case of dispute and the author of any translation shall be liable for losses due to their false, misleading, or ambiguous attested translations.
# Article IX - Dispute Resolution
All disputes arising out of or in connection with this Constitution shall be finally settled under the Rules of Arbitration of the International Chamber of Commerce by one or more arbitrators appointed in accordance with the said Rules.
# Article X - Choice of Law
Choice of law for disputes shall be, in order of precedence, this Constitution and the Maxims of Equity.
# Article XI - Amending
This Constitution and its subordinate documents shall not be amended except by a vote of the token holders with no less than 15% vote participation among tokens and no fewer than 10% more Yes than No votes, sustained for 30 continuous days within a 120 day period.
# Article XII - Publishing
Members may only publish information to the Blockchain that is within their right to publish. Furthermore, Members voluntarily consent for all Members to permanently and irrevocably retain a copy, analyze, and distribute all broadcast transactions and derivative information.
# Article XIII - Informed Consent
All service providers who produce tools to facilitate the construction and signing of transactions on behalf of other Members shall present to said other Members the full Ricardian contract terms of this Constitution and other referenced contracts. Service providers shall be liable for losses resulting from failure to disclose the full Ricardian contract terms to users.
# Article XIV - Severability
If any part of this Constitution is declared unenforceable or invalid, the remainder will continue to be valid and enforceable.
# Article XV - Termination of Agreement
A Member is automatically released from all revocable obligations under this Constitution 3 years after the last transaction signed by that Member is incorporated into the blockchain. After 3 years of inactivity an account may be put up for auction and the proceeds distributed to all Members according to the system contract provisions then in effect for such redistribution.
# Article XVI - Developer Liability
Members agree to hold software developers harmless for unintentional mistakes made in the expression of contractual intent, whether or not said mistakes were due to actual or perceived negligence.
# Article XVII - Consideration
All rights and obligations under this Constitution are mutual and reciprocal and of equally significant value and cost to all parties.
# Article XVIII - Acceptance
A contract is deemed accepted when a member signs a transaction which incorporates a TAPOS proof of a block whose implied state incorporates an ABI of said contract and said transaction is incorporated into the blockchain.
# Article XIX - Counterparts
This Constitution may be executed in any number of counterparts, each of which when executed and delivered shall constitute a duplicate original, but all counterparts together shall constitute a single agreement.
# eosio.system regproducer
This Ricardian contract for the system action *regproducer* is legally binding and can be used in the event of a dispute.
I, {{producer}}, hereby nominate myself for consideration as an elected block producer.
## regproducer
( const account_name producer
, const public_key& producer_key
, const std::string& url
, uint16_t location );
If {{producer}} is selected to produce blocks by the eosio contract, I will sign blocks with {{producer_key}} and I hereby attest that I will keep this key secret and secure.
_Intent: create a producer-config and producer-info object for 'producer'_
If {{producer}} is unable to perform obligations under this contract I will resign my position by resubmitting this contract with the null producer key.
As an authorized party I {{ signer }} wish to register a producer candidate named {{ account_name }} and identified with {{ producer_key }} located at {{ url }} and located at {{ location }}.
I acknowledge that a block is 'objectively valid' if it conforms to the deterministic blockchain rules in force at the time of its creation, and is 'objectively invalid' if it fails to conform to those rules.
All disputes arising from this contract shall be resolved in the EOS Core Arbitration Forum.
{{producer}} hereby agrees to only use {{producer_key}} to sign messages under the following scenarios:
1. proposing an objectively valid block at the time appointed by the block scheduling algorithm
2. pre-confirming a block produced by another producer in the schedule when I find said block objectively valid
3. confirming a block for which {{producer}} has received 2/3+ pre-confirmation messages from other producers
I hereby accept liability for any and all provable damages that result from my:
1. signing two different block proposals with the same timestamp with {{producer_key}
2. signing two different block proposals with the same block number with {{producer_key}
3. signing any block proposal which builds off of an objectively invalid block
4. signing a pre-confirmation for an objectively invalid block
5. signing a confirmation for a block for which I do not possess pre-confirmation messages from 2/3+ other producers
I hereby agree that double-signing for a timestamp or block number in concert with 2 or more other producers shall automatically be deemed malicious and subject to a fine equal to the past year of compensation received and imediate disqualification from being a producer, and other damages. An exception may be made if {{producer}} can demonstrate that the double-signing occured due to a bug in the reference software; the burden of proof is on {{producer}}.
I hereby agree not to interfere with the producer election process. I agree to process all producer election transactions that occur in blocks I create, to sign all objectively valid blocks I create that contain election transactions, and to sign all pre-confirmations and confirmations necessary to facilitate transfer of control to the next set of producers as determined by the system contract.
I hereby acknowledge that 2/3+ other elected producers may vote to disqualify {{producer}} in the event {{producer}} is unable to produce blocks or is unable to be reached, according to criteria agreed to among producers.
If {{producer}} qualifies for and chooses to collect compensation due to votes received, {{producer}} will provide a public endpoint allowing at least 100 peers to maintain synchronization with the blockchain and/or submit transactions to be included. {{producer}} shall maintain at least 1 validating node with full state and signature checking and shall report any objectively invalid blocks produced by the active block producers. Reporting shall be via a method to be agreed to among producers, said method and reports to be made public.
The community agrees to allow {{producer}} to authenticate peers as necessary to prevent abuse and denial of service attacks; however, {{producer}} agrees not to discriminate against non-abusive peers.
I agree to process transactions on a FIFO best-effort basis and to honestly bill transactions for measured execution time.
I {{producer}} agree not to manipulate the contents of blocks in order to derive profit from:
1. the order in which transactions are included
2. the hash of the block that is produced
I, {{producer}}, hereby agree to disclose and attest under penalty of perjury all ultimate beneficial owners of my company who own more than 1%.
I, {{producer}}, hereby agree to cooperate with other block producers to carry out our respective and mutual obligations under this agreement, including but not limited to maintaining network stability and a valid blockchain.
I, {{producer}}, agree to maintain a website hosted at {{url}} which contains up-to-date information on all disclosures required by this contract.
I, {{producer}}, agree to set {{location}} such that {{producer}} is scheduled with minimal latency between my previous and next peer.
I, {{producer}}, agree to maintain time synchronization within 10 ms of global atomic clock time, using a method agreed to among producers.
I, {{producer}}, agree not to produce blocks before my scheduled time unless I have received all blocks produced by the prior producer.
I, {{producer}}, agree not to publish blocks with timestamps more than 500ms in the future unless the prior block is more than 75% full by either CPU or network bandwidth metrics.
I, {{producer}}, agree not to set the RAM supply to more RAM than my nodes contain and to resign if I am unable to provide the RAM approved by 2/3+ producers, as shown in the system parameters.
## Constitution
This agreement incorporates the current blockchain constitution:
{{constitution}}
# Action - `{{ setcode }}`
This Contract is legally binding and can be used in the event of a dispute.
### Description
The intention of the `{{ setcode }}` action is to load a smart contract into memory and make it available for execution.
### Inputs and Input Types
The `{{ setcode }}` action requires the following `inputs` and `input types`:
| Action | Input | Input Type |
|:--|:--|:--|
| `{{ setcode }}` | `{{ accountVar }}`<br/>`{{ vmtypeVar }}`<br/>`{{ vmversionVar }}`<br/>`{{ codeVar }}` | `{{ account_name }}`<br/>`{{ uint8 }}`<br/>`{{ uint8 }}`<br/>`{{ bytes }}` |
This action updates the code that will run in response to delivered actions. It may be performed by the account upon which the code is being deployed.
As an authorized party I {{ signer }} wish to store in memory owned by {{ accountVar }} the code {{ codeVar }} which shall use VM Type {{ vmtypeVar }} version {{ vmversionVar }}.
By deploying this code you certify that:
All disputes arising from this contract shall be resolved in the EOS Core Arbitration Forum.
1. the code is not malicious
2. you are authorized to perform the actions automated by the code
3. the code is consistant with the ABI deployed and intent of the contract
4. updates to the code are consistant with the prior code's intent
# Action - `{{ setram }}`
This Contract is legally binding and can be used in the event of a dispute.
### Description
The intent of the `{{ setram }}` action is ...
### Input and Input Type
The `{{ setram }}` action requires the following `input` and `input type`:
| Action | Input | Input Type |
|:--|:--|:--|
| `{{ setram }}` | `{{ max_ram_sizeVar }}` | `{{ uint64 }}` |
As an authorized party I {{ signer }} wish to UNKNOWN
This action sets the total RAM that may be allocated for use by accounts. It may only increase.
All disputes arising from this contract shall be resolved in the EOS Core Arbitration Forum.
Only the controller of this contract may update the RAM availablity. If the owner is a multi-sig collective, the
parties to the multi-sig each certify that off-the-shelf machines exist capable of supporting the available RAM.
# Action - `{{ unregprod }}`
This Contract is legally binding and can be used in the event of a dispute.
### Description
The `{{ unregprod }}` action...
......
## Transfer Terms & Conditions
I, {{from}}, certify the following to be true to the best of my knowledge:
1. I know the person(s) who transferred {{quantity}} to '{{from}}'.
2. I know the owner(s) of the '{{to}}' account.
3. I certify that {{quantity}} is not the proceeds of fraudulent or violent activities.
4. I certify that, to the best of my knowledge, {{to}} is not supporting initiation of violence against others.
5. I have disclosed any contractual terms & conditions with respect to {{quantity}} to {{to}}.
I understand that funds transfers are not reversible after the {{transaction.delay}} seconds or other delay as configured by {{from}}'s permissions.
If this action fails to be irreversibly confirmed after receiving goods or services from '{{to}}', I agree to either return the goods or services or resend {{quantity}} in a timely manner.
# The Block Producer Agreement
As a Block Producer (BP), I/we promise to:
1. Produce exactly the authorized number of blocks faithfully, accurately, at the appointed time in the rotation
2. Never produce and sign two or more blocks with the same block height or block interval
3. Never censor governance related transactions such as votes or Arbitration related transactions
4. Only add "good" transactions from the transaction pool to the block
5. Make a good faith effort to include as many "good" transactions as possible to the block without undue discrimination
6. Exclude "bad" transactions from the block, and publish why they were excluded
7. Show no favoritism among transactions, ordering them in a FIFO fashion or using some other ordering mechanism that is declared publicly in advance, including the default ordering provided by the unmodified software
8. Refrain from using my/our superior information to "front run" transactions nor enabling anyone else to “front run”
9. Accept as valid any Arbitrator’s order that’s
1. signed by an Arbitrator
2. that the chain shows was assigned to a Case,
3. such that the order affects only the Accounts named in that Case, and
4. the Arbitrator is in good standing with their Arbitration Forum, and
5. the original Transaction that gave rise to the Case names that Arbitration Forum as the venue for dispute resolution
10. Only freeze accounts when authorized to do so by a valid Arbitrator’s order
11. Always file a dispute against myself/ourselves after taking initiative to act on an emergency
12. Provide at least four (4) public endpoints running full nodes (the Minimum Configuration)
13. Not requesting my/our daily Vote Bonus pay on days when I/we don’t have the Minimum Configuration running, and repaying any Vote Bonus income collected while the Minimum Configuration wasn’t running
14. Disclosing all ownership of my/our organization greater than 10%
15. Not sharing more than 10% ownership with another BP
This constitution is a multi-party contract entered into by the Members by virture of their use of this blockchain.
# Article I
Members shall not initiate violence or the threat of violence against another Member.
# Article II
No Member of this blockchain shall make knowingly make false or misleading attestations nor profit thereby nor thereby cause loss to others.
# Article III
The Members grant the right of contract and of private property to each other, therefore no property shall change hands except with the consent of the owner, by a lawful Arbitrator’s order, or community referendum.
# Article IV
The Members agree to resolve disputes through the blockchain’s arbitration process, or any other process that the parties to a transaction may mutually agree.
# Article V
No Member shall offer nor accept anything of value in exchange for a vote of any type, nor shall any Member unduly influence the vote of another.
# Article VI
No Member nor SYS token holder shall have fiduciary responsability to support the value of the SYS token. The Members do not authorize anyone to hold assets, borrow, nor contract on behalf of SYS token holders collectively. This blockchain has no owners, managers or fiduciaries; therefore, no Member shall have beneficial interest in more than 10% of the SYS token supply.
# Article VII
Each Member agrees that penalties for violations may include, but are not limited to, fines, account freezing, and restitution.
# Article VIII
No Member shall serve as a Block Producer who has not agreed in advance to the Block Producer Agreement provided by the Members of this blockchain.
# Article IX
Each Member who makes available a smart contract on this blockchain shall be a Developer. Each Developer shall offer their smart contracts via an free and open source license, and each smart contract shall be documented with a Ricardian Contract stating the intent of all parties and naming the Arbitration Forum that will resolve disputes arising from that contract.
# Article X
Multi-lingual contracts must specify one prevailing language in case of dispute and the author is liable for losses due to ambiguity of translation.
# Article XI
This Constitution creates no positive rights for or between any Members.
# Article XII
All disputes arising out of or in connection with this constitution shall be finally settled under the Rules of Arbitration of the International Chamber of Commerce by one or more arbitrators appointed in accordance with the said Rules.
# Article XIII
This Constitution and its subordinate documents shall not be amended except by a vote of the Token Holders with no less than 15% vote participation among tokens and no fewer than 10% more Yes than No votes, sustained for 30 continuous days within a 120 day period.
# Article XIV
Choice of law for disputes shall be, in order of precedence, this Constitution and the Maxims of Equity.
......@@ -73,7 +73,7 @@ std::unique_ptr<wasm_instantiated_module_interface> binaryen_runtime::instantiat
table.resize(module->table.initial);
for (auto& segment : module->table.segments) {
Address offset = ConstantExpressionRunner<TrivialGlobalManager>(globals).visit(segment.offset).value.geti32();
FC_ASSERT(offset + segment.data.size() <= module->table.initial);
FC_ASSERT( uint64_t(offset) + segment.data.size() <= module->table.initial);
for (size_t i = 0; i != segment.data.size(); ++i) {
table[offset + i] = segment.data[i];
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册