Releases: canvasxyz/canvas
Releases · canvasxyz/canvas
v0.8.14
v0.8.12
v0.8.11
v0.8.5
v0.8.2
v0.8.1
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
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 toapp.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
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 ofdb.table.get()
inside the contract
Added
- Added
boolean
type to ModelDB - Added
json
type to ModelDB - Added
useTick()
hook
v0.6.1
v0.5.0
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