Comments (6)
@aurium this works today, if the stars align. The reason success is not always guaranteed is because in order to publish an IPNS name, the node running in the browser needs to be able to dial network peers that are KAD-close to the public key used to publish the IPNS name, in order to ask them to store the IPNS record.
Historically the only transports available to the browser were WebSockets and WebRTC-star. WebSockets need a TLS certificate to be dialable which is impractical for most users, and go-libp2p (the most commonly used implementation) has never supported WebRTC-star so typically a browser can't dial most of the network.
This is changing with the new WebTransport and WebRTC transports which allow browser nodes to dial server nodes without pre-configured certificates.
Helia ships with these enabled, and they are supported by recent versions of go-libp2p and rust-libp2p but we are limited by the speed at which the network upgrades to these newer versions so it would be hard to say "This will work in Q3" when it's mostly out of our hands.
from helia.
I would love to see "Publish IPNS names" on the roadmap. Working just with the browser, without a backend help.
from helia.
I don't understand why the solution to the problem is yet another divergent implementation instead of a shared library of common functionality which can be compiled as asmjs or wasm and given a sane and ergonomic interface in any language.
from helia.
I don't understand why the solution to the problem is yet another divergent implementation instead of a shared library of common functionality which can be compiled as asmjs or wasm and given a sane and ergonomic interface in any language.
As a web developer, I don't want wasm in my application unless I have to. While wasm works in the browser, it has a hard time going through all the tooling, unfamiliar protocols and data structures, amongst other non-technical problems.
More or less, it's the same reasons go developers don't go to npmjs.com, find a library they like and transpile it to go for their go project.
from helia.
I don't understand why the solution to the problem is yet another divergent implementation instead of a shared library of common functionality which can be compiled as asmjs or wasm and given a sane and ergonomic interface in any language.
Very good question, I have the feeling it's already a task with the ipfs project to solve not the integration of the solution to create a universal tool but porting implementation, disassembly and complication of the whole development
from helia.
@MichaelJCole has it in a nutshell. WASM is a great idea on paper but the DX in reality often leaves a lot to be desired.
Where it is really useful is for very hot codepaths that can take advantage of the speed increases it brings, but they need to be quite self contained with well defined entry and exit points to make debugging easier when things go wrong.
I'm going to close this issue as it's quite old. If anyone has items or ideas they'd like to see in the roadmap for the future please open an issue for discussion.
from helia.
Related Issues (20)
- React-native support? HOT 3
- helia-101/201-storage.js hangs then crashes HOT 5
- fix: `blocks:get:providers:get` should be `blocks:get:blockstore:get`
- 15 broken links on https://helia.io
- How to upload to IPFS with Helia using an Infura node? HOT 2
- feat: support filters for resolvers HOT 1
- DoH queries with numeric `type` fail HOT 5
- How to use helia with infura/quicknode? HOT 4
- bug: ipns doesn't purge cache based on TTL
- Parcel cannot resolve Helia and any @helia/x packages HOT 2
- How to pin to a remote kubo node?
- Possible memory leak?
- feat: `ipfs refs` command not supported?
- bug: endless session routing HOT 10
- fix: unnecessary new URL instance HOT 3
- Helia UnixFs `addFile` does not respect `wrapWithDirectory` HOT 3
- Share your feedback in the Helia feedback survey
- High Memory Usage with Persistent IPFS Node in Browser via Helia HOT 1
- Using Helia in Service Workers and Compatibility with Kubo
- Issue with Peer-discovery When Initializing with Custom Service (pure browser environment)
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 helia.