Comments (9)
@youngjoon-lee That would awesome, and a very useful feature for a chat app such as this. If you would like to do this, please feel free to! I had some idea about this myself about perhaps integrating with https://github.com/ipfs/helia as a backend for storing files
from universal-connectivity.
@youngjoon-lee That would awesome, and a very useful feature for a chat app such as this. If you would like to do this, please feel free to! I had some idea about this myself about perhaps integrating with https://github.com/ipfs/helia as a backend for storing files
Thank you! I'll share a draft PR with you soon!
from universal-connectivity.
@youngjoon-lee request/response or libp2p + HTTP is an active area of development right now. There is a spec being written: libp2p/specs#508 and some draft PRs in go-libp2p right now. In js-libp2p we have this prototype: https://github.com/MarcoPolo/js-libp2p-fetch
Adding this is a high priority for the team atm, so please stay tuned!
Wrt integrating with Helia in this repo: You're right, the goal of this project is to showcase different libp2p transports/connectivity capabilities all in one application. We'll be creating a tutorial that shows how to build it etc: #67
I think adding a Helia integration would be cool, but maybe in a forked repo?
One of our goals after finishing up this app was to create a guide on fetching a CID with Helia using the libp2p peers.
Depending on how your organize the new integration in the codebase, I think there's a case for the fork to be merged in here too
from universal-connectivity.
For the sake of simplicity, given that you are already planning to publish to a gossipsub topic, you might as well include the nodes addresses in the announcement, thus alleviating the need for Kademlia and its Provider system.
Thank you! That’s definitely more efficient. 👍
I have a short question. It seems that the request-response protocol is implemented only in rust-libp2p, not in js-libp2p and go-libp2p.
The request-response
module is just an abstraction to send a request and receive a response on a stream. You can do this in all other languages too! Just use the same codec.
For example, soon, there will be out-of-the-box JSON and CBOR support: libp2p/rust-libp2p#3952
The only convention that you need to follow in other languages is to close the stream after writing (both for requests and responses).
from universal-connectivity.
@youngjoon-lee Btw if you're interested in working on this, I think this would be a good project for HackFS our upcoming hackathon: https://ethglobal.com/events/hackfs2023
Would love it you join (registration ends 11:59pm ET)
Thank you! I will
from universal-connectivity.
Browser A clicks a send-file button next to the message textbox. Then, a file browser is opened. The user selects a file. The browser holds the file in memory and provide the file using Kademlia (start-providing). Plus, Browser A publishes a special message
FileAd(name)
via gossipsub.
For the sake of simplicity, given that you are already planning to publish to a gossipsub topic, you might as well include the nodes addresses in the announcement, thus alleviating the need for Kademlia and its Provider system.
from universal-connectivity.
For the sake of simplicity, given that you are already planning to publish to a gossipsub topic, you might as well include the nodes addresses in the announcement, thus alleviating the need for Kademlia and its Provider system.
Thank you! That’s definitely more efficient. 👍
I have a short question. It seems that the request-response protocol is implemented only in rust-libp2p, not in js-libp2p and go-libp2p. Is the request-response not a part of the official libp2p spec? or is it a deprecated spec? If so, I need to consider using IPFS as @p-shahi suggested above, but I’m not sure if it’s okay to use IPFS in this repo, considering the coverage/purpose of this universal-connectivity topic
from universal-connectivity.
As far as an example that uses IPFS in a browser to share files, I'm just passing on that there is https://github.com/ipfs-shipyard/ipfs-share-files and there is an issue (ipfs-shipyard/ipfs-share-files#136 ) to move it to Helia. I'm just passing that on as an FYI.
from universal-connectivity.
@youngjoon-lee Btw if you're interested in working on this, I think this would be a good project for HackFS our upcoming hackathon: https://ethglobal.com/events/hackfs2023
Would love it you join (registration ends 11:59pm ET)
from universal-connectivity.
Related Issues (20)
- Browser to browser connectivity not established with IPv6 HOT 2
- Display browser nodes listen addresses in UI HOT 2
- rust-peer: Identify Protocol String HOT 4
- Create a tutorial HOT 4
- Make this app discoverable
- Upgrade to js-libp2p 0.45.0 HOT 3
- Example using circuit relay HOT 1
- bug: webrtc connections fail after relayed connection is closed/expired HOT 7
- browser-to-browser connectivity with webRTC and pubsub (gossipsub) HOT 4
- Update to Rust v0.52
- Enable dependabot HOT 1
- Create a CODEOWNERS file HOT 2
- JS: update stream mgmt in the new way refactored
- JS: use js-libp2p-logger instead of `console.log`
- Add a Rust WASM peer? HOT 2
- Rust: Allow for stable identities that don't depend on the file-system HOT 1
- Help js browser peers discover each other out of the box HOT 19
- Go build error HOT 3
- Add CI for Go Peers HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from universal-connectivity.