An `elementsd`-compatible fork of `corepc` for unified RPC client support
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Bắt đầu bằng cách so sánh interface corepc với các phương thức dành riêng cho Elements được liệt kê trong proposal, sau đó đọc rpc.rs của liquid-functionary làm ví dụ về phần công việc client bị trùng lặp. Quyết định xem fork hay extension crate xử lý các kiểu dùng chung và việc versioning tốt hơn. Hoàn thành khi một RPC client tương thích với elementsd bao phủ các phương thức khác biệt bắt buộc và các phương thức Elements-only bằng một cách tiếp cận versioning có thể bảo trì.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Rust
- Star
- 57
- Fork
- 40
- Merge trung bình
- 11 giờ 58 phút
- Pull request đã merge (30 ngày)
- 1
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ElementsProject/rust-elements
-
The Fuzz workflow is failing Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
ElementsProject/rust-elements#290 · 1 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
ElementsProject/rust-elements#277 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
ElementsProject/rust-elements#273 · 3 bình luận ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 52/100
ElementsProject/rust-elements#262 · 2 bình luận · 1 reaction ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
ElementsProject/rust-elements#260 · 1 bình luận ·
Tất cả issue của ElementsProject/rust-elements
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
gitbutlerapp/gitbutler#15998 · 1 bình luận ·
-
bug triage:deciding
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
open-telemetry/otel-arrow#4132 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100