Skip to content

Beta 0.6.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@dr-frmr dr-frmr released this 11 Mar 15:59
· 1554 commits to main since this release
fccff76

This release of Kinode OS contains breaking changes to several APIs: eth:distro:sys, app_store:sys, terminal:sys, the capabilities system, and the package metadata format. The version of WASI used has been updated, meaning that apps must also update their WASI dependency. Apps should also upgrade to the new kinode_process_lib version 0.6.0. Lastly, the password/login system has changed to provide more security in a hosted environment. Nodes that were booted with 0.5.x versions must reset their passwords. Note that the runtime has not undergone any security audits and must be used at your own risk.

eth:distro:sys

The RPC Provider runtime module has been rewritten to support multiple chain IDs and multiple data sources, which can either be RPC URLs or other nodes. The API has changed to include chain ID in requests. Full API docs here: https://book.kinode.org/apis/eth_provider.html

app_store:sys

The App Store has undergone breaking changes in order to unify onchain app metadata and package metadata. The format of the metadata.json file has changed such that it can be the metadata for the app's ERC-721 onchain. See here for the new format: https://book.kinode.org/my_first_app/chapter_1.html#metadatajson

terminal:sys

Scripts have been adjusted slightly using the new capabilities system. Piping has been removed because it was unintuitive/buggy. It may be reintroduced in the future.

Capabilities

The kernel now has functionality to drop capabilities from a process, which can be accessed by a new function in kinode.wit: drop-capabilities. A process can only drop its own capabilities, but root access to the kernel includes the ability to drop capabilities from any process.

Boot instructions have changed:

To run the binary, you must indicate where the home folder for the node will be. You may also optionally specify your HTTP port. The default if unspecified is 8080. Here's an example:
./kinode home/mynodename

For most purposes, you should be booting a testnet node on ETH Sepolia:

./kinode home/mynodename --testnet
Testnet nodes must use the --testnet flag on boot.

What's Changed

Full Changelog: v0.5.3-alpha...v0.6.0