An `elementsd`-compatible fork of `corepc` for unified RPC client support
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza comparando la interfaz de corepc con los métodos específicos de Elements enumerados en la propuesta, y después lee rpc.rs de liquid-functionary como ejemplo del trabajo duplicado del cliente. Decide si un fork o una crate de extensión gestiona mejor los tipos compartidos y el versionado. Se considera terminado cuando un cliente RPC compatible con elementsd cubre los métodos diferentes requeridos y los métodos Elements-only con un enfoque de versionado mantenible.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Background
The rust-bitcoin ecosystem has converged on corepc as a unified library for managing RPC communication with bitcoind. It provides versioned, type-safe client bindings for Bitcoin Core's JSON-RPC interface and is actively maintained alongside rust-bitcoin itself.
rust-elements currently has no equivalent. Downstream projects that need to talk to elementsd end up writing their own ad-hoc RPC clients on top of jsonrpc. For example, liquid-functionary maintains its own rpc.rs. This is duplicated effort, and the resulting clients tend to lag behind upstream changes, cover only the methods each project happens to need, and have inconsistent type definitions.
Proposal
Create an elementsd-compatible fork (or sibling crate) of corepc that:
- Keeps all the common parts of
corepcunchanged. TheelementsdRPC surface is largely a superset ofbitcoind's — the majority of methods are either identical or close enough thatcorepc's existing types can be reused directly. - Overrides the subset of methods that differ. Some Bitcoin Core methods return different or extended data on
elementsd(e.g. anything involving amounts/assets, blinded outputs, or pegged-in coins). These need Elements-specific response types. - Adds the Elements-only methods. Things like
getsidechaininfo,getpeginaddress,claimpegin,rawblindrawtransaction,issueasset,listissuances, asset/token RPCs etc. would need to be added.
Structurally, this could be done either as
- A fork of
corepc - A separate crate that depends on
corepcand re-exports/extends its types
Open questions
- Fork vs. extension crate: I am not sure which is easier to maintain?
- Versioning is a little tricky as in
corepcthere are versions of the interface that track the Bitcoin releases and Elements also tracks the Bitcoin releases but also has its own versions.
- Lenguaje dominante
- Rust
- Estrellas
- 57
- Forks
- 40
- Merge medio
- 11 h 58 min
- PR fusionados (30 d)
- 1
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ElementsProject/rust-elements
-
The Fuzz workflow is failing Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
ElementsProject/rust-elements#290 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
ElementsProject/rust-elements#277 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
ElementsProject/rust-elements#273 · 3 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
ElementsProject/rust-elements#262 · 2 comentarios · 1 reacción ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
ElementsProject/rust-elements#260 · 1 comentario ·
Todos los issues de ElementsProject/rust-elements
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug team:backend track:services-maintenance
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cowprotocol/services#4950 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
gitbutlerapp/gitbutler#15998 · 1 comentario ·
-
bug triage:deciding
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
open-telemetry/otel-arrow#4132 ·