Technical Projects

Vivek Teega
Mar 14, 2018 · 3 min read

All the technical projects which Ranchi Mall is working on will be listed here.

Electrum wallet (Python & C++)

Problem — Line 158 & 160, def verify_header -> /lib/blockchain.py

The code fails both those checks as the their value depends on the variable ‘target’ and the wallet is miscalculating it currently.

Background —

Electrum wallet is an SPV client. SPV clients do not have a copy of the whole blockchain with them, instead they have a copy of the whole blockchain’s block headers. This is done so as to save space.

Electrum client trusts an external server, ElectrumX, to provide it the blockchain headers and block’s data when required. Electrum wallet and ElectrumX server talk using a protocol called Electrum protocol, using JSON RPC calls. You can check out all the RPC calls one can make to ElectrumX server over here

The FLO electrum wallet from bitspill’s repository currently fetches the first block’s, ie. genesis block’s, header data from ElectrumX (using get_header RPC call) -> writes it to blockchain_headers file locally ( the file is where all the blockchain headers will be in HEX format) -> requests headers for the next 2016 blocks (using get_chunk RPC call. Check protocol file above) -> fails to write this data because of the error mentioned in the problem above.

Its not able to calculate target properly as the get_target function which gives the value of target requires changes according to the original FLO code.

We need to translate this C++ code

to pythonish ..

PS — Please get an understanding of Electrum

On the FLO blockchain comments are appended at the end of transaction information. The RPC call used to get transaction data has two versions, one of them returns HEX data and the other returns data in human readable form.

We need to finds the steps to deserialize the HEX data and display the comments on wallet.

ElectrumX (Python & C++)

We need to make RPC calls to ElectrumX and make sure all of them are returning the right data.

for eg. The RPC call to send transaction data doesn’t work when verbose option is enabled. That is because the code to parse comments is not there in ElectrumX.

FLO core wallet (C++)

FLO core wallet has a feature called coin control, which allows users to select UTXOs which will go into the input of a transaction.

Currently the wallet’s default behaviour is that it selects UTXOs automatically. We want it to select UTXOs based on FIFO basis.

Ranchi Mall

Global | Transparent | Trust-Based | Creative | Innovative | Collaborative | Borderless | Officeless |

Vivek Teega

Written by

Ranchi Mall

Global | Transparent | Trust-Based | Creative | Innovative | Collaborative | Borderless | Officeless |