erigon-pulse/core/vm/lightclient/iavl/CHANGELOG.md

151 lines
3.9 KiB
Markdown
Raw Normal View History

# 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)