-
Notifications
You must be signed in to change notification settings - Fork 1.2k
🚀 0.23 Release 🌟 #795
Comments
@haadcode I already know that orbitdb, orbit-core and ipfs-log tests will fail because the "Improving Init endeavor" has happened, see the updated one here: https://github.com/ipfs/js-ipfs#ipfs-core-use-ipfs-as-a-module. Could you timely update orbit to check everything is working fine? Thank you :) |
@lgierth, once you have deployed bootstrapers with 0.4.7, could you list their multiaddrs here. Thank you. |
|
tldr: I won't be able to update Orbit and its modules to use the new init quickly. I don't think I can change Orbit just yet to use the new init. As Orbit uses both, js-ipfs and js-ipfs-api, it expects to have the same API regardless of the module. I might be able to hack it so that ipfs-daemon uses two different APIs under the hood, but I'd rather avoid that. Furthermore, since the constructor options object is slightly different in ipfs-daemon (which is what Orbit uses) than how it is for js-ipfs, I will have to update all modules to use the different keys. I'll take a look what I can do in ipfs-daemon and perhaps there's a quick way to conform to the new init, but I won't be able to do that until mid/end of the week. @diasdavid if you need to move fast with this, go ahead and leave Orbit tests out of the release. We know they're broken (as you said) and I'll make sure on Orbit side that once it uses js-ipfs@0.23.0, it all works. |
In terms of API, it remains exactly the same, the only thing that is different is the 'init->load->goOnline' step, which was exclusive to js-ipfs. UPDATE: I've checked your code and what you have to change is only this function https://github.com/haadcode/ipfs-daemon/blob/master/src/ipfs-node-daemon.js#L38-L95 to: const node = new IPFS({
repo: <repopath>,
start: false
config: { // overload the default config
Addresses: {
Swarm: [
'/libp2p-webrtc-star/dns4/star-signal.cloud.ipfs.team/wss'
]
}
}
})
node.on('init', () => {
// node has init'ed
}) And then on your https://github.com/haadcode/ipfs-daemon/blob/master/src/ipfs-node-daemon.js#L97-L119 node.start(callback) |
answer to @dignifiedquire's 'blocker' - https://github.com/ipfs/js-ipfs/compare/fix/race?expand=1 |
Understood. What I meant was that Any thoughts on putting this into I wonder, do we know how many other isomorphic apps are out there that use both modules? |
See:
tl;dr; Yeah, I want that too :) |
Interop tests are passing ae4bb9d And so are unit and sharding |
Bootstrapers are on by default now too \o/ |
@haadcode I wanted to PR an update to ipfs-daemon, but I got lost. What is the branch you use today? Master seems out of date for a while and it is not the version that is published on npm. As per your suggestion, going to drop orbit tests for this release. |
Updated the first post to include all the highlights and a Future section :) |
All right, all remaining tasks are done 🎉 Fellow InterPlanetary Citizens, prepare for the launch, we will make this release in 24~48 Hours, unless there is a major issue found. Now is the time to test it and provide as much feedback as possible. Thank you, godspeed! |
\o/ |
Ok, last bits to get in for this release: |
Surprise 🎁 js-ipfs now supports unixfs sharding as well!To enable it, simply: const node = new IPFS({
EXPERIMENTAL: {
sharding: true // enable dir sharding
}
}) If you are not familiar with sharding, you can read more about it here: ipfs/notes#76. It essentially enables you to add directories with many entries without causing a single node in the graph to become really large due to having lots of links and clogging the bitswap wire protocol. Big thank you to @pgte for reviewing the Sharding implementation in go-ipfs and implementing this in JavaScript as well 🎉 |
|
Seems |
@diasdavid it used to work for me, but maybe you were missing the right gh token? |
@dignifiedquire I just refreshed it, let's see |
Highlights
✨ A new way API is born, welcome to
.dag
The new DAG API (available through
ipfs.dag
) offers a new way to create and operate over any MerkleGraph, today it has support for the IPFS MerkleDAG (referenced as dag-cbor), the new dag-cbor (which lets you drop json into IPFS seamlessly) and a preview of Ethereum.You can learn how to use it through:
If you are new to the Merkle Forest, make sure to watch @jbenet's talk "Enter the Merkle Forest"
🙌🏽 Interoperability with go-ipfs is here!
This took us more time than what we had initially expected, however, now it is a thing of the past, you can dial to a go-ipfs node and exchange files without going through complicated set ups, it just works™
If you would like to know more about the issue we faced, you can find more info here: "Stream Muxing issues between go-ipfs and js-ipfs are a thing of the past"
Note: Interop is only fully available with go-ipfs 0.4.7 and onwards, if you haven't updated yet, please do so by visiting http://dist.ipfs.io/.
🌍 js-ipfs will now also bootstrap with bootstrap nodes as well
Same way that go-ipfs does, now your jsipfs daemon will bootstrap itself with the bootstraper nodes. This was easy once we had the Stream Muxing figured out.
> jsipfs swarm peers /ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ /ip4/104.236.176.52/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z /ip4/104.236.179.241/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM /ip4/162.243.248.213/tcp/4001/ipfs/QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm /ip4/128.199.219.111/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu /ip4/104.236.76.40/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64 /ip4/178.62.158.247/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd /ip4/178.62.61.185/tcp/4001/ipfs/QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3 /ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx
⚡️ Starting an IPFS instance is easier than ever
We've heard you, starting an ipfs instance was cumbersome 3 step process, but not anymore!
Now, all you need to do to start an instance is:
That's it! See more Usage examples in the README
💾 Datastore is here!
We've migrated away from pull-blob-store/blob-store to
datastore
, the storage interface that is used in go-ipfs. This was a requirement towards implementing the DHT on js-ipfs.👩🏽🏫 New tutorial! Transfer files between browser and desktop nodes
We've build a new Tutorial in how to use js-ipfs that explain how to interact with other nodes, from connecting, discovering and exchanging files. The tutorial is the most bare bones possible (i.e no frameworks) so that it focus on IPFS.
Find this tutorial at our examples folder
👏🏽 jsipfs add --wrap-with-directory is now a feature!
Thanks to @harshjv, now you can add files wrapped in a directory just like go-ipfs. Example:
Remaining tasks before release
Standard release checklist
Run tests of the following projects with the new release:dropped per @haadcode suggestionorbitdborbit-coreipfs-logExciting future (soon™)
Here is a quick list of things that we will be heads down after this release
The text was updated successfully, but these errors were encountered: