Skip to content

Releases: canvasxyz/canvas

v0.8.14

27 Dec 22:02
Compare
Choose a tag to compare

Changed

  • Upgrade to libp2p 1.0 to resolve issues with pnpm dependency resolution
  • Clean up some internal services

v0.8.12

05 Dec 20:23
Compare
Choose a tag to compare

Changed

  • Fix a regression introduced in a recent libp2p patch.
  • Also turn off WebRTC in browser nodes, when an app is configured with enableWebRTC: false.

v0.8.11

05 Dec 19:54
Compare
Choose a tag to compare

Changed

  • Fix issues when running multiple instances of the universal replication server on the same discovery topic.

v0.8.5

05 Dec 19:55
Compare
Choose a tag to compare

Changed

  • Fix issues with connection status being incorrectly propagated to the client.

v0.8.2

04 Dec 22:00
Compare
Choose a tag to compare

Fixes a dependency issue.

Changed

  • Use bytesToHex/hexToBytes instead of Buffer in non-polyfilled environments.

v0.8.1

04 Dec 05:04
Compare
Choose a tag to compare

Stability improvements.

Changed

  • Rebroadcast the session along with every action over pubsub
  • Allow actions with missing parents to be applied if history indexing is off
  • Change app.connections to a mapping of PeerIDs to detailed information about the peer, including connection status and whether that peer is subscribed to the application topic
  • Ping peers to detect if we have a valid connection
  • Maintain app.status which tracks if there is at least one online connection, subscribed to the application topic

v0.7.2

03 Dec 07:26
Compare
Choose a tag to compare

Stability improvements.

Changed

  • Prevent multiple tabs from trying to use the same PeerId
  • Prevent locks for Merkle sync from being held indefinitely
  • Reduce GossipSub penalties for misbehaving peers
  • Default to using browser-to-server WebSocket transport; only use browser-to-browser WebRTC if enableWebRTC: true is set in the config
    • You should use WebSocket for production applications now.
    • Note that using WebSocket means you must use a replication server (i.e. canvas cli or another persistent node in the cloud). See below for a universal solution to this.
  • Applications now start libp2p automatically
    • app.start/stop() have been moved to app.libp2p.start/stop() but are no longer needed.
  • Adds a heartbeat message type, in preparation for live presence support.

Added

  • @canvas-js/replication-server: A universal replication server that watches a discovery topic and saves and replicates all actions on all topics broadcast to it.
    • If you configure any application with the universal replication server's discovery topic, the application will automatically be replicated.

v0.7.0

29 Nov 18:41
Compare
Choose a tag to compare

Changed

  • Add active peer discovery to @canvas-js/discovery. Applications can configure a peer discovery topic, where clients will broadcast a regular heartbeat. The same peer discovery topic can be shared across Canvas applications, for e.g. a network of chat rooms
  • Unified syntax for database accessors. We now use db.get("table") everywhere instead of db.table.get() inside the contract

Added

  • Added boolean type to ModelDB
  • Added json type to ModelDB
  • Added useTick() hook

v0.6.1

11 Nov 01:41
Compare
Choose a tag to compare

Changed

  • Add new signers
  • Update signer internals
  • Update libp2p to address some WebRTC peering issues

Added

  • @canvas-js/chain-cosmos
  • @canvas-js/chain-atp
  • @canvas-js/chain-solana
  • @canvas-js/chain-substrate

v0.5.0

27 Oct 16:55
Compare
Choose a tag to compare

Changed

  • Rewrite the entire framework! 🎉
  • Add causal graph structure to the action log
  • Separate ModelDB and GossipLog into standalone packages
  • New basic data structures using the IPLD data model
  • New SessionSigner interface
  • Use WebRTC for direct browser-to-browser peering
  • Support db.get inside contracts via history indexing

Added

New packages:

  • @canvas-js/signed-cid
  • @canvas-js/modeldb
  • @canvas-js/gossiplog
  • @canvas-js/discovery
  • @canvas-js/templates
  • @canvas-js/vm