IPFS
IPFS (InterPlanetary File System) is a peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files.
In some ways, IPFS is similar to the World Wide Web, but IPFS could be seen as a single BitTorrent swarm, exchanging objects within one Git repository. In other words, IPFS provides a high-throughput, content-addressed block storage model, with content-addressed hyperlinks. This forms a generalized Merkle directed acyclic graph (DAG).
IPFS combines a distributed hash table, an incentivized block exchange, and a self-certifying namespace. IPFS has no single point of failure, and nodes do not need to trust each other, except for every node they are connected to. Distributed Content Delivery saves bandwidth and prevents distributed denial-of-service (DDoS) attacks, a problem common with HTTP.
Here are 1,002 public repositories matching this topic...
As part of startup we append our peer id to every multiaddr that contains a peer id.
This should only happen to circuit addresses. We should use the mafmt module to match on those.
FAQ: My data isn't appearing! An explanation of db.load() vs db.events.on("replicated", callback)
There's been a number of questions lately about data not appearing in the store when you expect, so I thought it would be a good time to take a second to explain the process of opening a database and getting data out of it. The database can be either local or remote.
Important Note: While content discovery can happen via the IPFS distributed hash table, due to the limitations of browser-bas
If you create a contract that inherits an interface, one must re-create the functions in the main contract exactly. If not, the contract will not deploy. However, no error message will tell you that.
When running 'embark test' (which I typically do before 'embark run', the situation is worse... all tests fail with a message 'Error: This contract object doesn't have address set yet, please set a
See also ipfs/docs#57
The description here is great, but we should prefix it with either type:website or type:documentation or both.
Currently the electron build is ~300MB! :O
There's various reasons for that, but looking at some of the biggest disk space consumers:
libp2p-* ~40MB
wrtc 11MB
typescript 21MB
ipld-resolver 5MB
ipfs-daemon 8MB
core-js 6.6MB
ipfs-api 5.8MB
And in total the node.js dependencies in node_modules are ~200MB. Crazy.
The build process calls npm install --prodution to exclude all dev dependencies, bu
Improve Test Suite
Right now, we have quite a few unit tests and some end-to-end tests for the launching process. We should aim to improve this and get a better coverage of the code.
Unit Tests
We are aiming for one unit test file per file. The biggest issue with unit tests is the amount of mocking we need to do to make sure we don't have side-effects.
E2E
We are using [Spectron](https://github.com
-
Updated
Feb 18, 2020 - JavaScript
Say I am new to libp2p and just want to install whatever npm package I need to get started so I can run example code in tutorials. I come to the js-libp2p page on github. I look under "Install". It gives the npm line to run to install, then says,
this module is only a skeleton and should not be used directly other than libp2p bundle implementors that want to extend its code
So… wait. I *sh
-
Updated
Feb 20, 2020 - PHP
We had a user on discord ask if there was a roadmap anywhere for this project. Sadly, we don't have one yet.
I'm a fan of a simple ROADMAP.md file that we can maintain the same way we maintain code (for now). Here are a few examples from the wild:
- https://github.com/dotnet/core/blob/master/roadmap.md - This seems to talk more about release cycles
- https://github.com/dotnet/machinelear
We started fixing an issue extracting the DHT router while in regtest mode, but the fixes were never completed. (See #1635) This is a placeholder to ensure we get back to resolving this issue at some point.
To reproduce the problem, simply start the daemon with the following incantation: openbazaard start -d ./this-regtest-config-can-be-deleted -r -v
(this may be subjective), but the "Save" button on "Settings" screen in "active" state (when config was changed but not saved yet) feels pretty "inactive":
Ref. how similar problem was fixed in https://github.com/ProtoSchool/protoschool.github.io/i
I was looking if they had documentation but to propose the use of an api rest to be able to upload files by means of curl
Noticed a visual lag when system is under a load in Firefox 71 (ipfs-companion v.2.10.0)
Clicking on "Open WebUI" in browser action menu freezes UI until a new tab is created.
- check if issue can be reproduced in Chromium
- check if browser action is closed right after click (before opening new tab with webui)
- if not, make it so, as it is potential reason of visual lag
This would just be a ui that lets users sign a hash of a document (enough to sign(hash(concat(all cryptree node hashes for file))+file read cap) so we don't need to download and decrypt the entire document to sign it)
the output should be some text, maybe hex encoded, which someone can cut and paste into the ui to verify someone else's claim
-
Updated
Feb 20, 2020 - Go
Summary
This is the main tracking issue for DNSLink support. If there is a programmable DNS service out there, we should have support for it.
Ideally even doing things like detecting the provider from the domain name and doing the right thing.
Status
| Pinning Service | Status |
|---|---|
| CloudFlare | |
| DNSimple | |
| Digital Ocean |
Coming from the main website, it is unclear how this helps decentralizing the service. There is an interesting discussion on HN! about this which would be helpful if summarized in the documentation (e.g. the README).
Similarly, an overview of how it actually works (e.g. how is content updated and so on) would help
Some clients, such as Haven, incorrectly add shipping information to non-physical listing contracts. When this happens, the desktop client will show the controls to pick a shipping option.
We should add a check to only show shipping options if the data is present and if the contract is a physical listing.
When clicking on links in the rendered markdown pages, it would be nice if they opened in new tabs.
In the DagCBOR spec, be more precise on what happens if you parse CBOR and it contains tags.
- Should they be ignored?
- Should they be preserved?
- Should there be an error?
I suggest that we just ignore those tags and when you write DagCBOR, the only tag you ever write will be the one for CID (tag 42).
DTube Avalon uses leaders which are the equivalent to Steem witnesses. They are listed on their own section. Those leaders should add their own IP -or hostname- so other nodes are able to connect to them. When hover the mouse over a leader which has provided an URL, the UI shows it as a tooltip.
It is currently not checking for the IP address to be a valid one. Web page will show that leader as
Use mapping in config.yml to map mime types to different object types, depending on their typical rendering:
documentimagevideoaudio
Currently, we use reqwest to make synchronous calls to elastic search:
We should make this asynchronous, for example by replacing reqwest with the hyper client.
Clients attempt to change thread name fails,
https://user-images.githubusercontent.com/370259/59051484-d5a31f80-8841-11e9-8b55-d8cc9fe8f311.jpeg
But ideally, any client can change a thread name to whatever they like without affecting what other peers decide to call it.
here's the mobile issue textileio/photos#1093
-
Updated
Feb 2, 2020
Create an example showing how to setup a synchronized volume for root directory. This is probably the most common use case.
The objects would be structured like this:
Volume{ RootCell } -> Volume{ CryptoCell{ HTTPCell } } -> Dir
Every device has it's own root volume, which immediately contains a shared networked volume. The secretbox cell is probably ready for use because its so

It is a bit of mouthful to explain that the
js-ipfs-apiis the client library that implements the samejs-ipfsAPI but it is just a client.Other project call these libraries
SDKor simply, clients.Fun history fact, we had multiple confused users opening multiple issues assuming that
js-ipfs-apiis the JS implementation. It only stopped when we put a giant banner image in every repo