Update dependency orbit-db to ^0.26.0 #98
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^0.21.4
->^0.26.0
Release Notes
orbitdb/orbit-db
v0.26.0
Compare Source
Support for js-ipfs 0.50.2 and go-ipfs 0.6.0
v0.25.3
Compare Source
v0.25.2
Compare Source
v0.25.1
Compare Source
Includes
v0.25.0
Compare Source
v0.24.2
Compare Source
v0.24.1
Compare Source
JS-IPFS 0.44 Support
Until now the newest versions of js-ipfs were not supported. This was primarly because of js-ipfs api's move to async iteration starting in version 0.41. Now js-ipfs versions 0.41-0.44 are supported.
Relevant PRs:
Store Operation Queue
All included stores (and any store extending orbit-db-store v3.3.0+) now queues operations. Any update sent to a store is executed sequentially and the store's close method now awaits for the queue to empty.
Relevant PRs:
Docstore putAll Operation
A new method was added to the docstore named 'putAll'. This method allows for multiple keys to be set in the docstore in one oplog entry. This comes with some significant performance benefits. Something to note is any nodes running an older version of the docstore will ignore any changes made by putAll operations.
Relevant PRs:
Oplog Events
It is now possible to listen for specific store operations as they are added to the store. To learn more about how to use this you can review the documentation and look at event
log.op.${operation}
.Relevant PRs:
orbit-db tests
Tests now use orbit-db-test-utils package to deduplicate test utilities. It had already been used in most subpackages like orbit-db-store but now it's used in the orbit-db repo!
Relevant PRs:
orbit-db-store sync method
A method on orbit-db-store named sync is now an async method and only resolves after oplog heads have been added.
Relevant PRs:
Electron Renderer FS Shim
Fixes a bug related to the native filesystem when used in electron.
Relevant PRs:
Re-exports
Now import AccessControllers, Identities, and/or Keystore modules from OrbitDB with object destructuring like so:
const { AccessControllers, Identities, Keystore } = require('orbit-db')
Relevant PRs:
v0.24.0
Compare Source
v0.23.1
Compare Source
v0.23.0
Compare Source
Performance Improvements
Performance improvements have been made to both writing and loading.
Our benchmarks show an increase of 2-3x loading and writing speeds! 🎉
The speed-up between the versions is more pronounced as the size of the database increases:
To try out the benchmarks for yourself run
node benchmarks/benchmark-load.js
Entry references
Each entry added now contains references to previous entries in powers of 2 distance apart up to a maximum distance of
referenceCount
(default 32) from it, speeding up both writing and loading and resulting in smaller entry sizes. #275Signature Caching
The default keystore and identity-provider now have caches added to speed up verification of entry signtures and identities. See #53 and #38
Offline mode
An optional
offline
flag has bee added which, when set totrue
, prevents pubsub from starting and messages from being exchanged. This is useful to speed up testing and for when you would like to use your database locally without networking enabled.To use offline mode, start your IPFS nodes offline (with
new IPFS({ start: false })
) and create your OrbitDB instance as follows:Note that an
id
will need to be passed if your IPFS node is offline. If you would like to start replicating databases after starting OrbitDB in offline mode, the OrbitDB instance needs to be re-created. See #726Pinning and Garbage Collection
OrbitDB does not automatically pin content added to IPFS. This means that if garbage collection is triggered, any unpinned content will be erased. An optional
pin
flag has been added which, when set totrue
, will pin the content to IPFS and can be set as follows:Note that this is currently experimental and will degrade performance. For more info see this issue.
It is recommended that you collect the hashes of the entries and pin them outside of the
db.put/add
calls before triggering garbage collection.v0.22.1
Compare Source
v0.22.0
Up to 10x Performance Increase in Appends 🎉
sortFn
now at the top levelorbit-db-storage-adapter
now provides cache and keystore interop for mongo, redis, and anyabstract-leveldown
(semi-)Breaking Changes
To improve performance, this release changes the way caches are managed.
Cache Directory Locations
Your cache directory structure will change. There is a migration script that will run upon creating the database.
Old Structure (node.js default):
New Structure (node.js default):
identityKeysPath
is optional, but important!Read more about what this release includes here.
Renovate configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻️ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.