mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
* Problem: We need a way to synchronize a halt to block production to allow for upgrades across breaking changes. * Solution: Created `MigrationElection`. * Problem: Need documentation for `migration` elections. * Solution: Updated the docs. * Problem: `MigrationElection` needs 'new' CLI method. * Solution: Updated the definition of `election` to include the new `migration` type. * Problem: The way `end_block` checks for concluded elections assumes there is only one type of election (so we can't conclude an `upsert-validator` and a `chain-migration` at the same height). * Solution: Re-engineered the code in `Elections` to conclude multiple elections in the same block. If more than one election change the validator set, only one of them is applied. * Problem: Tendermint change to store validator changes at height h+2 will break `Election.get_status`. * Solution: Reworked `get_validator_change` to look at only the latest block height or less.
45 lines
1.1 KiB
YAML
45 lines
1.1 KiB
YAML
# Copyright BigchainDB GmbH and BigchainDB contributors
|
|
# SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
|
# Code is Apache-2.0 and docs are CC-BY-4.0
|
|
|
|
---
|
|
"$schema": "http://json-schema.org/draft-04/schema#"
|
|
type: object
|
|
title: Chain Migration Election Schema - Propose a halt in block production to allow for a version change
|
|
required:
|
|
- operation
|
|
- asset
|
|
- outputs
|
|
properties:
|
|
operation:
|
|
type: string
|
|
value: "CHAIN_MIGRATION_ELECTION"
|
|
asset:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: false
|
|
properties:
|
|
seed:
|
|
type: string
|
|
required:
|
|
- data
|
|
outputs:
|
|
type: array
|
|
items:
|
|
"$ref": "#/definitions/output"
|
|
definitions:
|
|
output:
|
|
type: object
|
|
properties:
|
|
condition:
|
|
type: object
|
|
required:
|
|
- uri
|
|
properties:
|
|
uri:
|
|
type: string
|
|
pattern: "^ni:///sha-256;([a-zA-Z0-9_-]{0,86})[?]\
|
|
(fpt=ed25519-sha-256(&)?|cost=[0-9]+(&)?|\
|
|
subtypes=ed25519-sha-256(&)?){2,3}$"
|