Skip to content

Releases: kwilteam/kwil-db

v0.7.6

16 May 17:01
Compare
Choose a tag to compare

What's Changed

  • kwild,rpc: db and rpc timeout settings (235a1f1). This introduces two timeout settings: rpc_timeout and db_read_timeout. The DB timeout applies to DB read operations in the Call and Query service methods. The RPC timeout applies to all RPCs, and includes the entire request-response roundtrip.
  • pg: always release conn on commit/rollback error (5824d29). This resolves a potential leak of DB reader connections, and a shutdown hang.

Full Changelog: v0.7.5...v0.7.6

There are no changes to the core or parse modules.

Build

This release is built with Go 1.22.3

v0.7.5

14 May 16:29
Compare
Choose a tag to compare

What's Changed

  • Fix loading of environment variables for kwild config. (a325df6). Environment variables for all kwild config settings are now being respected. They were incorrectly bound previously.
  • core: kgw cookie on multi providers (5bdd5c3). Add support for kgw cookies that contain tokens for multiple domains.
  • Update go.mod for core module version bump (c4e11f5).
  • kwild: fix cometbft client not setting "syncing" (2730871). This fixes the "syncing" field of the node status command response always being false.

Full Changelog: v0.7.4...v0.7.5

Build

This release is built with Go 1.22.3

v0.7.4

26 Apr 00:24
1e4abb3
Compare
Choose a tag to compare

What's Changed

  • kwild: fixes bug where oracle txs were not properly voted on in single-node networks (57cb1d6)
  • kwild: fixes bug where schema extensions are not properly returned by the RPC service (1e4abb3)
  • kwild: returns a declared error type when an invalid signature is verified in the functions RPC (4863d69)
  • core: gwclient auth precheck (577f5e4)
  • core readme and example app (62f3099)

(since v0.7.2, as v0.7.3 was unreleased)

Full Changelog: v0.7.2...v0.7.4

v0.7.2

10 Apr 18:22
Compare
Choose a tag to compare

What's Changed

  • core: fix parse kgw error, so it output detailed message (1417711). Correctly parse common kgw errors, so it outputs detailed a message.
  • version: bump to 0.7.2 in vanilla go builds (b22a5f2).
  • ci: test kgw in release workflow (1744789).
  • http: strip trailing slashes from "BasePath" (d6820ac) This change fixes our http client constructors to trim trailing slashes.
  • ci: run kwil-js test (0df049b)
  • gatewayclient: fix domain compare when match cookie (e567538). Prevent re-prompting for authentication because of incorrect cookie matching based on a domain string that included port
  • use core/v0.1.2 for release (4b1819b).

Full Changelog: v0.7.1...v0.7.2

v0.6.7

10 Apr 18:14
Compare
Choose a tag to compare

What's Changed

  • added read timeouts for registry SQL queries (e5216ad).
  • core/rpc/client/user/http: read and interpret error messages (47ccd8b). Add uniform error parsing to each of the http client methods. The server doesn't emit "unknown" status codes resulting in http responses with 500 status codes.
  • core: fix parse kgw error, so it output detailed message (83d4844). Correctly parse common kgw errors, so it outputs detailed a message.
  • bump version string to v0.6.7 (ad4a4eb).
  • http: strip trailing slash from "BasePath" (7226024). This change fixes our http client constructors to trim trailing slashes
    from the base URL, preventing confusing 404 not found errors from kwil-cli.
  • gatewayclient: fix domain compare when match cookie (0bbb562). Prevent re-prompting for authentication because of incorrect cookie matching based on a domain string that included port.

Full Changelog: v0.6.6...v0.6.7

v0.7.1

29 Mar 19:31
v0.7.1
Compare
Choose a tag to compare

What's Changed

  • abci,kwild: write in-memory cometbft confs to disk for inspect (69adf12). The cometbft command line application's inspect and rollback commands are supported on the "abci" subfolder of kwild's root directory, while the node is stopped. A rollback will require recreating the entire PostgreSQL database to replace all blocks.
  • engine: create a max procedure call stack depth (b74380e). Limit action recursion depth.
  • sql,pg,engine: rework sql interfaces (6ef9117). This internal change does not affect users or node operation.
  • abci,txapp,kwild: new chain meta store (5dc2d6b, ff06172). Migrate the applications metadata store, which contains current best block, into the PostgreSQL tables with the other application data. This prevents a number of deployment gotchas.
  • server,pg: fix shutdown sequence (8326adf). This makes shutdown more robust, preventing a possible apphash computation error for a block being finalized during shutdown.

Full Changelog: v0.7.0...v0.7.1

v0.7.0

12 Mar 00:04
da52bba
Compare
Choose a tag to compare

Introduction

Kwil v0.7 changes the underlying database engine from SQLite to Postgres. Furthermore, Kwil v0.7 features a new programmable oracle system, allowing network validators to simultaneously operate as network oracles.

Breaking Changes

Kwil v0.7 has a few minor breaking changes. These were mostly due to changing the underlying database, and removing incompatible features that are not used:

  • Removes several SQLite specific functions that were exposed in Kuneiform and unused.
  • Removes RTRIM and BINARY collation types.
  • Extra type safety in the database enforces type-casting for any statement that performs math on two parameters without utilizing a database column. For example, SELECT $1 + $2; must now be SELECT $1::int + $2::int;.
  • Node operators must now specify a Postgres instance to connect to when starting their node.

Kuneiform

  • Kuneiform now features type assertions for all SQL language expressions. Type assertions can be added to any expression using double colons: SELECT id::text, username FROM users WHERE age%10 = ($age%10)::int;.
  • Kuneiform now supports the SUM() aggregate functions.

Nodes

  • When running kwild, a Postgres connection with superuser access must be specified. It must have the following configurations:
    • wal_level=logical
    • max_wal_senders=10
    • max_replication_slots=10
    • max_prepared_transactions=2
  • Nodes can be configured to credit account balances based on EVM logs. Logs must follow the log signature Credit(address,uint256).

Extensions

Coinciding with the open-sourcing of Kwil, v0.7 includes new compile-time extensions. Using compiled extensions, developers can build custom kwild binaries with custom rules, logic, and functionality. Examples for each type of extension have been included. The different types of extensions are:

  • auth: Custom hooks for asymmetric cryptographic signature verification. This allows networks to build support for virtually any type of asymmetric signature scheme, which will integrate wallets directly into Kwil's native account store. Examples include ed25519 signatures and NEAR's nep413 signing standard.
  • actions: Custom action execution logic, which was debuted using Docker containers in v0.5, can now be compiled directly into the kwild binary. Compiled action extensions can directly read and write to network schemas, as well as to Postgres directly. Examples include an ad-hoc DML/DQL extension, allowing networks to support ad-hoc user-submitted INSERT, UPDATE, DELETE, and SELECT statements.
  • oracles (experimental): Nodes can be programmed to operate as network oracles, receiving rewards when successfully performing oracle duties. Oracles are meant to be driven around event data from other systems, such as EVM logs. >2/3rds of the validating power of the network must agree on an event within a pre-defined time period. Examples include an erc20 deposit oracle, which is capable of crediting users native Kwil gas when an EVM log is triggered.
  • resolutions (experimental): Related to oracles, resolutions can be programmed to specify custom logic to be executed when external event data has been agreed upon by >2/3rds validators. Examples include gas credits, which credit native Kwil accounts.

v0.6.6

06 Mar 15:21
71c4d28
Compare
Choose a tag to compare

This version works with kgw v0.1.2.

What's Changed

  • fix gateway client auth error by @Yaiba in #566
  • feature: handle __Host- cookie prefix in kgw https by @Yaiba in #573
  • update go releaser conf by @Yaiba in #575

Full Changelog: v0.6.5...v0.6.6

v0.7.0-beta

16 Feb 22:08
Compare
Choose a tag to compare
v0.7.0-beta Pre-release
Pre-release

Introduction

Kwil v0.7 changes the underlying database engine from SQLite to Postgres. Furthermore, Kwil v0.7 features a new programmable oracle system, allowing network validators to simultaneously operate as network oracles.

Breaking Changes

Kwil v0.7 has a few minor breaking changes. These were mostly due to changing the underlying database, and removing incompatible features that are not used:

  • Removes several SQLite specific functions that were exposed in Kuneiform and unused.
  • Removes RTRIM and BINARY collation types.
  • Extra type safety in the database enforces type-casting for any statement that performs math on two parameters without utilizing a database column. For example, SELECT $1 + $2; must now be SELECT $1::int + $2::int;.
  • Node operators must now specify a Postgres instance to connect to when starting their node.

Kuneiform

  • Kuneiform now features type assertions for all SQL language expressions. Type assertions can be added to any expression using double colons: SELECT id::text, username FROM users WHERE age%10 = ($age%10)::int;.
  • Kuneiform now supports the SUM() aggregate functions.

Nodes

  • When running kwild, a Postgres connection with superuser access must be specified. It must have the following configurations:
    • wal_level=logical
    • max_wal_senders=10
    • max_replication_slots=10
    • max_prepared_transactions=2
  • Nodes can be configured to credit account balances based on EVM logs. Logs must follow the log signature Credit(address,uint256).

Extensions

Coinciding with the open-sourcing of Kwil, v0.7 includes new compile-time extensions. Using compiled extensions, developers can build custom kwild binaries with custom rules, logic, and functionality. Examples for each type of extension have been included. The different types of extensions are:

  • auth: Custom hooks for asymmetric cryptographic signature verification. This allows networks to build support for virtually any type of asymmetric signature scheme, which will integrate wallets directly into Kwil's native account store. Examples include ed25519 signatures and NEAR's nep413 signing standard.
  • actions: Custom action execution logic, which was debuted using Docker containers in v0.5, can now be compiled directly into the kwild binary. Compiled action extensions can directly read and write to network schemas, as well as to Postgres directly. Examples include an ad-hoc DML/DQL extension, allowing networks to support ad-hoc user-submitted INSERT, UPDATE, DELETE, and SELECT statements.
  • oracles (experimental): Nodes can be programmed to operate as network oracles, receiving rewards when successfully performing oracle duties. Oracles are meant to be driven around event data from other systems, such as EVM logs. >2/3rds of the validating power of the network must agree on an event within a pre-defined time period. Examples include an erc20 deposit oracle, which is capable of crediting users native Kwil gas when an EVM log is triggered.
  • resolutions (experimental): Related to oracles, resolutions can be programmed to specify custom logic to be executed when external event data has been agreed upon by >2/3rds validators. Examples include gas credits, which credit native Kwil accounts.

v0.6.0

06 Dec 19:16
Compare
Choose a tag to compare

What's Changed

Read more