Bitcoin Node JSON RPC API (Part 1)Worker(s): yosoyubik Reward: 1 Stars Completed
To expand Urbit’s Bitcoin-related capabilities, we are building a Gall app which can comprehensively control a Bitcoin Core full node via the JSON RPC API. The app is contained in this branch of the Urbit repo, and the original conception of this idea is discussed here. Our ultimate goal is to create Bitcoin libraries for Urbit, enabling Bitcoin to serve as a "money primitive" for future Gall apps.
Bitcoin Core is the reference implementation for Bitcoin nodes, which can be run as bitcoind or bitcoin-qt.
This bounty is to create a portion of the Gall app library for Remote Procedure Calls to a Bitcoin Core full node, written in Hoon. The other portions are covered in these grants: Two, Three, Four.
- Specifically, this bounty is to create types and JSON conversions for commands and responses of the first section of the Bitcoin Core API reference, titled “Blockchain”:
- Create type definitions in Hoon for structuring commands and responses. Specify poke-action types that map to each command. Use logic specified in Bitcoin Core API resource and the template contained in the guidelines, and fill in this code where appropriate in
- The application will be structured as two Gall agents: one “Store” and one “Hook”. The store should act as a data store for data received from the Bitcoin full node, and the Hook should send commands to the node as well as parsing the responses and poking them into the Store. A template branch has been created to set up skeletons of these files to make your work easier.
- Store/Hook proposal for userspace architecture
- Urbit Gall App documentation
- Bitcoin Core API reference documentation: Here, [here](https://en.bitcoin.it/wiki/API_reference_(JSON-RPC), and here.
- Distinctions between bitcoind and bitcoin-qt: Differences between them discussed here
- JSON RPC API standards
- Do not begin work until your request to claim this bounty is accepted. We will assign a designer to work with you on the interface.
- Base your work off of the btc-node-grant branch. Follow Boilerplate. Look for
- Submit your code as a PR to the btc-node-grant branch of the
urbitrepo in form of a
- You have 45 days from the time of approval to complete this bounty.
Your PR is merged
1 stars Your PR containing all the relevant code updates is accepted and merged.