mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2025-01-19 17:10:53 +00:00
151 lines
3.9 KiB
Markdown
151 lines
3.9 KiB
Markdown
|
# Changelog
|
||
|
|
||
|
## 0.12.0 (November 26, 2018)
|
||
|
|
||
|
BREAKING CHANGES
|
||
|
|
||
|
- Uses new Tendermint ReverseIterator API. See https://github.com/tendermint/tendermint/pull/2913
|
||
|
|
||
|
## 0.11.1 (October 29, 2018)
|
||
|
|
||
|
IMPROVEMENTS
|
||
|
|
||
|
- Uses GoAmino v0.14
|
||
|
|
||
|
## 0.11.0 (September 7, 2018)
|
||
|
|
||
|
BREAKING CHANGES
|
||
|
|
||
|
- Changed internal database key format to store int64 key components in a full 8-byte fixed width ([#107])
|
||
|
- Removed some architecture dependent methods (e.g., use `Get` instead of `Get64` etc) ([#96])
|
||
|
|
||
|
IMPROVEMENTS
|
||
|
|
||
|
- Database key format avoids use of fmt.Sprintf fmt.Sscanf leading to ~10% speedup in benchmark BenchmarkTreeLoadAndDelete ([#107], thanks to [@silasdavis])
|
||
|
|
||
|
[#107]: https://github.com/tendermint/iavl/pull/107
|
||
|
[@silasdavis]: https://github.com/silasdavis
|
||
|
[#96]: https://github.com/tendermint/iavl/pull/96
|
||
|
|
||
|
## 0.10.0
|
||
|
|
||
|
BREAKING CHANGES
|
||
|
|
||
|
- refactored API for clean separation of [mutable][1] and [immutable][2] tree (#92, #88);
|
||
|
with possibility to:
|
||
|
- load read-only snapshots at previous versions on demand
|
||
|
- load mutable trees at the most recently saved tree
|
||
|
|
||
|
[1]: https://github.com/tendermint/iavl/blob/9e62436856efa94c1223043be36ebda01ae0b6fc/mutable_tree.go#L14-L21
|
||
|
[2]: https://github.com/tendermint/iavl/blob/9e62436856efa94c1223043be36ebda01ae0b6fc/immutable_tree.go#L10-L17
|
||
|
|
||
|
BUG FIXES
|
||
|
|
||
|
- remove memory leaks (#92)
|
||
|
|
||
|
IMPROVEMENTS
|
||
|
|
||
|
- Change tendermint dep to ^v0.22.0 (#91)
|
||
|
|
||
|
## 0.10.0 (July 11, 2018)
|
||
|
|
||
|
BREAKING CHANGES
|
||
|
|
||
|
- getRangeProof and Get\[Versioned\]\[Range\]WithProof return nil proof/error if tree is empty.
|
||
|
|
||
|
## 0.9.2 (July 3, 2018)
|
||
|
|
||
|
IMPROVEMENTS
|
||
|
|
||
|
- some minor changes: mainly lints, updated parts of documentation, unexported some helpers (#80)
|
||
|
|
||
|
## 0.9.1 (July 1, 2018)
|
||
|
|
||
|
IMPROVEMENTS
|
||
|
|
||
|
- RangeProof.ComputeRootHash() to compute root rather than provide as in Verify(hash)
|
||
|
- RangeProof.Verify\*() first require .Verify(root), which memoizes
|
||
|
|
||
|
## 0.9.0 (July 1, 2018)
|
||
|
|
||
|
BREAKING CHANGES
|
||
|
|
||
|
- RangeProof.VerifyItem doesn't require an index.
|
||
|
- Only return values in range when getting proof.
|
||
|
- Return keys as well.
|
||
|
|
||
|
BUG FIXES
|
||
|
|
||
|
- traversal bugs in traverseRange.
|
||
|
|
||
|
## 0.8.2
|
||
|
|
||
|
* Swap `tmlibs` for `tendermint/libs`
|
||
|
* Remove `sha256truncated` in favour of `tendermint/crypto/tmhash` - same hash
|
||
|
function but technically a breaking change to the API, though unlikely to effect anyone.
|
||
|
|
||
|
NOTE this means IAVL is now dependent on Tendermint Core for the libs (since it
|
||
|
makes heavy use of the `db` package). Ideally, that dependency would be
|
||
|
abstracted away, and/or this repo will be merged into the Cosmos-SDK, which is
|
||
|
currently is primary consumer. Once it achieves greater stability, we could
|
||
|
consider breaking it out into it's own repo again.
|
||
|
|
||
|
## 0.8.1
|
||
|
|
||
|
*July 1st, 2018*
|
||
|
|
||
|
BUG FIXES
|
||
|
|
||
|
- fix bug in iterator going outside its range
|
||
|
|
||
|
## 0.8.0 (June 24, 2018)
|
||
|
|
||
|
BREAKING CHANGES
|
||
|
|
||
|
- Nodes are encoded using proto3/amino style integers and byte slices (ie. varints and
|
||
|
varint prefixed byte slices)
|
||
|
- Unified RangeProof
|
||
|
- Proofs are encoded using Amino
|
||
|
- Hash function changed from RIPEMD160 to the first 20 bytes of SHA256 output
|
||
|
|
||
|
## 0.7.0 (March 21, 2018)
|
||
|
|
||
|
BREAKING CHANGES
|
||
|
|
||
|
- LoadVersion and Load return the loaded version number
|
||
|
- NOTE: this behaviour was lost previously and we failed to document in changelog,
|
||
|
but now it's back :)
|
||
|
|
||
|
## 0.6.1 (March 2, 2018)
|
||
|
|
||
|
IMPROVEMENT
|
||
|
|
||
|
- Remove spurious print statement from LoadVersion
|
||
|
|
||
|
## 0.6.0 (March 2, 2018)
|
||
|
|
||
|
BREAKING CHANGES
|
||
|
|
||
|
- NewTree order of arguments swapped
|
||
|
- int -> int64, uint64 -> int64
|
||
|
- NewNode takes a version
|
||
|
- Node serialization format changed so version is written right after size
|
||
|
- SaveVersion takes no args (auto increments)
|
||
|
- tree.Get -> tree.Get64
|
||
|
- nodeDB.SaveBranch does not take a callback
|
||
|
- orphaningTree.SaveVersion -> SaveAs
|
||
|
- proofInnerNode includes Version
|
||
|
- ReadKeyXxxProof consolidated into ReadKeyProof
|
||
|
- KeyAbsentProof doesn't include Version
|
||
|
- KeyRangeProof.Version -> Versions
|
||
|
|
||
|
FEATURES
|
||
|
|
||
|
- Implement chunking algorithm to serialize entire tree
|
||
|
|
||
|
## 0.5.0 (October 27, 2017)
|
||
|
|
||
|
First versioned release!
|
||
|
(Originally accidentally released as v0.2.0)
|
||
|
|