Skip to content

Releases: keep-network/sortition-pools

v2.0.0

29 Sep 17:01
8048806
Compare
Choose a tag to compare

A sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. It allows selecting a group of operators based on the provided pseudo-random seed and optional bonding requirements. This release is the second version of the contracts and is one of the critical elements underpinning tBTC v2. In v2, the sortition pool works in an optimistic mode in a locked state. This allowed to save gas and simplify the code. Additionally, in v2, the sortition pool implements support for reward distribution and tBTC v2 chaosnet phase.

The release commit hash is signed by the deployment team, verifiable on Keybase. Our Keybase usernames are all associated with the Keep organization and with our GitHub usernames.


Commit hash for clean builds is 8048806a05826785075a926485e0320a7bb75745.

Signatures of commit hash from the deployment team (verify these in the Keybase app):

  • @pdyraga:
    BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zk8SRO9e gN94erb57G43YvY asc2ypx7KtJhJpq tOozFkj38o4WzVz Imv2qF4qUiCVNID 0R94ChQ4ko8CsXb nCUmIszrlz7vnLb MegAKFiTh06o6c5 RjjnvrmcWLwrHrM 3fAYZDzqmpaCq4O atm6liXhRkUkabk VBjK9mQas3rbDvS wSHiOiEE2oKREE5 TNuUM0S7mnHSn4E IJYpZP8ALElP7MT . END KEYBASE SALTPACK SIGNED MESSAGE.

  • @nkuba:
    BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkUgHswq LONGnytauGuQ68W zKcm0YTewHXEGd3 2M8FiSegATBW4bS VgZ5UPSeJyYEl12 lsQLEiKFuA6jvY4 SNX1O6VK6RJZqEm SBKgWYbLB6itJbF b49tli8w5RIiWsJ Fxg7A03avuHfgck wBJOPv7SxTfr9ee 3sHv1YBPRVew6NO Y1w5I0A6HpgkkcQ s1yZm1s89TU6sbT 1clowBlihgxjiOl u. END KEYBASE SALTPACK SIGNED MESSAGE.


Finally, note that the full set of work that went into the 2.0.0 version can be found in the corresponding v2.0.0 milestone.

v1.1.2

14 Sep 10:44
aa2a641
Compare
Choose a tag to compare

The new release contains one bugfix and one development setup improvement:

  • Use WEIGHT_WIDTH to index full weight range in RNG #94
  • Babe the Blue Ox: Add rudimentary buidler setup #93

v1.1.1

28 Aug 12:16
1382bc3
Compare
Choose a tag to compare

This version does not contain any functionality changes but it re-organizes the code based on Linter and Slither suggestions:

  • Update linting configuration #87
  • Small loop refactor to make Slither happier #90
  • Renamed input parameters to Leaf.make function to avoid shadowing #91

v1.1.0

29 Jul 07:22
6cecb6e
Compare
Choose a tag to compare

This version introduces changes to how minimum unbonded value is handled.

There are two separate values now: one defining the minimum unbonded value the operator needs to have so that it can join and stay in the pool, and another defining the required bond value for the current selection. If the given operator has enough unbonded value to stay in the pool but it does not have enough unbonded value for the current group selection, it is skipped. If the given operator does not have enough unbonded value to stay in the pool, it is deleted from there.

A reasonable minimum unbonded value should be set on BondedSortitionPool creation and updated later by the pool owner (application) as needed.

The npm package corresponding to this release contains the Solidity code of all the contracts and libraries.

v1.0.0

13 May 16:21
1afe5c0
Compare
Choose a tag to compare

🎉

Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. It allows selecting a group of operators based on the provided pseudo-random seed and optional bonding requirements.

In this version we ship three versions of sortition pools:

  • Bonded sortition pool for KEEP stake and ETH bond where KEEP stake is used to determine the operator's weight. Allows selecting a group of unique operators based on the provided bonding requirements. Used by keep-network/keep-ecdsa.
  • Fully-backed sortition pool for ETH bond where ETH bond is used to determine the operator's weight. Allows selecting a group of unique operators based on the provided bonding requirements. Used by keep-network/keep-ecdsa.
  • Standard sortition pool, allowing to select operators group with possible duplicates. Not currently used by keep-network projects.

The npm package corresponding to this release contains the Solidity code of all the contracts and libraries.

v0.3.0

09 Apr 09:57
ffa3cd8
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release
  • Minimum stake schedule support (#74, #78)
  • Bump Solidity to 0.5.17 and freeze version (#76)
  • Dependency security fix update (#77)

v0.2.0

20 Mar 11:06
a5c1f93
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release
  • Improve the distinction between leaf positions and leaf values #64
  • Function to check if initialization period passed #66
  • Reduce the cost of initialization queries during group selection #67
  • Fully backed pool #69
  • Drop solidity bytes utils dependency #70
  • Factory for FullyBackedSortitionPool #71

v0.1.1

19 Feb 16:38
32523a7
Compare
Choose a tag to compare
v0.1.1 Pre-release
Pre-release

Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes.

In this version, we ship two versions of sortition pool: bonded sortition pool allowing to select group of unique operators based on the provided bonding requirements and standard sortition pool allowing to select operators group with possible duplicates.