@@ -4,6 +4,363 @@ All notable changes to this project will be documented in this file. This projec
44## [ Unreleased]
55
66
7+ <a name =" v0.9.0-RC1 " ></a >
8+ ## [ v0.9.0-RC1] - 2020-12-22
9+ ### Bug Fixes
10+ - ** cmd/immuclient:** print referenced key
11+ - ** cmd/immuclient:** print referenced key
12+ - ** embedded/store:** fix race condition
13+ - ** embedded/store:** fix race condition
14+ - ** embedded/store:** contemplate bad-formated proof
15+ - ** embedded/tbtree:** fix issue when initialKey is greater than keys
16+ - ** pkg/common:** fix leftover in index wrapper
17+ - ** pkg/database:** lookup for referenced key when atTx is non-zero
18+ - ** pkg/database:** working scan and zscan without pagination
19+ - ** pkg/database:** add cyclic references validation during resolution
20+ - ** pkg/database:** use EncodeReference in ExecAllIOps
21+ - ** pkg/database:** referenced key lookup when atTx is non-zero
22+ - ** pkg/database:** adjust execAll method
23+ - ** pkg/databse:** encoding of reference and zadd
24+
25+ ### Changes
26+ - new proto definitions
27+ - proof proto definition
28+ - datatype conversion methods
29+ - inject store reader inside zscan
30+ - partial fix of scan test
31+ - remove badger and merkletree dependencies
32+ - ** api/schema:** removed consistency method
33+ - ** cmd:** adjusted commandline tools
34+ - ** cmd/immuclient:** add verified operations
35+ - ** cmd/immuclient:** add support for safe operations
36+ - ** database:** implements ByIndex operation
37+ - ** database:** implements safeByIndex operation
38+ - ** database:** several fixes and unit testing adaptation
39+ - ** database:** contemplates the case not previously verified tx
40+ - ** database:** implements safeSet operation
41+ - ** embedded:** rename as SnapshotSince
42+ - ** embedded/htree:** minor changes in proof struct
43+ - ** embedded/htree:** internal linear proof renaming
44+ - ** embedded/store:** minor proof renaming
45+ - ** embedded/store:** return ErrTxNotFound when attemping to read non-existent tx
46+ - ** embedded/store:** add tx constructor with entries
47+ - ** embedded/store:** return txMetadata when tx on commit
48+ - ** embedded/store:** allow empty values and don't attempt to store in vlog
49+ - ** embedded/store:** adjustments on store reader
50+ - ** embedded/store:** add snapshotAt and adjust based on it
51+ - ** embedded/store:** wrap keyNotFound index error
52+ - ** embedded/store:** change tx proof method signature
53+ - ** embedded/store:** add method to retrieve tx metadata
54+ - ** embedded/store:** minor changes in proof struct
55+ - ** pkg:** rename to ReferenceRequest
56+ - ** pkg:** rename to CurrentState
57+ - ** pkg:** several minor changes
58+ - ** pkg:** rename to sinceTx
59+ - ** pkg/api:** rename to Entry and ZEntry and embedded Reference
60+ - ** pkg/api:** several improvements on grpc api
61+ - ** pkg/api:** add copyright notice
62+ - ** pkg/api:** new proof messages
63+ - ** pkg/api:** add vLen property to TxEntry
64+ - ** pkg/api:** new server proto definition
65+ - ** pkg/api:** remove digest data type
66+ - ** pkg/auth:** adjust permissions based on new api
67+ - ** pkg/client:** minor renaming to improve readability
68+ - ** pkg/client:** adjusted client providers
69+ - ** pkg/client:** add safe method alises for backwards familiarity
70+ - ** pkg/client:** adjusted golang client
71+ - ** pkg/database:** fixed methods with prefix mgmt, including scan
72+ - ** pkg/database:** minor adjustments
73+ - ** pkg/database:** mutex for reusable txs
74+ - ** pkg/database:** return functionality not yet implemented for VerifiableSetReference
75+ - ** pkg/database:** remove ambiguity in references
76+ - ** pkg/database:** zscan order with tx after key
77+ - ** pkg/database:** wait for indexing on execAll
78+ - ** pkg/database:** delay locking until indexing is done
79+ - ** pkg/database:** get from snapshot or directly from store
80+ - ** pkg/database:** add sinceTx to reference and make it handle key prefixes
81+ - ** pkg/database:** fix get/set with prefix wrapping/unwrapping
82+ - ** pkg/database:** implements new DB api using embedded storage
83+ - ** pkg/ring:** remove ring pkg
84+ - ** pkg/server:** partial use of embedded storage
85+ - ** pkg/server:** return number of tx as db size
86+ - ** pkg/server:** prevent logging request details
87+ - ** pkg/server:** getBatch operation
88+ - ** pkg/server:** implements history operation
89+ - ** pkg/server:** proof construction in safeget operation
90+ - ** pkg/server:** adjusted state signer
91+ - ** pkg/server:** adjusted UUID handler
92+ - ** pkg/server:** remove in-memory option
93+ - ** pkg/server:** disable proactive corruption checker
94+ - ** pkg/server:** disable cc
95+ - ** pkg/server:** adapt implementation to new api
96+ - ** pkg/server:** adapt to new database implementation
97+ - ** pkg/server:** comment unimplemented GetReference method
98+ - ** pkg/store:** moved package
99+ - ** pkg/tbree:** reader with descOrder
100+ - ** server:** implements safeGet
101+ - ** server/api:** minor changes in Item element
102+
103+ ### Code Refactoring
104+ - ** pkg/server:** add database interface and inject in server package
105+ - ** pkg/server:** move database to new package
106+
107+ ### Features
108+ - partial implementation of safeGet
109+ - add store reader, scan and sorted sets
110+ - ** embedded:** inclusiveSeek point when reading
111+ - ** embedded:** add Get operation without the need of a snapshot
112+ - ** embedded/tbtree:** use seek and prefix
113+ - ** pkg/client:** add GetSince method
114+ - ** pkg/client:** implements latest server API
115+ - ** pkg/database:** complete set and get reference methods
116+ - ** pkg/database:** uniform implementation for set, references, zadd, scan and zscan operations
117+ - ** pkg/database:** add execAllOps
118+ - ** pkg/database:** support for seekable scanning
119+ - ** pkg/database:** consistent reference handling, prevent cyclic references
120+ - ** pkg/database:** verify reference upon key resolution
121+ - ** pkg/server:** expose store options
122+
123+
124+ <a name =" v0.8.1 " ></a >
125+ ## [ v0.8.1] - 2020-12-08
126+ ### Bug Fixes
127+ - file ext removal
128+ - fix batchOps permission and clean sv ones
129+ - add permissions for the new CountAll gRPC method
130+ - appID parsing from filename
131+ - appendable extensions without dot
132+ - restore current offset after reading compressed data
133+ - encode metadata numeric fields with 64bits
134+ - consider the case when key was not yet inserted
135+ - set fileSize after reading values from metadata
136+ - read metadata before reading
137+ - pass compression settings into newly created single-file appendable
138+ - compression with bigger values
139+ - compression with multiple-files
140+ - return EOF when data cannot be fully read from appendables
141+ - set new appendable id when changing current appendable
142+ - typos
143+ - avoid duplicate index insertion in zAdd batch operation transaction
144+ - fix batchOps tests and minors fix for zAdd sorted set key generation
145+ - ** embedded:** set correct offset while reading node
146+ - ** embedded/store:** use verificatication methods for dual proof evaluation
147+ - ** embedded/store:** release tx before linear proof generation
148+ - ** embedded/tools:** catch ErrNoMoreEntries when iterating over txs ([ #569 ] ( https://github.com/vchain-us/immudb/issues/569 ) )
149+ - ** pkg:** handle expired token error
150+ - ** pkg/client:** token service is not mandatory for setup a client
151+ - ** pkg/client:** handle rootservice error inside constructor
152+ - ** pkg/store:** fixes issue [ #532 ] ( https://github.com/vchain-us/immudb/issues/532 ) ([ #549 ] ( https://github.com/vchain-us/immudb/issues/549 ) )
153+ - ** pkg/store:** fix bug on lexicographical read of multiple sets
154+ - ** pkg/store:** move separator at the beginning of a keyset
155+ - ** pkg/store:** fix scan and add tests for pagination
156+ - ** pkg/store:** scan item now contains immudb index, not badger timestamp
157+ - ** pkg/store:** fix key set generation. index reference flag (0,1 bit) is put at the end of the key to mantain lexicographical properties
158+ - ** pkg/store:** in reference based command key is optional if index is provided. Increase code coverage
159+ - ** pkg/store:** fix reverse history pagination
160+
161+ ### Changes
162+ - error naming
163+ - include github stars over time chart ([ #509 ] ( https://github.com/vchain-us/immudb/issues/509 ) )
164+ - fix naming conventions
165+ - export uwrap and wrap value method to be used in nimmu
166+ - link to immuchallenge repo ([ #528 ] ( https://github.com/vchain-us/immudb/issues/528 ) )
167+ - fix typo in cmd help ([ #541 ] ( https://github.com/vchain-us/immudb/issues/541 ) )
168+ - renaming set key generation method
169+ - remove * sv methods
170+ - update readme with SDKs urls ([ #506 ] ( https://github.com/vchain-us/immudb/issues/506 ) )
171+ - move set and get batch in a separate file
172+ - fix naming conventions and typos
173+ - increase testing timeout
174+ - add setBatch, getBatch, setBatchOps method in mock client
175+ - unit testing
176+ - close appendable hash tree on close
177+ - print commiting status after sync
178+ - root method without error
179+ - cbuffer pkg
180+ - cbuffer pkg
181+ - use constants for field len
182+ - simplify linear proof
183+ - remove verification during indexing
184+ - unify kv hash calculation
185+ - LinearProof verification
186+ - minor code change
187+ - multierror handling on close func
188+ - multierror handling on close func
189+ - error naming
190+ - improved comprehensibility of the immudb configuration file
191+ - unify options for appendables
192+ - unify naming
193+ - move options validations to options file
194+ - minor changes in append operation
195+ - hash tree construction
196+ - advances in hash tree and proof construction
197+ - make spec read fields public
198+ - implement commit log for btree and improved reduced dump
199+ - txi commit file ext
200+ - aof as default file ext
201+ - sync also applies to index
202+ - panic if set key fails
203+ - panic when close returns an error
204+ - validate clog size after setting fileSize from metadata
205+ - index file extensions
206+ - return after auto mode
207+ - mode as required flag
208+ - renamed to IndexInfo
209+ - random and monotonic keys
210+ - split code into files, index options exposed for external config
211+ - support for historical value tracing
212+ - changes on historical value tracing
213+ - validate hvalue when reading value from vlog
214+ - newTx method using store values
215+ - check for non-duplication within same tx
216+ - when txInclusion is true then txLinking is made as well
217+ - options validation
218+ - close index when closing store
219+ - add VERSION to metadata section
220+ - time-based flushing
221+ - renaming batchOps in ops and SetBatchOps in ExecAllOps
222+ - solved concurrency issues
223+ - changes to solve and improve concurrency
224+ - copy on insert and fresh snapshots
225+ - when compression is enabled, each append takes place into a single file
226+ - set fileSize based on initial value set at creation time
227+ - change max value length to 64Mb
228+ - return partially written number of bytes when write is not completed
229+ - reorg appendable packages
230+ - moved stress_tool under tools folder
231+ - renamed filesize flag
232+ - use channels for communicating data offsets
233+ - close txlog after completion
234+ - random key-value generation in stress tool
235+ - kv alloc inside tx prep
236+ - parallel IO non-exclusive yet synchorinized with store closing
237+ - open with appendables to facilitate parallel IO
238+ - spec parallel IO in stress tool
239+ - appendale with path
240+ - preparing for parallel IO
241+ - optimized hashtree generation
242+ - minor internal change on commit tx method
243+ - time only considering commit time
244+ - don't print dots if printAfter is 0
245+ - don't print dots if printAfter is 0
246+ - minor typo in error message
247+ - preparing for concurrency optimization
248+ - minor changes in stress tool
249+ - close commit log file
250+ - return EOF when available content is less than buffer size
251+ - make key-value struct public
252+ - add more batchOps tests, fixing naming typo
253+ - fix immudb consistency diagram
254+ - do not store hvalue in index
255+ - add more tests and remove code duplications
256+ - initial commit with functional implementation
257+ - ** embedded/store:** sleep indexing thread until there are entries to be indexed
258+ - ** embedded/store:** internal changes to use innerhash for proof generation
259+ - ** embedded/store:** permit immediate snapshot renewals
260+ - ** embedded/store:** sleep binary linking thread until txs are committed ([ #572 ] ( https://github.com/vchain-us/immudb/issues/572 ) )
261+ - ** embedded/store:** return ErrNoMoreEntries when all tx has been read
262+ - ** embedded/store:** use embedded reusable built-at-once hash tree
263+ - ** embedded/store:** add data consistency validation during dual proof construction
264+ - ** embedded/store:** pre-allocated tx pool used for indexing and proofs
265+ - ** embedded/store:** pre-allocated tx pool used with dual proof
266+ - ** embedded/store:** changed defaults
267+ - ** pkg/api/schema:** increase code readability
268+ - ** pkg/auth:** fix get batch permissions
269+ - ** pkg/client:** client exposes structured values conversion tools
270+ - ** pkg/client:** fix comment
271+ - ** pkg/client/clienttest:** add mock service client constructor
272+ - ** pkg/client/clienttest:** add inclusion, consistency, byIndex mock methods
273+ - ** pkg/client/clienttest:** add missing method inside service client mock
274+ - ** pkg/client/timestamp:** fix naming convention
275+ - ** pkg/server:** remove ScanSV test
276+ - ** pkg/server:** add database name server validator
277+ - ** pkg/store:** add consistency check on zadd and safezadd index reference method and tests
278+ - ** pkg/store:** fix comments in test
279+ - ** pkg/store:** move reference code to a dedicated file
280+ - ** server:** enhance namings related audit report notification
281+
282+ ### Code Refactoring
283+ - batch ops produces monotonic ts sequences, index is mandatory if reference key is already persisted
284+ - ** pkg/client:** decoupled immuclient from rootService
285+ - ** pkg/store:** get resolve reference only by key
286+ - ** pkg/store:** add set separator. Fixes [ #51 ] ( https://github.com/vchain-us/immudb/issues/51 )
287+
288+ ### Features
289+ - inclusion and consistency verification algorithms
290+ - configurable max incomming msg size ([ #526 ] ( https://github.com/vchain-us/immudb/issues/526 ) )
291+ - extend sorted set to support multiple equals key
292+ - getReference is exposed throught gRPC server and in SDK
293+ - client supports paginated scan, zscan, history
294+ - enhance auditor to publish tampering details at a specified URL (optional)
295+ - payload and digest lru caches
296+ - replay missing binary linking entries
297+ - binary linking in-memory integration
298+ - root returns number of entries
299+ - dual proof construction and verification
300+ - towards linear and dual proofs
301+ - dual proof and liearProof against target accumulative linear hash
302+ - dual cryptographic linking
303+ - store accumulative linear hash into mutable hash tree
304+ - towards dual cryprographic linking
305+ - add ZScan pagination
306+ - consistency proof
307+ - multierr custom error wrapping multiple errors when closing the store
308+ - several improvements, data by index
309+ - towards persistent storage of mutable hash tree
310+ - ongoing implementation of appendable hash tree
311+ - add sync method
312+ - TxReader starts from a txID
313+ - IndexInfo to return up to which tx was indexed and error status of indexing task
314+ - add interactive mode for get/set key values
315+ - add method for reading value of a key within a tx
316+ - retrieve the list of ts at which a key was updated
317+ - key updates tracing to support historical reading
318+ - back btree with multi-appendables
319+ - add read numeric values
320+ - initial indexing
321+ - towards k-indexing
322+ - add flag to stress_tool to specify if values are random or fixed
323+ - add lzw compression format
324+ - Add awesome-go badge ([ #554 ] ( https://github.com/vchain-us/immudb/issues/554 ) )
325+ - data compression
326+ - towards data compression capabilities
327+ - set compression setting into value logs
328+ - towards data compression capabilities
329+ - store immutable settings into metadata section
330+ - add log file sizes and number of openned files per log type flags
331+ - enable file mgmt settings
332+ - multi-file appendables
333+ - add metadata to appendables
334+ - include full tx validation and fixed sync issue
335+ - full committed tx verification against input kv data
336+ - add key and value length params in stress tool
337+ - parallel IO support
338+ - optimized for concurrent committers
339+ - added concurrent committers to stress tool
340+ - add cryptographic linking verification of transactions
341+ - add method to retrieve number of committed txs
342+ - export sync mode config
343+ - add batchOps reference operation
344+ - add history pagination
345+ - add reverse zscan and reverse history pagination
346+ - rearrange badges on README ([ #555 ] ( https://github.com/vchain-us/immudb/issues/555 ) )
347+ - data compression support by stress tool
348+ - add atomic operations method
349+ - expose CountAll through gRPC
350+ - ** embedded/htree:** reusable build-at-once hash tree
351+ - ** embedded/store:** add Alh method to get last committed tx ID and alh ([ #570 ] ( https://github.com/vchain-us/immudb/issues/570 ) )
352+ - ** pkg/client:** sdk support index reference resolving)
353+ - ** pkg/client:** add SetAll operation for simple multi-kv atomic insertion ([ #556 ] ( https://github.com/vchain-us/immudb/issues/556 ) )
354+ - ** pkg/client:** sdk support execAllOps
355+ - ** pkg/client/auditor:** enhance auditor to always send audit notification (even when no tampering was detected) if a notification URL is specified
356+ - ** pkg/store:** reference support index resolution
357+ - ** pkg/store:** sorted sets support multiple equal keys with same score
358+ - ** server:** add --audit-databases optional auditor flag
359+
360+ ### Reverts
361+ - chore: increase testing timeout
362+
363+
7364<a name =" v0.8.0 " ></a >
8365## [ v0.8.0] - 2020-09-15
9366### Bug Fixes
@@ -874,7 +1231,9 @@ All notable changes to this project will be documented in this file. This projec
8741231- ** tree:** MTH reference impl
8751232
8761233
877- [ Unreleased ] : https://github.com/vchain-us/immudb/compare/v0.8.0...HEAD
1234+ [ Unreleased ] : https://github.com/vchain-us/immudb/compare/v0.9.0-RC1...HEAD
1235+ [ v0.9.0-RC1 ] : https://github.com/vchain-us/immudb/compare/v0.8.1...v0.9.0-RC1
1236+ [ v0.8.1 ] : https://github.com/vchain-us/immudb/compare/v0.8.0...v0.8.1
8781237[ v0.8.0 ] : https://github.com/vchain-us/immudb/compare/v0.7.0...v0.8.0
8791238[ v0.7.0 ] : https://github.com/vchain-us/immudb/compare/v0.6.2...v0.7.0
8801239[ v0.6.2 ] : https://github.com/vchain-us/immudb/compare/v0.6.1...v0.6.2
0 commit comments