Skip to content

RFC: Add end-to-end functional test coverage for sv2-tp #104

@enirox001

Description

@enirox001

Motivation

It may be useful to add end-to-end functional test coverage for sv2-tp.

The current C++ tests cover a lot of internal SV2 behavior, including Noise, transport, messages, connman, Template Provider behavior, mock sockets, and mock mining. However, there does not seem to be automated process-level coverage for the deployment topology users actually run:

  • bitcoin-node on regtest with IPC enabled
  • sv2-tp as a separate binary connected over IPC
  • an SV2 client connected over TCP
  • template delivery, transaction data requests, and block submission behavior across real processes

The docs already mention the regtest SRI setup as a good target for future functional test coverage.

Manual testing has also surfaced issues such as:

This suggests there may be bugs that are easier to catch at the process/integration layer than inside the current C++ test harness.

Possible first step

A small CI-friendly smoke test could:

  • start bitcoin-node -regtest -ipcbind=unix
  • start sv2-tp -regtest -conf=0 -ipcconnect=unix
  • connect a minimal SV2 test client
  • complete the Noise handshake and SetupConnection
  • verify initial NewTemplate / SetNewPrevHash behavior
  • capture logs and fail deterministically on startup or protocol errors

Questions

  • Would this kind of functional test coverage be welcome in this repository?
  • Should a minimal SV2 test client be implemented in Python, or would reusing SRI components be preferable?
  • Are there CI/runtime/dependency constraints that should shape the design?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions