-
Notifications
You must be signed in to change notification settings - Fork 5.7k
BIP40: Stratum wire protocol #1557
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
base: master
Are you sure you want to change the base?
Conversation
Yesterday, I sent two registration requests to IANA to get some information officially egistered. The registries are:
Today, I got a response that for both registrations some things have to be done first, before IANA can add these records to their registry. In case of the Media Types, this is process is a little bit more difficult. For the WebSocket Subprotocol Name Registry it is just letting them know when this pull request is merged and I have a permalink to the specification. Also, it is possible that I will send more registration requests for other IANA registries too. For example, the Service Name and Transport Protocol Port Number Registry (https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml) is a possible candidate. In that case, I will post new comments about that too. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some editorial feedback.
This BIP refers to BIP41, The Stratum mining protocol, for which a BIP number was assigned and an entry exists in the README, but there doesn't seem to be pull request to add the BIP draft -- any update on that? |
Hi @jonatack, thank you for feedback. I will take a look at it. I didn't have time to work on BIP 40 lately. Yes, both BIP 40 and BIP 41 are already assigned by the README and BIP 41 is also mentioned in this BIP 40. The goal is to finish BIP 40 (Stratum wire protocol) first and then start working on BIP 41 (Stratum mining protocol), referring back to BIP 40, because the mining protocol is based on the wire protocol. |
Signed-off-by: Ben van Hartingsveldt <[email protected]>
The media type |
Okay, I think I'm done. |
I want to ask people to take a look at this PR and come with as much feedback as possible, so that I can add it in before it gets merged. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool, thanks for working on this. I see that there is quite a bit more here now. I’m not particularly familiar with the Stratum protocol, so in the first pass I read for editorial minutiae. Generally, it is expected that every BIP contains some specific sections. This document is missing the following sections:
- Copyright — The BIP must be explicitly licensed under acceptable copyright terms (see BIP 2).
- Rationale — The rationale fleshes out the specification by describing what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work. The rationale should provide evidence of consensus within the community and discuss important objections or concerns raised during discussion.
- Backwards compatibility — All BIPs that introduce backwards incompatibilities must include a section describing these incompatibilities and their severity. The BIP must explain how the author proposes to deal with these incompatibilities.
I would guess that the Rationale section will gather a few items from discussion on the mailing list and here. The Backwards Compatibility section may benefit from more explanation on the extensions you added to round out the prior existing documentation. Regarding the Copyright section and licensing terms, perhaps @slush0 could chime in, if you two would be open to using difference terms than PD, because PD is not an acceptable license for BIPs anymore.
Thanks for the feedback. I will try to add most things in, but I hope @slush0 can indeed tell more about the licensing. |
I added those sections, @murchandamus. I also tagged @slush0 on Twitter/X in the hope he can give us some thoughts about copyright and licensing. If he won't respond, can you give me some advice about which license is the best fit? Thanks. |
Thanks @ben221199, I’ll aim to take a more thorough look soon. The CC0 1.0 Universal license tries to come as close as possible to a release into Public Domain, so maybe that would be a good fit. |
What license is acceptable for BIP? I really don't care, anything what is open enough is fine for me. I want it to be public and open for anyone. |
As I'm reading it on the go now, I see it is all about implementation for Electrum like nodes; Historically there's quite big discrepancy in between protocol as it was implemented in Electrum and in mining software, to the level I believe they are not compatible and should not be named in the same way to avoid confusion. Honestly, the Electrum flavour was more designed by ThomasV than by me, while I was more focused on mining application. As there was no documentation since beginning (what was my huge mistake), the implementation differs in such way they share only the basic idea of "a line based JSON RPC" 🤔. While I didn't investigated much, i believe these two protocols cannot be practically standardized in one BIP and for that reason I propose to mention it in BIP name to avoid confusion. |
Hi @slush0, thank you for your input. This BIP, BIP 40 is about the Stratum protocol and about Electrum, for which it was initially invented. The mining protocol will be documented in BIP 41. I will start working on that one as soon as this PR is merged. That BIP will have all information to differentiate it from the normal Stratum protocol. The BIP40 name is "Stratum wire protocol". The BIP41 name is "Stratum mining protocol". When it comes to licensing, I guess CC0 1.0 Universal will be it then. |
My previous comment still stands. The protocols in Electrum and in mining differs greatly to the point they are not the same protocol. My opinion is that the BIP for Electrum and for mining should be separate BIPs. That said, I'm sorry for such mess. |
They will be in seperate BIPs and I will make it clear they are not the same. As far as I know, the mining protocol only implements the |
The Stratum wire protocol has a long history since @slush0 introduced it. However, the protocol never got standardized in a formal way, so many implementations have been based on incomplete documents or on other implementations. With this document I finally want to give Stratum its place between the other BIPs, so that developers can just read this document and don't have to search through years of code or dead pages that need to be revived with Wayback Machine.