Objective one: Current state of development
The first part of the research followed the available scenario of usage (as of mid-February 2018) of the Lightning Network. It was composed by the installation of the necessary software and performance of an economic transaction using a Lightning payment channel. The implementation used was the c-lightning, as it was, at the time, easier to use as a mainnet client than the other well-known alternative (lnd). As for the transaction itself, it would be a payment to the Blockstream store. Once an order had been successfully placed, the objective would be accomplished.
During the exploration of this scenario, it was clear that, at this point, the only user who would be able to perform the necessary operations was John, leading to the perhaps obvious conclusion that the technology is not usable for less technical users, even if they are willing to go through some risk.
Even though a tutorial was partially followed for the whole task, there were a few problems encountered along the way that required extra effort and previous experience to overcome them. Apart from navigating the website for the purchase, all the actions were direct commands in the CLI. The requirement for specific knowledge was considered by the evaluators as a natural constraint of the development process that, in fact, avoids that unprepared users are exposed to the risk of financial loss. In other words, those who can't perform the operation shouldn't be using the technology yet.
Nevertheless, the task was successfully carried out through these steps:
- Set up Bitcoin Core (bitcoind), have it synchronized with the mainnet and running.
- Install and configure c-lightning (lightningd):
- Create wallet
- Run it connected to bitcoind
- Get
newaddr
and fund the lightningd wallet. - Wait for confirmations of the funding.
- Connect to another node.
- Set a transaction fee for the Bitcoin node.
- Open and fund a Lightning Network channel with a well-connected peer.
- Go to Blockstream's store, add items to basket and proceed to checkout, where you get a Lightning payment request.
- Decode payment request, find a route and send the transaction.
The process is not particularly complex for users who know how to use the wallet through the CLI, but all the others (Luke and Jennifer) will have to wait until they are able to use it. In addition, the moment now is essentially for tests and development of new solutions and structures. Even for technically-able users, the system and the tools that surround it are still too risky to be considered ready for use.