Skip to content

Latest commit

 

History

History
188 lines (123 loc) · 6.32 KB

RELEASE_NOTES.md

File metadata and controls

188 lines (123 loc) · 6.32 KB

IoP Blockchain Beta

Release Notes

version 1.0.0

Initial Miner Whitelist implementation.

  • It supports adding and removing miners into the white list.
  • Embedded miner activated.
  • Premined value on block 1 of 2.100.000 tokens.
  • Coinbase blocks limited to 1 IoP per block

version 1.1.0

Small fixes to the whitelist implementation which include:

  • New parameters for admins public keys into chainparams divided by network.
  • correct retrieval of admin miner from whitelist db.

version 1.2

Security improvements which include:

  • removal of minerPKey parameter as startup command on IoP.conf file
  • incorporation of new parameter called minerWhiteListAddress which reads the base 58 address to avoid having the private key visible.

version 2.0

New functionality called Miner Cap introduced on the client.

  • The blockchain now supports to new types of transaction:
    • enable_cap:n: used to enable the miner cap control and set the n factor used to calculate the minerCap.
    • disable_cap: used to disable the miner cap control.

The miner Cap control is used to limit the amount of blocks each miner can submit to the network.

  • New RPC command called dumpMinerStats use to generate a JSON output with the amount of blocks each miner has mined since the white list control has been activated.

version 2.0.2

Small improvements:

  • fixed compilation warning for enum not initilized in main.cpp
  • added new information to output of dumpminerstats: currentWhitelisted miners.
  • removed tr1 prefixes from code to avoid compilation errors in OS X.

Small fixes:

  • corrected seed nodes IPs for both testnet and mainnet to avoid errors on debug.log file.
  • removed comments that where printing out debug information to console related to connections to peers.

version 3.0.0

New functionality

Voting System implementation

New functionality that detects transactions with Contribution Contracts (CC) embebbed and stores them locally.

Basic rules for Contribution Contracts to be valid are:

  • Version: must be 1.0 (0100 in Hex)
  • Output 0 of CC genesis transaction: must be of 1000 IoPs and the output must remain unspents (UTXO) for the entire life cycle of the contract. If this output is used as input in any other transaction while the contract is valid, it will automatically stop execution and be declared invalid.
  • Max. block reward can't exceed 0.1 IoPs.
  • Start of execution: Execution of the contract is determined to be a fixed amount of blocks + what the owner of the contract specifies. For Mainnet, this fixed amount has been stablished at 1000 blocks, while for testnet and regtest is reduced to only 10 blocks. Meaning if block start is defined as 250 blocks, the contract will be considered to be executed at block: currentHeight + 1000 + 250. This value can't exceed 11960 blocks.
  • Block end is defined as the number of times, the reward will be generated in blocks. Rewards are coins included by a miner in a coinbase transaction inside a block. This value can't exceed 120960.
  • Beneficiaries are the holders of the rewards generated by the contract. Beneficiaries are defined as an IoP address and an amount of coins. The contract must have at least one beneficiary and the total of coins must match the total contract reward.

Contribution Contract execution:

A contract will be considered to be executed if the following is true:

  • Is a valid contract
  • The amount of votes indicating YES is greater than the amount of votes indicating No. The core detects Voting transactions by reading the blockchain.
  • Blockchain height is withing block start height.
  • The contract reward won't make exceed the limit of 1 IoP per block considering all the currently executing contracts. If all executing contracts sum a total reward of 0.9 IoPs, the contract won't be included if the reward is greater than 0.1 IoPs. If this limit is exceeded, then the contract will be in QUEUED status until a slot is freed in the queue.

Contract cancellation

A contract being executed can be cancelled in the following ways:

  • by spending or unfreezing the output 0 of it's genesis transaction. This output is of 1000 IoPs.
  • by receiving more NO votes than YES.
  • in a similar way as with freezed outputs, any transaction including votes (for yes or no) must freeze the amount of votes until the contract is completed. If at any time the freeze coins (output 0) of any vote is used, those votes become invalid and make change the previous condition.

DumpCC RPC command

Shows the status and specifications of each Contribution Contract. For example:

{
  "contribution_contracts": [
    {
      "genesistxhash": "bb3b4d0a37f0832598d317b6239a25981f8d99785e55299ba4c9bfa34fc96cb3",
      "currentheight": 124,
      "blockstart": 142,
      "blockend": 30,
      "blockpending": 30,
      "blockreward": 1125000,
      "state": "APPROVED",
      "voteyes": 200000000,
      "voteno": 0,
      "op_return": "43430100000014001e112a88d4817aa5497628e7c77e6b606107042bbba3130888c5f47a375e6179be789fbb0017",
      "beneficiaries": [
        {
          "address": "uMP2MidoDqjR7RHJ7zbkquEThKVRkAw1pq",
          "amount": 1125000
        }
      ]
    }
  ]
}

version 3.0.1

Small changes

  • added commands to retrieve Contribution Contracts from the message protocol.

version 3.0.2

Bug Fixes

  • Fixed an issue that may cause Contribution Contracts to be executed even when it was voted with more negative votes.

  • Fixed an issue that was displaying incorrect status when the 1000 IoPs to create a contract are spent.

Improvements

  • remove unused cout code.

version 4.0.1

Improvements

  • New mining cap calculation algorithm
  • Switched over to gitian building
  • made Berkley-DB 5.3 the default

version 4.0.2

Improvements

  • Quick fix of the mining thread. CCs still need refactoring

version 4.0.3

Improvements

  • Introducing checkpoints for testnet
  • New checkpoints for mainnet

version 4.1.0

Improvements

  • Deleted all references to the Fermat Project!

version 4.1.1

Improvements

  • New Icon
  • New Checkpoint for mainnet

version 4.1.2

Improvements

  • New Checkpoint for mainnet

version 5.0

  • removed CC functionality for noticable speedup
  • Block Reward will increase to the initially planned 50 IOP/block on block 50400
  • Premine is disregarded in halving to partially make up for coins lost during the 1 IOP/block phase

version 5.0.1

  • checkpoint for mainnet added