Notable changes to Convex core modules will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Better CNS functionality
- Support for tagged forms in Convex Reader
dissoc-in
,update
andupdate-in
core functionsswitch
conditional macro- Tagged values in Reader (e.g.
#Index {}
) evict-peer
core function to remove old / understaked peers- Automatic distribution of rewards to peers / delegated stakers
- Generalised CAD3 data support
- Class hierarchy refactoring for
convex.core.cpos
- More GUI updates
- Reader performance enhancements
- Booleans no longer cast to the Integers 0 / 1
- Update some errors thrown for failed casts
set!
now allows pending definitions- Better internal handling of peer fees
- Rename
stake
toset-stake
- Docker
Dockerfile
build for self-contained peer container
- Better format / HTML building for peer web app with j2html
- Better CLI design for
convex account balance
andconvex account info
- Better handling for JSON results in REST client
NOTE: Due to to an apparent issue in Maven Central, this release was only partially uploaded. It is recommended to avoid depending upon this release.
- New main class for both GUI and desktop ("MainGUI")
- New
convex-integration
module - DLFS base implementation and browser
- Better Result and
log
information
- Updated CLI and GUI functionality
- Significant internal refactoring
- Upgrades to default REST API and OpenAPI documentation
- Better error handling
- Convert core modules to JPMS
- New Convex Deskup GUI interface ("MainGUI")
- BIP39 key generation support
- Observability support initial version
- Support for
@
andresolve
for CNS resolution - Extra special ops:
*nop*
,*parent*
,*controller*
,*memory-price*
and*env*
query-as
function (query mode equivalent toeval-as
)- Convex Lisp
quasiquote
implementation - Extra example code and tests
- Data Lattice File System (Prototype)
- Updated CLI and GUI functionality
- Significant internal refactoring
- Encoding changes for better memory efficiency
- Upgrades to default REST API
- More efficient signing protocol / SignedData compressed format
- CNS improvements
- More efficient encodings for CVM core definitions and ops
- Switch from
:callable?
to:callable
for metadata on callable actor functions - Etch encoding changes. Will require fresh Etch database.
- Renamed
BlobMap
toIndex
- Miscellaneous edge cases and error handling
- Bug fixes for message decoding
- Asset ownership based trust monitor
convex.trust.ownership-monitor
- Peers now utilise quick Belief broadcasts (own Order changes only)
- Basic fork detection and recovery from historical states
- Account controllers can now be any scoped actor
- Various adjustments to improve CPoS latency
- Experimental adjustments to CVM constants
- Bug fixes for message decoding
- Scoped Actors
- BIP39 compatible seed generation
- Variable sized Etch index levels
- Ability to set `juice-limit in a Context (thanks @helins!)
- Extra consensus confirmation levels and configuration options
- Make
blob
casts support arbitrary sized integers - Remove unnecessary generic type parameter from Context class
- Updates to GUI implementation
*juice*
now starts at 0 and counts upwards towards a juice limit
- Various improvements for efficient consensus
- Support for arbitrary sized integers (Part 1)
- Better support for CI builds
- Allow
merge
andslice
to work with Indexs
- General update of dependencies to most recent versions as of Apr 2023
- Refactoring of Sodium crypto libraries to separate convex-sodium module
- Sequence numbers are now incremented at end of transaction. sequence behaves "as-if" already updated.
- New networking message model
- Fix for printing of single quotes (see #407)
- Fixed most Javadoc warnings
- Fixed issue with encoding of
set!
Op - Tighten casting behaviour
- Better management of message queues and server threads
- Fix for Java 11 compatibility with Etch
- Refactoring Etch seekMap for Java 11 support see #394
- Avoid static initialisation for executor thread pool used in stress testing
- REST API Server
- Support for parameterised asset paths in
convex.asset
as per CAD19 - Multi-token reference implementation for single actor supporting many fungible assets
- Add missing
double?
predicate - OpenAPI REST specification
- Static compilation enabled for
convex.core
functions - Better JSON utility support
- Correct handling for negative zero in min and max
- Fixed handling for octal and unicode escape sequences in Reader
print
core function for readable representationssplit
andjoin
core functions for Stringsslice
core function- Add
VectorBuilder
utility class for fast Vector construction declare
core macro- Additional benchmarks
- Mnemonic refactoring, add BIP39 word list
- Edge cases around UTF-8 string handling
- Adversarial test cases for Encodings
- Efficient BlobBuilder utility class
- Convert CVM Characters to be Unicode code points
- Convert CVM Strings to be UTF-8 (backed by Blobs)
- Import convex-java as a submodule
- Miscellaneous edge cases with canonical encodings
- Update logback dependency to fix potential security issues
- Better validation for canonical Cells and Refs
- Require all Blocks in an Order to be Signed
- Support
empty?
predicate on allCountable
CVM values - Update
Block
format to remove Peer Key (get this from Signature)
- Catch NIOServer CancelledKeyException on Linux (thanks Otto!)
- Constant compilation for
:static
declarations in core / other libraries
- Additional validation for message formats
- Make
empty?
work on all Countable data types
- Set can now be constructed with any Countable
- Convex.queryXXX methods now return a CompletableFuture instead of Future
- Some Juice cost adjustments
empty?
now works on any Countable structure (including Strings and Blobs)RefSoft
instances now directly reference a store instead of relying on thread locals- Miscellaneous internal refactoring for Peers
- Eliminate non-canonical NaN values
- Server now generates a keypair automatically if required
- Added
for-loop
for imperative C-style looping - Support casting Longs <-> Blobs
- Bitwise Long operations bit-and, bit-or, bit-xor and bit-not
- Convenience overloads for Convex client API query and transact with String values
- Fix for Etch data length persistent issue
- Initial Public Alpha release
- Core CVM
- Convergent Proof Of Stake Consensus
- Command Line Interface (CLI)
- GUI Testing Interface
- Benchmark Suites