-
Notifications
You must be signed in to change notification settings - Fork 12
Kwil v0.9
Due to increased useage of the preview branch, we are redefining the v0.9 release scope to allow us to get preview features on a stable release. We are removing the SQL and Procedure pricing from the previous scope. The new scope is below.
v0.9 adds a feature for long-running network migrations, which allows networks to release breaking consensus changes with zero downtime. This allows a new network, based off of the old network, to run while the old network begins shutting down. It uses a conflict resolution mechanism (see option b) to merge state from the old network to the new network. This might present a security issue to some networks, and thus may not be suitable for some use cases.
v0.9 adds peer filtering, which gives node operators fine-grained control on who can sync as a peer without the need to set up a VPC. Nodes can be configured to only allow peers that are (any of the following):
- network validators
- a candidate for being a network validator that the node has voted in favor of.
- on a preconfigured whitelist
- manually added via
kwil-admin
while the node is running
v0.9 adds a framework for testing Kuneiform schemas and precompiles. It allows users to write tests as JSON and run them using kwil-cli
. Alternatively, users can run the tests in Go with custom functions that give more fine-grained control over the test cases.
v0.9 adds a new type of extension: hooks. Currently, there are two hooks:
- Genesis Hooks: a function that is called exactly once in the lifetime of a network at the end of the genesis block.
- End Block Hooks: a function that is called at the end of each block.
While the use cases for these are wide-ranging, the primary use case is to allow for Kuneiform schemas to be included as part of a network's core functionality (e.g. to be written to by an oracle).
- A Kuneiform language server Kuneiform extension
- Metrics measuring network throughput for various transaction and block sizes
- Bug fixes for decimal and uint256 encoding and marshalling/unmarshalling
- Kuneiform bug fixes and improvements:
- added
parse_unix_timestamp
andformat_unix_timestamp
functions - added a
notice
function for logging within a procedure - added a
generate_dbid
function for generating dbids within a procedure - added
@authenticator
contextual variable which says the authenticator type that was used - added
@foreign_caller
contextual variable which says which schema called the current procedure (if any) - added
@block_timestamp
which includes the timestamp provided by the CometBFT block proposer - Changed Kuneiform operator precedence to more intuitively match other languages
-
blob
columns supportmin_len
andmax_len
-
uint256
anddecimal
columns supportmin
andmax
- Foreign key violations return position info
- added
- [removed] REST endpoints