Skip to content

Releases: canvasxyz/canvas

v0.10.2

22 Aug 21:20
Compare
Choose a tag to compare

Changed

  • Export SignedMessage type from GossipLog

v0.10.1

22 Aug 21:20
Compare
Choose a tag to compare

Changed

  • Added JS-like number type to ModelDB
  • Added listSessions(), getSession() to AbstractSessionSigner

v0.10.0

22 Aug 21:19
Compare
Choose a tag to compare

Changed

  • Rewrites networking, Merkle sync is now non-blocking on both browser and server
  • Adds experimental WebRTC gossiplog module
  • Better support for concurrent mergeable values. Adds tracking of unique branches in GossipLog
  • Handle undefined in range expressions and action arguments (undefined will be dropped in objects, or replaced with null in arrays)
  • Renamed export() to getMessages() in GossipLog
  • Fixes issues with experimental wallets

v0.8.29

21 May 16:50
Compare
Choose a tag to compare

Changed

  • Fix an issue where the connected peer list could fail to update under heavy load

v0.8.28

15 May 23:49
Compare
Choose a tag to compare

Changed

  • Bug fixes and stability improvements
    • Clean up GossipLog instances when closing Canvas core
    • Throw errors when writing to a GossipLog that has been closed
    • Improve handling of actions with missing sessions
    • Patch autoDialPeerRetryThresholdMs in the libp2p connection manager, because it isn't passed to the dialer component. (Default to 1000ms in the browser)
    • Upgrade to libp2p 1.5.1

v0.8.27

05 May 21:02
Compare
Choose a tag to compare

Changed

  • Adds isUniversalReplication?: boolean option to the discovery service. By default, replication servers will not auto-start topics that are only signaled by other replication servers.
  • Adds bannedTopics?: () => string[] option to the discovery service. Banned topics will not be signaled over active discovery, and replication servers will refuse to replicate them.
  • Adds @canvas-js/probe-server, which uses a headless Chromium browser to verify that replication servers are online.
  • Better metrics and monitoring.

v0.9.1

01 May 16:25
Compare
Choose a tag to compare

Changed

  • Minor bugfixes and improvements
    • Signer methods are now Awaitable<T> instead of Promise<T>
    • Cosmos signers now accept a bech32Prefix
    • Updated dependencies

v0.9.0

24 Apr 09:20
Compare
Choose a tag to compare

Changed

  • This release introduces new codecs and signed data formats in order to support onchain action/session verification.
    • To create actions/sessions that can be verified onchain, use Eip712Signer to sign sessions, and Secp256k1DelegateSigner to sign actions. By default, applications use SIWESigner and Ed25519DelegateSigner.
    • Data formats have changed, and are no longer compatible with past versions' data stored on disk. Applications will need to be reset when moving to 0.9.
  • No further changes are planned for data formats or signatures at this time, so the next release (v0.10) will only be a networking upgrade.
  • This release is optimized for server-to-server sync only, so browser-to-server sync applications (e.g. using full Canvas/libp2p nodes in the browser) should stay on v0.8.26 until v0.10 is released.

Added

  • Added packages/ethereum-contracts with Solidity contracts and examples.
  • Added Postgres support. Canvas applications, ModelDB databases, and GossipLog instances can now use Postgres v14+ as a backing store.

Signers

  • Ethereum EIP712 + Secp256k1
  • Ethereum SIWE + Ed25519
  • Solana SIWS + Ed25519 (beta)
  • Cosmos / Terra / Evmos via Cosmos Wallet / Evmos via Ethereum Wallet (beta)
  • Substrate / Polkadot (unstable)
  • Bluesky (unstable)
  • NEAR (unstable)

v0.8.26

20 Jan 21:06
Compare
Choose a tag to compare

Changed

  • Better logging for some errors that are part of normal expected behavior.
  • Add websocket proxy for apps running using canvas run on Fly.io, so other peers can discover them.

v0.8.25

20 Jan 21:04
Compare
Choose a tag to compare

Changed

  • Accept PrivateKeyAccount objects as signers for @canvas-js/chain-ethereum-viem.
  • Improve connection reliability for apps running without sequencing/history indexing.