interledger / interledger/rfcs

Ways to make BTP more minimal?

Open
#590 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
513
Forks
107
PR merge metrics
No merged PRs in 30d

Description

The stated motivation of BTP is to be a link-layer protocol like ILP-over-HTTP but using WebSockets instead of HTTP POST.

I understand BTP has to be more complex than ILP-over-HTTP because it needs to link responses to requests. This justifies the Request ID part of BTP, and I guess also the Message, Response and Error message types.

But first, what motivates the Transfer message type? If we can already do transfers with ILP's message types, do we still need BTP-level transfers?

And second, I understand how BTP Subprotocols can be handy, but if we think that such a feature is useful and we allow connectors to rely on it for their operation, then why don't we add it to other link protocols too? It seems a bit surprising that BTP has this extra functionality but ILP-over-HTTP doesn't.

Could we define a version of BTP that is as minimal as it can be, comparable to the current ILP-over-HTTP protocol?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read RFC 0023 on BTP motivation, RFC 0001 on protocol layers, and RFC 0035 on ILP-over-HTTP. Compare the message types and subprotocol behavior, then determine whether a minimal BTP variant can be specified and what changes would be needed across the referenced RFCs.

Written by the indexing model from the issue text.

Assessment

Domain
networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.