hkjn / lnhw Goto Github PK
View Code? Open in Web Editor NEWChainlab 2018 hackathon project for a LN hardware wallet.
License: Apache License 2.0
Chainlab 2018 hackathon project for a LN hardware wallet.
License: Apache License 2.0
One of our biggest problems during the hackathon was getting real c-lightning data as we waited for our bitcoind and c-lightning testnet nodes to finish syncing.
I propose we use something like https://github.com/PierreRochard/bitcoin-lightning-docker to create a dockerized bitcoind / c-lightning test environment running on regtest. This way we wouldn't have to deal with testnet annoyances like coin faucets or syncing testnet's 15gb chain.
The project I linked above uses lnd. I plan to add c-lightning soon. This would probably be sufficient for UI developers. Next we would have to add some ability to use a c-lighting fork, instead.
I'm filing an issue to remind ourselves that we need to settle on an API between the ui
layer and client
layer.
On ui
side, @superquest and friends have started with https://github.com/hkjn/lnhw/blob/master/ui/sdk.js to stub out the interactions they believe are needed for ui
to fetch data from client
to find out about the c-lightning state, as well as for ui
to tell client
to take an action, e.g. sending a BOLT11 invoice.
Some options:
lightning-cli
, with a ui
-side backend that receives HTTP requests from the client-side code, and translates them into lightning-cli
commandsclient
side, similar to the https://github.com/hkjn/lnmon/blob/master/lnmon.go tool which wraps lightning-cli
to provide the data that is shown on the https://ln.hkjn.me web server + prometheus monitoring targetTo show all necessary information on the tiny OLED screen we need to be able to scroll information.
For example, information about invoice contains amount, description and public key of the receiving node. We should be able to scroll to the next screen when user clicks button B.
Requires refactoring of this file: https://github.com/hkjn/lnhw/blob/master/arduino/ui/oled/oled.ino
As we found out, it's extremely annoying to set up Arduino IDE on Linux. If anyone remembers what we did to make it work, it would be really helpful to write a small guide on how to fix permission problems.
I'm filing a ticket to track our discussions to date about settling on an API between client
and hardware
layers.
Our current thinking is to initiate communication from the client
layer, and use the serial port to send text-encoded requests to the hardware
layer, which will return similarly text-encoded responses.
The responses might be delayed until the UI on the hardware
side has gotten confirmation that the user wants to take a certain action.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.