neogeno / shango-lightning-wallet

Shango Lightning Wallet
66 stars 4 forks source link
bitcoin blockchain lightning lightning-network lnd wallet

Shango - Lightning Wallet for iOS and Android

Quick Start if you want to run Shango with your own LND Node (Main Net or Testnet)

Note: The instructions below assume you have a working LND Node. If you need help setting up your own personal node, this guide here is a good start and uses an inexpensive Raspberry Pi https://github.com/Stadicus/guides/tree/master/raspibolt If you don't want to invest the time and money, scroll down for instructions on using a Shango Cloud node.

1. Install App

Install the Shango app from Google Play or iTunes App Store. As of now this app is still in Public Beta so expect some bugs, excuse them and report all bugs on the Github page so they don't get lost in Inbox Hell. To get the app, click on the test links below.

2. Connect your node via GRPC

For access to your node from outside your home network, firstly make sure that the following settings are enabled on your node:

    rpclisten=0.0.0.0:10009
    tlsextraip=<your node's external ip>
    externalip=<your node's external ip>

Your node should now be set up to connect to Shango. The next step is to send over the permission files:

Quick Start for the rest of us (Testnet Cloud Node Only for now)

1. Install App

Install the Shango app from Google Play or iTunes App Store. As of now this app is still in Public Beta so expect some bugs, excuse them and report all bugs on the Github page so they don't get lost in Inbox Hell. To get the app, click on the test links below.

2. Check your node is ready

The first time you connect to the Shango service, you will be assigned a pre-warmed, full LND Lightning node that can earn fees, and that is already pre-synced to the Bitcoin testnet blockchain and ready to use. If you get a warning that your chain is not synced or that there are no peers online yet, it is probably because the cloud service is experiencing high traffic at the moment so just wait until the chain is synced and you see the synched up icon on your dashboard as below. Check that you have at least one peer connected in the dashboard before continuing.

Shango Screenshot

3. Get some Testnet coins

Get some Testnet coins! My usual places to get shiny new testnet coins are listed below. Once your testnet coins have been deposited to your on-chain wallet and confirmed you are ready to spend them. It may take a while to confirm depending on the conditions of the testnet network.

4. Open Channels (optional)

Wait for Channels to open and have the 'Active' badge near the right. By default autopilot mode is enabled with a commitment of 60% of your funds to open channels. This means that LND will seek out the best nodes to open channels with without any intervention on your part. Relax, your funds may look like they have been spent from your wallet balance but they are actually still in your control and can be redeemed anytime when you close the channels.

However, you may wish to expand beyond what autopilot does by fine tuning whom you open channels with. For example, if you are testing regularly with a specific crypto exchange, merchant or friend it may be advisable to manually open a channel with them. Try to select counterparties which already have a lot of channels open with others, and remember to set amounts in both directions e.g. have half the balance on your local side and the other half on the remote side. This allows value to move both ways along the channel.

Your goal is to get as 'well connected' as you can, as soon as possible so that you have the highest possible chance of routing payments to/from your node. If you need some ideas on which nodes to connect to, use one of these LN explorers:

1ML : https://1ml.com/testnet/ ACINQ: https://explorer.acinq.co/

5. Spend away!

Try sending an instant Lightning payment to one of the following demo stores:

Note: Whilst opening a channel directly to the above sites is optional, it may help you get transfers done faster and save a few Satoshis in fees.

For those who love to be connected, these are highly-connected nodes, so you should be able to pay anywhere once you make a connection to at least one of them.

htlc.me03193d512b010997885b232ecd6b300917e5288de8785d6d9f619a8952728c78e8@18.205.112.169:9735

yalls.org02212d3ec887188b284dbb7b2e6eb40629a6e14fb049673f22d2a0aa05f902090e@testnet-lnd.yalls.org

faucet.lightning.community 0270685ca81a8e4d4d01beec5781f4cc924684072ae52c507f8ebe9daf0caaab7b@159.203.125.125:9735

btctest.lnetwork.tokyo 023ea0a53af875580899da0ab0a21455d9c19160c4ea1b7774c9d4be6810b02d2c@160.16.233.215:9735

https://lightning-test.tom.place024c4a95dd7075c70ad36cb5f2de5e17dc99fd5fba9c402420b0af6abbd0137f4f@213.144.130.35:9735

http://lnd.fun0354d21c34f65c3429eedcef9e871a7286013ad5b27722a02752e29a4a888b0e62@lnd.fun:9735

aranguren.org038863cf8ab91046230f561cd5b386cbff8309fa02e3f0c3ed161a3aeb64a643b9@180.181.208.42:9735

lnplays.com02cdb6c06c0e1362212ab135993f4a92e0b8f85803d62c87df3644340ecab83990@lnplays.com:9735

endurance 03933884aaf1d6b108397e5efe5c86bcf2d8ca8d2f700eda99db9214fc2712b134@34.250.234.192:9735

nanoparticle.space 0269a94e8b32c005e4336bfb743c08a6e9beb13d940d57c479d95c8e687ccbdb9f@197.155.6.38:9735

FAQ

1. I'm scared of using cloud services for financial transactions. Cloud Servers are insecure. (I FEAR change!!!!)

2. What security measures are in place when I use Shango Cloud Nodes? If Shango is running all the nodes, doesn't that mean you can see all my private keys / access macaroons and get all my funds when you want? What if Shango gets hacked?

3. Why is Shango better than other Lightning wallets that just run on my phone? Why bother with this cloud stuff anyway?

4. Leaving a server on all day sounds risky to me. Isn't this a hot wallet that we were told to avoid?

5. I trust AWS. I don't trust you. What can I do about this?

6. I am still dubious. This is a scam to get my testnet coins and publicly available email address. Everybody is out to get me!

1.

I'm scared of using AWS cloud services for financial transactions. Cloud Servers are insecure. (I FEAR change!!!! )

Shango allows you to connect to your own Raspberry Pi, PC, Linux or Mac LND server that you setup yourself so the AWS node is optional.

Here are the points why we chose to use the cloud for the back-end:

That said, if you are doing something that you feel is controversial and may be clamped down eventually by a statutory body, your contingency plan lies in the EXPORT image feature in Shango which allows you to download a docker image snapshot of your cloud node to go elsewhere, or of course running your own private node on a secured server managed by you.

Links:

2.

If Shango is running all the nodes, doesn't that mean you can see all my private keys / access macaroons and get all my funds when you want? What security measures are in place when I use Shango Cloud Nodes?

Before you run around yelling 'Custodian Wallet! Bad! Bad!' because you heard the word cloud, remember that even if the LND database is in the cloud, nobody can see your private keys except you, the keys are on your phone and you control them. Hence, this cannot be considered a custodial wallet.

Finally, if the above still hasn't convinced you, you can always use the Remote Control feature of Shango and connect to your own LND Node hosted on your PC or Server anyway. Shango gives you the option to hold your money any way you like it.

3.

Why is Shango better than other Lightning wallets that just run on my phone? Why bother with this cloud stuff anyway?

Lightning Wallets are different from regular Bitcoin on-chain wallets. LN wallets are essentially mini 'servers' that need to be online all the time to check the status of channels periodically in the background and route the actual payment through other nodes. By using Shango, you get the following benefits:

Functional Benefits
Architectual and Conceptual benefits

4.

Leaving a server on all day sounds risky to me. Isn't this a hot wallet that we were told to avoid?

True, keeping funds online and connected to the internet entails a fair amount of risk, even if it can be managed. Your funds are ultimately, like in any blockchain, only as secure as your private keys.

That said, this is the Lightning Network and by design there is no way to run it offline. However, there are best practices you can adopt to reduce the risk. Just like keeping your money off crypto exchange hot wallets is a good idea it is also a good idea to keep the bulk of your funds ON-CHAIN in a paper wallet/cold storage unplugged from any technology. With a metal etched wallet http://bitcoinist.com/bitstashers-upgrade-paper-wallet-metal/ even an EMP or fire can't take out your key.

Keep only funds for immediate and daily spending on your Lightning wallet and then move funds back and forth to your offline master wallet as needed. This way, even if you lose all your funds on your Lightning node, at least you are not broke.

I believe choice and flexibility is the key to making this project work.

5.

I can maybe trust AWS. I don't trust you. What can I do about this?

Good. You SHOULD NOT trust some random dude on the Internet that you never met and whose true agenda is unknown. I wouldn't either.

The point of Shango is that I have made every effort so you don't have to by:

From your side you can also:

So one strategy might be that if you anticipate wanting to make large Lightning purchases or receive payments, you simply transfer what you need for the task at hand to your cloud node wallet. Once done, you either spend it all or transfer remaining funds back to your offline, on-chain hardware or other safe wallet, and then terminate your cloud node so all the data is gone.

The next time you come back you get a fresh new node and start from a clean slate. You never have to use the same node twice. This I believe offers a high level of privacy and security for people who need it.

6.

I am still dubious. This is a scam to get my testnet coins and publicly available email address. Everybody is out to get me!

I can't make everyone happy. That is impossible. Instead, I shall quote this verse of our sacred scripture:

"If you don't believe it or don't get it, I don't have the time to try to convince you, sorry."

- Satoshi Nakamoto