Skip to content
This repository has been archived by the owner on Oct 10, 2018. It is now read-only.

fix: use correct id sequence (dialer even/listener odd) #3

Merged
merged 3 commits into from
Oct 1, 2018
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,13 @@ necessarily send the first packet, this distinction is just made to make the all

### Opening a new stream
Copy link
Member

Choose a reason for hiding this comment

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

In the section above ^^, we should also get rid of all information about stream IDs, initiators, and receivers.

Copy link
Member Author

Choose a reason for hiding this comment

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

we should also get rid of all information about stream IDs, initiators, and receivers.

There is one part where mentioning initiators makes sense - when talking about flag's oddness.


To open a new stream, first allocate a new unique stream ID; the session initiator allocates odd IDs and the session receiver allocates even IDs. Then, send a message with the flag set to `NewStream`, the ID set to the newly
To open a new stream, first allocate a new unique stream ID. Then, send a message with the flag set to `NewStream`, the ID set to the newly
Copy link
Member

Choose a reason for hiding this comment

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

Stream IDs are no longer unique session-wide.

Copy link
Member Author

Choose a reason for hiding this comment

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

Hmm, good point. I think we can word it as unique for each end, as in reusing IDs is not supported? Suggestions welcome.

Copy link
Member

@Stebalien Stebalien Apr 23, 2018

Choose a reason for hiding this comment

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

Each endpoint has an independent pool of stream IDs. To open a new stream, send a message with the flag set to NewStream, the ID set to the next available ID (for this endpoint), and the data of the message set to the name of the stream.

?

Copy link
Member

Choose a reason for hiding this comment

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

Note: We should still note somewhere that streams are identified by the (streamID, initiatedByMe) tuple.

Copy link
Member

@daviddias daviddias Apr 25, 2018

Choose a reason for hiding this comment

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

who is me? The peerId?

allocated stream ID, and the data of the message set to the name of the stream.

Stream names are purely for interfaces and are not otherwise considered by the protocol. An empty string may also be used for the stream name, and they may also be repeated (using the same stream name for every stream is valid). Reusing
a stream ID after closing a stream may result in undefined behaviour.

The party that opens a stream is called the stream initiator. This is used for numbering the streams.
The party that opens a stream is called the stream initiator. This is used for numbering the streams as well as identifying whether the message comes from a channel opened locally or remotely. Thus, the stream initiator always uses even flags and stream receivers uses odd flags.
Copy link
Member

Choose a reason for hiding this comment

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

This is used for numbering the streams

Not anymore (in go at least).

Copy link
Member Author

Choose a reason for hiding this comment

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

True, I'll change it.

Copy link
Member

Choose a reason for hiding this comment

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

What's the trick to number streams then?


### Writing to a stream

Expand Down