cryptoadvance / cryptoadvance/specter-desktop

Testing BTC-RPC-Proxy to simulate an unpruned node

Open
#722 29 comments 0 reactions 0 assignees View on GitHub
chore
Dominant language
Python
Stars
847
Forks
259
Avg merge
6d 18h
Merged PRs (30d)
2

Description

From: https://github.com/cryptoadvance/specter-desktop/issues/298#issuecomment-724137049
>This code https://github.com/Start9Labs/btc-rpc-proxy-wrapper (though in another language) is able to fetch pruned blocks from other peers.
Based on: https://github.com/Kixunil/btc-rpc-proxy (written in Rust)

This could help Specter to run a with pruned node and maybe would make the use of external block explorers unnecessary (see https://github.com/cryptoadvance/specter-desktop/issues/718)

Quick installation steps as I did on Debian Linux: https://gist.github.com/openoms/2a94a8ad756bf93c8cd57d68958450a6#file-btc-rpc-proxy-md

Need to allow all RPC commands used. Got these when searched for the self.rpc.commands in specter-desktop: https://gist.github.com/openoms/2a94a8ad756bf93c8cd57d68958450a6#configure , but likely missing something still.

When running Specter (`python3 -m cryptoadvance.specter server`) the detection of the bitcoinRPC on localhost (BTC-RPC-proxy) works and connection is tested successfully but immediately runs into these errors:
https://gist.github.com/openoms/2a94a8ad756bf93c8cd57d68958450a6#file-specter-desktop-log

Same time errors in BTC-RPC-Proxy are showing the bad requests:
https://gist.github.com/openoms/2a94a8ad756bf93c8cd57d68958450a6#file-btc_rpc_proxy-log

Either using BTC-RPC-Proxy is really close and I am just missing something or the next step could be to request @Kixunil for the feature if we figure it out what is exactly needed.

Contributor guide

Open the contributing guide

Research direction

Start by running `python3 -m cryptoadvance.specter server` with BTC-RPC-Proxy and compare the Specter and proxy logs linked in the issue. Review the RPC command allowlist based on Specter’s `self.rpc.commands`, identify the missing requests, and verify whether a pruned-node connection works; if the proxy lacks required support, record the precise upstream feature request.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, python, rust
Domain
api, backend, infrastructure
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.