mirror of
https://github.com/alexgo-io/stacks-subnets.git
synced 2026-01-12 22:43:44 +08:00
add release notes for 0.14
This commit is contained in:
27
release_notes/README.md
Normal file
27
release_notes/README.md
Normal file
@@ -0,0 +1,27 @@
|
||||
Release Notes
|
||||
=============
|
||||
|
||||
This directory contains the release notes for each version of Blockstack Core. In particular, there are two types of changes in each release:
|
||||
|
||||
* **Consensus-breaking Releases**: These are releases of Blockstack Core that change its consensus rules.
|
||||
Examples include adding new name opcodes, removing old ones, changing the types of transactions that are supported, which blockchain(s) are used, etc.
|
||||
Each consensus-breaking release is incompatible with all prior releases; old releases will not agree with new releases on the global name set.
|
||||
For this reason, **it is strongly recommended to run the latest Blockstack Core release.**
|
||||
|
||||
* **Non-consenus-breaking Releases**: These are all other releases. They include bugfixes, reliability improvements, performance improvements, and so on.
|
||||
|
||||
Notes on Consensus
|
||||
==================
|
||||
|
||||
The Blockstack Developers do their best to avoid consensus-breaking releases whenever possible.
|
||||
However, certain improvements and bugfixes cannot be done without them.
|
||||
As such, the project tries to limit consensus-breaking releases to one per year (around mid-September), and only with extensive testing.
|
||||
Consensus-breaking changes are documented in the release notes, and will be publicly documented in the version's wish list file whenever possible.
|
||||
|
||||
If a critical consensus-breaking bug or security vulnerability is found, a new consensus-breaking release may be made on the spot.
|
||||
If this happens, it will be documented here and announced publicly.
|
||||
|
||||
A yearly consensus-breaking release is required in order to keep name and namespace prices reasonable.
|
||||
When Blockstack was first deployed, namespace prices were determined on a 1 BTC == $230 USD exchange.
|
||||
At a minimum, the consensus-breaking release must adjust the BTC prices to ensure that names and namespaces
|
||||
are neither too cheap (making squatting trivial) nor too expensive (making the system unusable).
|
||||
81
release_notes/changelog-0.14.md
Normal file
81
release_notes/changelog-0.14.md
Normal file
@@ -0,0 +1,81 @@
|
||||
What's New in 0.14
|
||||
==================
|
||||
|
||||
Release 0.14 brings several major improvements. It is a **consensus-breaking release.** Users are encouraged to upgrade to 0.14 as soon as possible in order to stay on the same name set as everyone else.
|
||||
|
||||
Release Highlights
|
||||
------------------
|
||||
|
||||
* **Sqlite3 Database**. The consensus logic has been re-written from the ground up to use a sqlite3 database instead of a flat JSON file for storing the name set. This reduces RAM usage by 20x (~3 GB to ~150MB).
|
||||
|
||||
* **P2P Blockchain Synchronization.** The blockchain synchronization logic (in [virtualchain](https://github.com/blockstack/virtualchain)) has been re-written to use the Bitcoin p2p interface whenever possible, instead of the RPC interface. This not only improves download performance by 6x, but also removes the need for a multiprocess work pool (improving reliability).
|
||||
|
||||
* **Atlas Protocol.** Blockstack Core now implements its own unstructured p2p network (the Atlas network) for replicating the set of zonefiles amongst themselves. Each node builds a 100% replica of all zonefiles using the set of zonefile hashes in the name database. Nodes walk the peer graph to select K random neighbors; we reduce bias with a Metropolis-Hastings random walk with delayed acceptance.
|
||||
|
||||
* **Resolver API Server.** As part of our ongoing consolidation efforts, Blockstack Core now ships with a resolver HTTP server and documentation.
|
||||
|
||||
* **Multisig Support.** Blockstack Core now accepts name operations from multisig addresses.
|
||||
|
||||
* **Testnet Support.** Blockstack Core can now operate on Bitcoin's testnet. This can be achieved by setting `BLOCKSTACK_TESTNET=1` in the environment.
|
||||
|
||||
|
||||
Consensus-breaking Changes
|
||||
--------------------------
|
||||
|
||||
* Support for pay-to-script-hash Bitcoin addresses has been added, in order to support multisig ownership and payment addresses. Versions 0.13 and earlier will reject transactions with p2sh addresses.
|
||||
|
||||
* Name and namespace prices have been re-adjusted by a factor of 0.417 to preserve the $230 USD to 1 BTC exchange rate in 0.13. They take effect at block XXX.
|
||||
|
||||
* Name lifetimes in all namespaces have been temporarily increased by a factor of 2. For example, a name in the `.id` namespace will be valid for two years, instead of one. This will be reverted in 0.15, due for release mid-September 2017. This was done to give more time to upgrade the CLI and brower to automatically renew names.
|
||||
|
||||
|
||||
Selected Changelog
|
||||
------------------
|
||||
|
||||
* Do not accept zonefiles unless we can determine the name and transaction ID that paid for the `NAME_UPDATE`.
|
||||
|
||||
* Atlas: retry storage drivers for missing zonefiles every 12 hours.
|
||||
|
||||
* Add a notion of "epochs" to encode what the current name price and namespace lifetime are, based on the block height.
|
||||
|
||||
* Make expired `NAMESPACE_REVEAL` name operations restorable, so that `verifydb` database verification logic can handle them.
|
||||
|
||||
* Do not use `sys.exit(1)` on an assertion failure; use `os.abort()`.
|
||||
|
||||
* The `get_nameops_*` method family has been renamed to `get_records_*`.
|
||||
|
||||
* Run multiple instances of the core server in the test framework in order to enable Atlas testing.
|
||||
|
||||
* Check that the config files are compatible with the running version of the server.
|
||||
|
||||
* Do not require a transaction to have a single public key in its `scriptSig` field.
|
||||
|
||||
* Check for absurdly high-value transaction fees when broadcasting.
|
||||
|
||||
* Identify client storage drivers to use specifically for zonefiles or specifically for profiles.
|
||||
|
||||
* Cap profiles to 1MB when using Blockstack Core as a storage proxy.
|
||||
|
||||
* Improve SNV efficiency by serving batches of consensus hashes.
|
||||
|
||||
* Move most configuration-parsing logic to the client library.
|
||||
|
||||
* Remove old `testset` mode, since it never really worked anyway.
|
||||
|
||||
* Move all transaction-creation logic to the client. Blockstack Core no longer creates transactions.
|
||||
|
||||
* Remove transaction subsidization logic from Blockstack Core. This is the registrar's responsibility.
|
||||
|
||||
* Remove all remaining Twisted API server and Twisted DHT logic.
|
||||
|
||||
* Automatic database backups; access with `blockstack-server restore`.
|
||||
|
||||
* Remove UTXO service query logic from Blockstack Core. This is the client's responsibility.
|
||||
|
||||
* Spin off `blockstack_zones`, `blockstack_utxo`, `blockstack_profiles`, and `blockstack_integration_tests` into separate packages.
|
||||
|
||||
* Fix `NAME_TRANSFER` name operation restoration and SNV logic to use the correct consensus hash.
|
||||
|
||||
* Remove unfinished `blockmirrord` code; merge zonefile and profile API code into the main API server.
|
||||
|
||||
* Log unavailability of blockchain announcement payloads.
|
||||
Reference in New Issue
Block a user