Skip to content

Commit

Permalink
Merge pull request #104 from EOS-Mainnet/mainnet-1.4.3
Browse files Browse the repository at this point in the history
Merge from Mainnet-1.4.3
  • Loading branch information
jchung00 authored Dec 5, 2018
2 parents a503d4f + 17083dc commit 2fc5d1c
Show file tree
Hide file tree
Showing 20 changed files with 1,273 additions and 351 deletions.
20 changes: 20 additions & 0 deletions BP_Instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<h1>Important Information for Block Producers</h1>

This document is indented to contain the information a BPC need to know to build and connect.
This document assumes a working knowledge of the EOSIO software

Node OS Version (nodeos -v): 3679913985
Github: https://github.com/EOS-Mainnet/eos
Tag: mainnet-1.0.2.2


Peer List Location: https://docs.google.com/spreadsheets/d/1K_un5Vak3eDh_b4Wdh43sOersuhs0A76HMCfeQplDOY/edit#gid=0
Genesis: https://github.com/EOS-Mainnet/eos/blob/launch-rc-1.0.2/mainnet-genesis.json
Chain ID: aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906

Status: Chain is frozen, please mesh and verify chain contents ASAP. Report findings to EMLG channel

<h3>Schedule</h3>
01:00 UTC Sunday (Jun 10) — EMLG meeting, check up, verify number of peers

13:00 UTC Sunday (Jun 10) — ELMG Meeting to agree on validation, if validation is good unfreeze
7 changes: 7 additions & 0 deletions contracts/eosio.system/eosio.system-bidname-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Action - `{{ bidname }}`

## Description

The `{{ bidname }}` action places a bid on a premium account name, in the knowledge that the high bid will purchase the name.

As an authorized party I {{ signer }} wish to bid on behalf of {{ bidder }} the amount of {{ bid }} toward purchase of the account name {{ newname }}.
16 changes: 16 additions & 0 deletions contracts/eosio.system/eosio.system-buyram-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Action - `{{ buyram }}`

### Description

This action will attempt to reserve about {{quant}} worth of RAM on behalf of {{receiver}}.

{{buyer}} authorizes this contract to transfer {{quant}} to buy RAM based upon the current price as determined by the market maker algorithm.

{{buyer}} accepts that a 0.5% fee will be charged on the amount spent and that the actual RAM received may be slightly less than expected 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.

16 changes: 16 additions & 0 deletions contracts/eosio.system/eosio.system-buyrambytes-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Action - `{{ buyrambytes }}`

### Description

This action will attempt to reserve about {{bytes}} bytes of RAM on behalf of {{receiver}}.

{{buyer}} authorizes this contract to transfer sufficient EOS tokens to buy the RAM based upon the current price as determined by the market maker algorithm.

{{buyer}} accepts that a 0.5% fee will be charged on the EOS 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-transferable.
{{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.

7 changes: 7 additions & 0 deletions contracts/eosio.system/eosio.system-canceldelay-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Action - `{{ canceldelay }}`

### Description

The `{{ canceldelay }}` action cancels an existing delayed transaction.

As an authorized party I {{ signer }} wish to invoke the authority of {{ canceling_auth }} to cancel the transaction with ID {{ trx_id }}.
7 changes: 7 additions & 0 deletions contracts/eosio.system/eosio.system-claimrewards-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Action - `{{ claimrewards }}`

## Description

The `{{ claimrewards }}` action allows a block producer (active or standby) to claim the system rewards due them for producing blocks and receiving votes.

As an authorized party I {{ signer }} wish to have the rewards earned by {{ owner }} deposited into the {{ owner }} account.
61 changes: 61 additions & 0 deletions contracts/eosio.system/eosio.system-clause-constitution-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
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. Lawful prosecution of crimes with the goal of preserving life, liberty and property does not constitute initiation of violence.

# 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 EOS token holder shall have fiduciary responsibility to support the value of the EOS token. The Members do not authorize anyone to hold assets, borrow, nor contract on behalf of EOS token holders collectively. This blockchain has no owners, managers or fiduciaries; therefore, no Member shall have beneficial interest in more than 10% of the EOS 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 Dispute Resolution of the EOS Core Arbitration Forum 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.

# Article XX - Interim Constitution
This constitution is interim and is intended to remain in effect until a permanent constitution is written and ratified in a referendum.
15 changes: 15 additions & 0 deletions contracts/eosio.system/eosio.system-delegatebw-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Action - `{{ delegatebw }}`

## Description

The intent of the `{{ delegatebw }}` action is to stake tokens for bandwidth and/or CPU and optionally transfer ownership.

As an authorized party I {{ signer }} wish to stake {{ stake_cpu_quantity }} for CPU and {{ stake_net_quantity }} for bandwidth from the liquid tokens of {{ from }} for the use of delegatee {{ to }}.

{{if transfer }}

It is {{ transfer }} that I wish these tokens to become immediately owned by the delegatee.

{{/if}}

As signer I stipulate that, if I am not the beneficial owner of these tokens, I have proof that I’ve been authorized to take this action by their beneficial owner(s).
7 changes: 7 additions & 0 deletions contracts/eosio.system/eosio.system-newaccount-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Action - `{{ newaccount }}`

### Description

The `{{ newaccount }}` action creates a new account.

As an authorized party I {{ signer }} wish to exercise the authority of {{ creator }} to create a new account on this system named {{ name }} such that the new account's owner public key shall be {{ owner }} and the active public key shall be {{ active }}.
7 changes: 7 additions & 0 deletions contracts/eosio.system/eosio.system-refund-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Action - `{{ refund }}`

### Description

The intent of the `{{ refund }}` action is to return previously unstaked tokens to an account after the unstaking period has elapsed.

As an authorized party I {{ signer }} wish to have the unstaked tokens of {{ owner }} returned.
57 changes: 57 additions & 0 deletions contracts/eosio.system/eosio.system-regproducer-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Action - `{{ regproducer }}`

## Description

The intent of the `{{ regproducer }}` action is to register an account as a BP candidate.

I, {{producer}}, hereby nominate myself for consideration as an elected block producer.

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.

If {{producer}} is unable to perform obligations under this contract I will resign my position by resubmitting this contract with the null producer key.

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.

{{producer}} hereby agrees to only use {{producer_key}} to sign messages under the following scenarios:
proposing an objectively valid block at the time appointed by the block scheduling algorithm
pre-confirming a block produced by another producer in the schedule when I find said block objectively valid
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:
signing two different block proposals with the same timestamp with {{producer_key}}
signing two different block proposals with the same block number with {{producer_key}}
signing any block proposal which builds off of an objectively invalid block
signing a pre-confirmation for an objectively invalid block
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:
the order in which transactions are included
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 10% and all direct shareholders.

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.
7 changes: 7 additions & 0 deletions contracts/eosio.system/eosio.system-sellram-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Action - `{{ sellram }}`

## Description

The `{{ sellram }}` action sells unused RAM for tokens.

As an authorized party I {{ signer }} wish to sell {{ bytes }} of unused RAM from account {{ account }}.
9 changes: 9 additions & 0 deletions contracts/eosio.system/eosio.system-setprods-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Action - `{{ setprods }}`

## Description

The `{{ setprods }}` action creates a new schedule of active producers, who will produce blocks in the order given.

THIS IS A SYSTEM COMMAND NOT AVAILABLE FOR DIRECT ACCESS BY USERS.

As an authorized party I {{ signer }} wish to set the rotation of producers to be {{ schedule }}.
9 changes: 9 additions & 0 deletions contracts/eosio.system/eosio.system-undelegatebw-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Action - `{{ undelegatebw }}`

## Description

The intent of the `{{ undelegatebw }}` action is to unstake tokens from CPU and/or bandwidth.

As an authorized party I {{ signer }} wish to unstake {{ unstake_cpu_quantity }} from CPU and {{ unstake_net_quantity }} from bandwidth from the tokens owned by {{ from }} previously delegated for the use of delegatee {{ to }}.

If I as signer am not the beneficial owner of these tokens I stipulate I have proof that I’ve been authorized to take this action by their beneficial owner(s).
7 changes: 7 additions & 0 deletions contracts/eosio.system/eosio.system-unregprod-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Action - `{{ unregprod }}`

## Description

The `{{ unregprod }}` action unregisters a previously registered block producer candidate.

As an authorized party I {{ signer }} wish to unregister the block producer candidate {{ producer }}, rendering that candidate no longer able to receive votes.
13 changes: 13 additions & 0 deletions contracts/eosio.system/eosio.system-voteproducer-rc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Action - `{{ voteproducer }}`

## Description

The intent of the `{{ voteproducer }}` action is to cast a valid vote for up to 30 BP candidates.

As an authorized party I {{ signer }} wish to vote on behalf of {{ voter }} in favor of the block producer candidates {{ producers }} with a voting weight equal to all tokens currently owned by {{ voter }} and staked for CPU or bandwidth.

If I am not the beneficial owner of these shares I stipulate I have proof that I’ve been authorized to vote these shares by their beneficial owner(s).

I stipulate I have not and will not accept anything of value in exchange for these votes, on penalty of confiscation of these tokens, and other penalties.

I acknowledge that using any system of automatic voting, re-voting, or vote refreshing, or allowing such a system to be used on my behalf or on behalf of another, is forbidden and doing so violates this contract.
Loading

0 comments on commit 2fc5d1c

Please sign in to comment.