Skip to content

Commit f298a82

Browse files
committed
release: v0.9.0-RC1
Signed-off-by: Michele Meloni <[email protected]>
1 parent e271c9c commit f298a82

File tree

2 files changed

+361
-2
lines changed

2 files changed

+361
-2
lines changed

CHANGELOG.md

Lines changed: 360 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export GO111MODULE=on
1616

1717
SHELL=/bin/bash -o pipefail
1818

19-
VERSION=0.8.0
19+
VERSION=0.9.0-RC1
2020
TARGETS=linux/amd64 windows/amd64 darwin/amd64 linux/s390x
2121
SERVICE_EXE=${SERVICE_NAME}-v${VERSION}-windows-amd64.exe
2222

0 commit comments

Comments
 (0)