Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: config #495

Merged
merged 15 commits into from
Dec 10, 2019
Merged

docs: config #495

merged 15 commits into from
Dec 10, 2019

Conversation

vasco-santos
Copy link
Member

@vasco-santos vasco-santos commented Dec 4, 2019

One of the biggest issues that js-libp2p users usually have relies on being complicated to understand:

  • what is js-libp2p in the middle of so many repos?
  • what is a libp2p bundle?
  • how to configure js-libp2p?
  • how to configure X in js-libp2p?

Some decisions:

  • Get rid of the bundle naming

Some topics to discuss in the future:

  • Separate modules configuration from libp2p core configuration (will open an issue for this later)

Relevant issues:

doc/CONFIGURATION.md Outdated Show resolved Hide resolved
doc/CONFIGURATION.md Outdated Show resolved Hide resolved
doc/CONFIGURATION.md Outdated Show resolved Hide resolved
doc/CONFIGURATION.md Outdated Show resolved Hide resolved
doc/CONFIGURATION.md Outdated Show resolved Hide resolved
doc/CONFIGURATION.md Outdated Show resolved Hide resolved
doc/CONFIGURATION.md Outdated Show resolved Hide resolved

Considering libp2p's modular nature, it can be composed by a set of building blocks that enable users to create any type of p2p systems without needing to implement its network layer. Taking into account that each p2p system has its own needs and requirements, libp2p can be configured accordingly.

`js-libp2p` acts as the composer for this modular p2p networking stack using libp2p compatible modules as its building blocks.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is superfluous.

Suggested change
`js-libp2p` acts as the composer for this modular p2p networking stack using libp2p compatible modules as its building blocks.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I should move this under the next section? Its main intend is to introduce the modules

doc/CONFIGURATION.md Outdated Show resolved Hide resolved

## Modules

For getting an instance of `js-libp2p` compliant with all types of networking requirements, it is possible to specify the following building blocks:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think using subsystems instead of building blocks is a bit more descriptive.

Copy link
Contributor

@jacobheun jacobheun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some suggestions and a few comments. This is going to be a big improvement to the docs ❤️

Copy link
Contributor

@yusefnapora yusefnapora left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great @vasco-santos! I think @jacobheun covered things really well. I only have a little tweak to the peer routing description.

doc/CONFIGURATION.md Outdated Show resolved Hide resolved
Co-Authored-By: Jacob Heun <jacobheun@gmail.com>
@mcclure
Copy link
Contributor

mcclure commented Dec 7, 2019

My thoughts as a libp2p newbie:

This document is very clear! This would have helped me a lot if it had been linked when I first found js-libp2p, and honestly it helps me a lot even now. I have some comments:

  • I think it is okay to use the "bundle" terminology as long as you clearly explain "In the libp2p community, a 'bundle' is…" (…"a list of modules selected for a particular project?")

  • I would recommend listing, for each of your "transports", which platforms they work on, eg (desktop) or (browser) or (desktop/browser).

  • Are you a native German speaker? There were a small number of sentences that did not read to me like natural English. I recommend these fixes:

    "This way, the user should install and import the modules that are relevant for their requirements" In this sentence I would remove "This way,", the sentence is entirely clear without it.

    "Bear in mind that only a **transport** is required, being all the other subsystems optional." I would replace the word "being" with "with"

    I noticed a spelling error "multiplxers" for "multiplexers"

    Otherwise it was good!

vasco-santos and others added 4 commits December 9, 2019 10:49
Co-Authored-By: Jacob Heun <jacobheun@gmail.com>
Co-Authored-By: Yusef Napora <yusef@protocol.ai>
@vasco-santos
Copy link
Member Author

Thanks for your feedback @mcclure

My thoughts as a libp2p newbie:

This document is very clear! This would have helped me a lot if it had been linked when I first found js-libp2p, and honestly it helps me a lot even now. I have some comments:

  • I think it is okay to use the "bundle" terminology as long as you clearly explain "In the libp2p community, a 'bundle' is…" (…"a list of modules selected for a particular project?")

The bundle naming caused confusion to several people and in the web space bundle is also used in other context. As a consequence, we thought it is a good timing to get rid of the bundle terminology.

  • I would recommend listing, for each of your "transports", which platforms they work on, eg (desktop) or (browser) or (desktop/browser).

I think that we can add that. I was thinking on writing that in the getting started document, but since it does not add too much noise here, I will add it

  • Are you a native German speaker? There were a small number of sentences that did not read to me like natural English. I recommend these fixes:

Not really, native portuguese speaker, but thanks for the recommendations. I will work on them

"This way, the user should install and import the modules that are relevant for their requirements" In this sentence I would remove "This way,", the sentence is entirely clear without it.
"Bear in mind that only a transport is required, being all the other subsystems optional." I would replace the word "being" with "with"
I noticed a spelling error "multiplxers" for "multiplexers"
Otherwise it was good!

Thanks for having a look on this and hopefully it will help you and other folks interested in getting started with libp2p

Copy link
Contributor

@jacobheun jacobheun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added one minor suggestion, otherwise this looks good! I think we can do a final pass of all the docs before the final release.

doc/CONFIGURATION.md Outdated Show resolved Hide resolved
Co-Authored-By: Jacob Heun <jacobheun@gmail.com>
@vasco-santos vasco-santos changed the base branch from docs/new-api to refactor/async-await December 10, 2019 14:35
@jacobheun jacobheun merged commit c162e59 into refactor/async-await Dec 10, 2019
@jacobheun jacobheun deleted the docs/config branch December 10, 2019 20:46
jacobheun added a commit that referenced this pull request Dec 12, 2019
* docs: new api

* chore: new iteration

* chore: apply suggestions from code review

Co-Authored-By: Alan Shaw <alan.shaw@protocol.ai>

* chore: apply suggestions from code review

Co-Authored-By: Jacob Heun <jacobheun@gmail.com>

* chore: address review

* docs: add events

* chore: apply suggestions from code review

Co-Authored-By: Jacob Heun <jacobheun@gmail.com>

* docs: configuration

* chore: apply suggestions from code review

Co-Authored-By: Jacob Heun <jacobheun@gmail.com>

* chore: update peer routing description

Co-Authored-By: Yusef Napora <yusef@protocol.ai>

* chore: decouple examples

* chore: address pr comment

* fix: connection encryption is required

* chore: apply review suggestion

Co-Authored-By: Jacob Heun <jacobheun@gmail.com>
jacobheun added a commit that referenced this pull request Jan 24, 2020
* docs: new api

* chore: new iteration

* chore: apply suggestions from code review

Co-Authored-By: Alan Shaw <alan.shaw@protocol.ai>

* chore: apply suggestions from code review

Co-Authored-By: Jacob Heun <jacobheun@gmail.com>

* chore: address review

* docs: add events

* chore: apply suggestions from code review

Co-Authored-By: Jacob Heun <jacobheun@gmail.com>

* docs: configuration

* chore: apply suggestions from code review

Co-Authored-By: Jacob Heun <jacobheun@gmail.com>

* chore: update peer routing description

Co-Authored-By: Yusef Napora <yusef@protocol.ai>

* chore: decouple examples

* chore: address pr comment

* fix: connection encryption is required

* chore: apply review suggestion

Co-Authored-By: Jacob Heun <jacobheun@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants