spesmilo / spesmilo/electrum-protocol
Comprehensive set of protocol versions.
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 18
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
Hi, we are close to completion on the libbitcoin-server electrum interface. This is one of several client-server interfaces to the node, which optionally populates the address index while building the chain. We've provided what we believe is a full implementation for the following versions, based on available documentation. Since we only support explicit version matching, we want to make sure that we've got the versions covered. We aren't implementing any altcoin extensions, just btc mainnet/testnet. Could you let me know if this is complete? Thanks
enum class version
{
/// Invalid version.
v0_0,
/// 2011, initial protocol negotiation (unsupported).
v0_6,
/// 2012, enhanced protocol negotiation (unsupported).
v0_8,
/// 2012, added pruning limits and transport indicators (unsupported).
v0_9,
/// 2013, baseline for core methods in official specification (unsupported).
v0_10,
/// 2014, deprecations of utxo and block number methods (minimum).
v1_0,
/// 2015, updated version response and introduced scripthash methods.
v1_1,
/// 2017, added optional parameters for transactions and headers.
v1_2,
/// 2018, defaulted raw headers and introduced new block methods.
v1_3,
/// 2019, removed deserialized headers and added merkle proof features.
v1_4,
/// 2019, modifications for auxiliary proof-of-work handling.
v1_4_1,
/// 2020, added scripthash unsubscribe functionality.
v1_4_2,
/// There is no v1.5 release (skipped).
//v1_5,
/// 2022, updated response formats, added fee estimation modes (maximum).
v1_6,
/// Not yet valid, just defined for out of bounds testing.
v1_7
};
static const std::unordered_map<version, std::string_view> map
{
{ version::v0_0, "0.0" },
{ version::v0_6, "0.6" },
{ version::v0_8, "0.8" },
{ version::v0_9, "0.9" },
{ version::v0_10, "0.10" },
{ version::v1_0, "1.0" },
{ version::v1_1, "1.1" },
{ version::v1_2, "1.2" },
{ version::v1_3, "1.3" },
{ version::v1_4, "1.4" },
{ version::v1_4_1, "1.4.1" },
{ version::v1_4_2, "1.4.2" },
{ version::v1_6, "1.6" },
{ version::v1_7, "1.7" }
};
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the version enum and string map included in the issue, then compare each listed version against the available Electrum protocol documentation for BTC mainnet and testnet. Done means determining whether the explicitly matched versions are complete and identifying any missing, incorrect, or unsupported entries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend-api-design, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100