github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/iavl/CHANGELOG.md (about) 1 # Changelog 2 3 ## 0.12.4 (July 31, 2019) 4 5 ### IMPROVEMENTS 6 7 - [\#46](https://github.com/tendermint/classic/iavl/issues/46) Removed all instances of cmn (tendermint/tendermint/libs/common) 8 9 ## 0.12.3 (July 12, 2019) 10 11 Special thanks to external contributors on this release: 12 @ethanfrey 13 14 IMPROVEMENTS 15 16 - Implement LazyLoadVersion (@alexanderbez) 17 LazyLoadVersion attempts to lazy load only the specified target version 18 without loading previous roots/versions. - see [goDoc](https://godoc.org/github.com/tendermint/classic/iavl#MutableTree.LazyLoadVersion) 19 - Move to go.mod (@Liamsi) 20 - `iaviewer` command to visualize IAVL database from leveldb (@ethanfrey) 21 22 ## 0.12.2 (March 13, 2019) 23 24 IMPROVEMENTS 25 26 - Use Tendermint v0.30.2 and close batch after write (related pull request in Tendermint: https://github.com/tendermint/classic/pull/3397) 27 28 ## 0.12.1 (February 12, 2019) 29 30 IMPROVEMENTS 31 32 - Use Tendermint v0.30 33 34 ## 0.12.0 (November 26, 2018) 35 36 BREAKING CHANGES 37 38 - Uses new Tendermint ReverseIterator API. See https://github.com/tendermint/classic/pull/2913 39 40 ## 0.11.1 (October 29, 2018) 41 42 IMPROVEMENTS 43 44 - Uses GoAmino v0.14 45 46 ## 0.11.0 (September 7, 2018) 47 48 BREAKING CHANGES 49 50 - Changed internal database key format to store int64 key components in a full 8-byte fixed width ([#107]) 51 - Removed some architecture dependent methods (e.g., use `Get` instead of `Get64` etc) ([#96]) 52 53 IMPROVEMENTS 54 55 - Database key format avoids use of fmt.Sprintf fmt.Sscanf leading to ~10% speedup in benchmark BenchmarkTreeLoadAndDelete ([#107], thanks to [@silasdavis]) 56 57 [#107]: https://github.com/tendermint/classic/iavl/pull/107 58 [@silasdavis]: https://github.com/silasdavis 59 [#96]: https://github.com/tendermint/classic/iavl/pull/96 60 61 ## 0.10.0 62 63 BREAKING CHANGES 64 65 - refactored API for clean separation of [mutable][1] and [immutable][2] tree (#92, #88); 66 with possibility to: 67 - load read-only snapshots at previous versions on demand 68 - load mutable trees at the most recently saved tree 69 70 [1]: https://github.com/tendermint/classic/iavl/blob/9e62436856efa94c1223043be36ebda01ae0b6fc/mutable_tree.go#L14-L21 71 [2]: https://github.com/tendermint/classic/iavl/blob/9e62436856efa94c1223043be36ebda01ae0b6fc/immutable_tree.go#L10-L17 72 73 BUG FIXES 74 75 - remove memory leaks (#92) 76 77 IMPROVEMENTS 78 79 - Change tendermint dep to ^v0.22.0 (#91) 80 81 ## 0.10.0 (July 11, 2018) 82 83 BREAKING CHANGES 84 85 - getRangeProof and Get\[Versioned\]\[Range\]WithProof return nil proof/error if tree is empty. 86 87 ## 0.9.2 (July 3, 2018) 88 89 IMPROVEMENTS 90 91 - some minor changes: mainly lints, updated parts of documentation, unexported some helpers (#80) 92 93 ## 0.9.1 (July 1, 2018) 94 95 IMPROVEMENTS 96 97 - RangeProof.ComputeRootHash() to compute root rather than provide as in Verify(hash) 98 - RangeProof.Verify\*() first require .Verify(root), which memoizes 99 100 ## 0.9.0 (July 1, 2018) 101 102 BREAKING CHANGES 103 104 - RangeProof.VerifyItem doesn't require an index. 105 - Only return values in range when getting proof. 106 - Return keys as well. 107 108 BUG FIXES 109 110 - traversal bugs in traverseRange. 111 112 ## 0.8.2 113 114 - Swap `tmlibs` for `tendermint/libs` 115 - Remove `sha256truncated` in favour of `tendermint/crypto/tmhash` - same hash 116 function but technically a breaking change to the API, though unlikely to effect anyone. 117 118 NOTE this means IAVL is now dependent on Tendermint Core for the libs (since it 119 makes heavy use of the `db` package). Ideally, that dependency would be 120 abstracted away, and/or this repo will be merged into the Cosmos-SDK, which is 121 currently is primary consumer. Once it achieves greater stability, we could 122 consider breaking it out into it's own repo again. 123 124 ## 0.8.1 125 126 _July 1st, 2018_ 127 128 BUG FIXES 129 130 - fix bug in iterator going outside its range 131 132 ## 0.8.0 (June 24, 2018) 133 134 BREAKING CHANGES 135 136 - Nodes are encoded using proto3/amino style integers and byte slices (ie. varints and 137 varint prefixed byte slices) 138 - Unified RangeProof 139 - Proofs are encoded using Amino 140 - Hash function changed from RIPEMD160 to the first 20 bytes of SHA256 output 141 142 ## 0.7.0 (March 21, 2018) 143 144 BREAKING CHANGES 145 146 - LoadVersion and Load return the loaded version number 147 - NOTE: this behaviour was lost previously and we failed to document in changelog, 148 but now it's back :) 149 150 ## 0.6.1 (March 2, 2018) 151 152 IMPROVEMENT 153 154 - Remove spurious print statement from LoadVersion 155 156 ## 0.6.0 (March 2, 2018) 157 158 BREAKING CHANGES 159 160 - NewTree order of arguments swapped 161 - int -> int64, uint64 -> int64 162 - NewNode takes a version 163 - Node serialization format changed so version is written right after size 164 - SaveVersion takes no args (auto increments) 165 - tree.Get -> tree.Get64 166 - nodeDB.SaveBranch does not take a callback 167 - orphaningTree.SaveVersion -> SaveAs 168 - proofInnerNode includes Version 169 - ReadKeyXxxProof consolidated into ReadKeyProof 170 - KeyAbsentProof doesn't include Version 171 - KeyRangeProof.Version -> Versions 172 173 FEATURES 174 175 - Implement chunking algorithm to serialize entire tree 176 177 ## 0.5.0 (October 27, 2017) 178 179 First versioned release! 180 (Originally accidentally released as v0.2.0)