Skip to content

Commit

Permalink
Update Helia and js-ipfs information / patch build (#1639)
Browse files Browse the repository at this point in the history
Co-authored-by: Russell Dempsey <[email protected]>
  • Loading branch information
ElPaisano and SgtPooki authored Jul 25, 2023
1 parent cb9e234 commit c4c343f
Show file tree
Hide file tree
Showing 15 changed files with 52 additions and 470 deletions.
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ Write everything using the [GitHub Flavored Markdown](https://github.github.com/

### Project-specific titles

When referring to projects by name, use proper noun capitalization: Kubo (GO-IPFS) and JS-IPFS.
When referring to projects by name, use proper noun capitalization. For example, Kubo and Helia.

Cases inside code blocks refer to commands and are not capitalized: `kubo` (`go-ipfs`) or `js-ipfs`.
Cases inside code blocks refer to commands and are not capitalized: `kubo` or `helia`.

### Style and tone

Expand Down
15 changes: 10 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,22 +48,27 @@ To build the site locally, follow the steps below.
git clone https://github.com/ipfs/ipfs-docs.git
```

2. Move into the `ipfs-docs` folder and install the NPM dependencies:
1. Move into the `ipfs-docs` folder:

```bash
cd ipfs-docs
```

1. Install the NPM dependencies:

```bash
npm install
```

3. Boot up the application in _dev mode_:
1. Boot up the application in _dev mode_:

```bash
npm start
```

4. Open [localhost:8080](http://localhost:8080) in your browser.
5. Close the local server with `CTRL` + `c`.
6. To restart the local server, run `npm start` from within the `ipfs-docs` folder.
1. Open [localhost:8080](http://localhost:8080) in your browser.
1. Close the local server with `CTRL` + `c`.
1. To restart the local server, run `npm start` from within the `ipfs-docs` folder.

### Troubleshooting

Expand Down
7 changes: 6 additions & 1 deletion docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,19 @@ const pageSuffix = '/'
const installMenuChildren = [
['/install/command-line','IPFS Kubo for Go'],
['/install/run-ipfs-inside-docker', 'IPFS Kubo in Docker'],
['/install/js-ipfs','IPFS for JavaScript'],
['https://github.com/ipfs/helia','IPFS Helia for JavaScript'],
['https://iroh.computer/docs/install/', "IPFS Iroh for Rust"],
['/install/ipfs-desktop', 'IPFS Desktop App'],
['/install/ipfs-companion', 'IPFS Companion Browser Extension'],
['/install/server-infrastructure', 'IPFS Cluster']
]

module.exports = {
configureWebpack: {
output: {
hashFunction: "sha256"
}
},
base: '/',
head: require('./head'),
locales: {
Expand Down
1 change: 1 addition & 0 deletions docs/.vuepress/redirects
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
/how-to/troubleshoot-file-transfers /how-to/troubleshooting
/how-to/run-ipfs-inside-docker /install/run-ipfs-inside-docker
/install/command-line-quick-start/ /how-to/command-line-quick-start
/install/js-ipfs/ https://github.com/ipfs/helia/wiki
/introduction/ /concepts
/introduction/faq/ /concepts/faq
/introduction/how-ipfs-works/ /concepts/how-ipfs-works
Expand Down
2 changes: 1 addition & 1 deletion docs/community/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Keeping in mind [the general guidelines above](#_2-follow-the-guidelines-for-get
1. In [the Help category of the forum](https://discuss.ipfs.tech/c/help/13), hover over the large blue circle with a `+` symbol in the center. The text **New Topic** displays.
1. Click **New Topic**. The **Create a new Topic** modal opens.
1. In the title field, describe what the discussion is one brief sentence.
1. Add any optional tags that help describe what subcategory the issue is in. Samples options include `go-ipfs` and `js-ipfs`.
1. Add any optional tags that help describe what subcategory the issue is in. Samples options include `kubo` and `helia`.
1. Following the guidelines above, describe your issue / problem in the main text field. You can use Markdown, BBCode or HTML for formatting, and include images.
1. Click **Create Topic**. Your topic is has been created in the forum!

Expand Down
16 changes: 15 additions & 1 deletion docs/concepts/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ The quickest way to get IPFS up and running on your machine is by installing [IP

For installing and initializing IPFS from the command line, check out the [command-line quick start](../how-to/command-line-quick-start.md) guide.

### How do I learn more about IPFS standards and specifications?

You can learn more about IPFS design standards and architectural specifications at [specs.ipfs.tech](https://specs.ipfs.tech/). The IPFS Standards website documents these standards and specifications with the goal of fostering interoperability between independent implementations of the IPFS stack through Internet-grade specifications and test suites.

### Why doesn't my SHA hash match my CID?
When you add a file to IPFS, IPFS splits it into smaller blocks. IPFS hashes each of these pieces individually, building a [Merkle Directed Acyclic Graphs (DAGs)](../concepts/merkle-dag.md) and resulting in an overall different hash.

Expand All @@ -45,10 +49,20 @@ An IPFS implementation is any software with basic functionality for interaction

- Verifies that the CIDs it resolves match the resources they address, at least when it has access to the resources bytes. However, implementations may relax this requirement in controlled environments in which it is possible to ascertain that verification has happened elsewhere in a trusted part of the system.

There are already many IPFS implementations, including [Kubo](../install/command-line.md), [Helia](../install/js-ipfs.md), and [more](../concepts/ipfs-implementations.md).
There are already many IPFS implementations, including [Kubo](../install/command-line.md), [Helia](https://github.com/ipfs/helia), and [more](../concepts/ipfs-implementations.md).

You can also create your own IPFS implementation.

### I am creating an implementation, how do I get started?

If you want to develop an IPFS implementation or are already working on one, the IPFS design standards and architectural specifications at [specs.ipfs.tech](https://specs.ipfs.tech/) are a great resource. In particular, the following resources are great starting points:

- [IPFS Principles](https://specs.ipfs.tech/architecture/principles/) provides context and details around the core IPFS principles of content-addressing and transport-agnosticism. The document defines what is or is not an IPFS implementation.
- The [Meta](https://specs.ipfs.tech/meta/) section describes important non-technical information for contributors, like the core project values, the governance model, how to produce documents, and more.
- [InterPlanetary Improvement Proposals (IPIPs)](https://specs.ipfs.tech/meta/ipip-process/) are a focused, transparent, community-driven process for protocol design discussions. They are not changes to the specification itself, but their approval leads to a change in the specification.

In addition to these core documents, `specs.ipfs.tech` documents standards for IPFS subsystems such as the [InterPlanetary Naming System](https://specs.ipfs.tech/http-gateways/) and [HTTP Gateways](https://specs.ipfs.tech/http-gateways/).

## IPFS and Filecoin

### What is the connection between IPFS and Filecoin?
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ A Cryptographic Hash is a function that takes some arbitrary input (content) and

### Helia

A lean, modular, and modern implementation of IPFS for the JS and browser environments. Superseded [js-ipfs](#js-ipfs). Learn more at [https://github.com/ipfs/helia](https://github.com/ipfs/helia).
A lean, modular, and modern implementation of IPFS for the JS and browser environments that supersedes [js-ipfs](#js-ipfs). Learn more at [https://github.com/ipfs/helia](https://github.com/ipfs/helia).

### Hole punching

Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/ipns.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ IPNS names can be resolved by [IPFS gateways](ipfs-gateway.md) in a _trusted_ fa

### Publishing IPNS names

See the following guide on [publishing IPNS names with Kubo and js-ipfs](../how-to/publish-ipns.md).
See the following guide on [publishing IPNS names with Kubo and Helia](../how-to/publish-ipns.md).

## Alternatives to IPNS

Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/nodes.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Both Kubo and Helia _nodes_ use bootstrap _nodes_ to initially enter the DHT.
#### Limitations of a bootstrap node:

- If an IPFS _node_ only has one bootstrap _node_ listed in that configuration and that bootstrap node goes offline, the IPFS node will lose access to the public DHT if it were to restart.
- Note that you should be able to configure your _peer_ store in your implementation to cache healthy connectable _peers_ so you can connect to them again after a restart, instead of bootstrap _nodes_. [Kubo recently added support for this](https://github.com/ipfs/kubo/pull/8856).
- You can configure your _peer_ store in your implementation to cache healthy connectable _peers_ so that you can connect to them again after a restart, instead of bootstrap _nodes_. [Issue 8856 in the Kubo repository](https://github.com/ipfs/kubo/pull/8856), which addressed this, provides further information and context.

[More about Bootstrapping](../how-to/modify-bootstrap-list.md)

Expand Down
2 changes: 0 additions & 2 deletions docs/how-to/companion-node-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ IPFS Companion's preferences screen allows you to choose from different node typ

[[toc]]

![Screenshot of node type selector in Companion preferences](./images/node-type-switch.png)

**If you're already running a local IPFS node, choose _External_.** If not, do one of the following:

- [Install](../install/README.md) and run IPFS as an [external node](#external) (recommended).
Expand Down
5 changes: 4 additions & 1 deletion docs/how-to/configure-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,8 @@ description: IPFS nodes can be customzied using the configuration file. The defa

# Configure a node

IPFS is configured through a json formatted text file, located by default at `~/.ipfs/config`. Implementation-specific information can be found within the [Kubo](https://github.com/ipfs/kubo/blob/master/docs/config.md) and [js-ipfs](https://github.com/ipfs/js-ipfs/blob/master/docs/CONFIG.md) repositories. It is read once at node instantiation, either for an offline command, or when starting the daemon. Commands that execute on a running daemon do not read the config file at runtime.
Node configuration varies between implementations.

- For Kubo, see [config.md](https://github.com/ipfs/kubo/blob/master/docs/config.md).
- For Helia, see the [HeliaInit](https://ipfs.github.io/helia/interfaces/helia.HeliaInit.html) document. Note that, unlike the deprecated js-ipfs implementation, you must configure your node directly - see the [Helia example](https://github.com/ipfs/helia/wiki/Migrating-from-js-IPFS#config).

6 changes: 5 additions & 1 deletion docs/how-to/publish-ipns.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ description: Learn how to publish IPNS names with Kubo

IPNS names can be published programmatically.

- [Publishing IPNS names with Kubo](#publishing-ipns-names-with-kubo)
- [Using Kubo (Go)](#publishing-ipns-names-with-kubo)
- [Using helia-ipns (JavaScript)](#publishing-ipns-names-with-helia-ipns)

## Publishing IPNS names with Kubo

Expand Down Expand Up @@ -101,3 +102,6 @@ ipfs name publish --key=SecondKey /ipfs/bafybeicklkqcnlvtiscr2hzkubjwnwjinvskffn
> Published to k51qzi5uqu5dh5kbbff1ucw3ksphpy3vxx4en4dbtfh90pvw4mzd8nfm5r5fnl: /ipfs/bafybeicklkqcnlvtiscr2hzkubjwnwjinvskffn4xorqeduft3wq7vm5u4
```
## Publishing IPNS names with helia-ipns
Learn more about using IPNS with JavaScript at the [helia-ipns](https://github.com/ipfs/helia-ipns) repository.
4 changes: 4 additions & 0 deletions docs/install/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ For long-term storage, users can use the Filecoin network! Filecoin is a peer-to

Want to build decentralized applications and store your application data on IPFS? You'll likely want to install the command-line version of IPFS. There's no GUI to deal with, just raw input and output through your terminal. [Find out more →](./command-line.md)

## IPFS Helia

[Helia](https://github.com/ipfs/helia) is a new implementation of IPFS in JavaScript that is designed to be more modular and lightweight than the deprecated [js-ipfs project](https://github.com/ipfs/js-ipfs). To get started with a hands-on example, see [Helia 101](https://github.com/ipfs-examples/helia-examples/blob/main/examples/helia-101/README.md) in [ipfs-examples/helia-examples](https://github.com/ipfs-examples/helia-examples/tree/main).

## IPFS Cluster

Planning to set up several IPFS nodes within one network? You'll want to take a look at installing [IPFS Cluster →](./server-infrastructure.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/install/ipfs-companion.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ For its full functionality to be enabled, IPFS Companion requires a local IPFS n

- [Install IPFS Desktop](../install/ipfs-desktop.md)
- [Install IPFS Kubo for Go](../install/command-line.md)
- [Install IPFS for JavaScript](../install/js-ipfs.md)
- [Install IPFS Helia for JavaScript](https://github.com/ipfs/helia)

## Install

Expand Down
Loading

0 comments on commit c4c343f

Please sign in to comment.