blockchain / thunder

Off-Chain Bitcoin payments using smart contracts
https://blockchain.com/thunder
GNU Affero General Public License v3.0
554 stars 175 forks source link

Connection failures can corrupt channel #17

Open matsjj opened 8 years ago

matsjj commented 8 years ago

If the connection drops between exchanging LNPaymentMessageD the one node that sent and received it already thinks everything is ready to go and done, while the other node does not and may never receive the message. That node then basically falls back to the last stable state it knows, which then differs from the one on the other node.

We need some more general solution to this problem, and it seems that building a tracking-resending-algorithm on top of the network layer is the way to go (as done in amiko pay).

One easy way to build it would be to add it as another layer (we can argue where that should live - I would say after authentication) to just save all outgoing messages and ACK all incoming messages and resubmit messages if they haven't been ACKed (fairly standard behaviour). We need to save all messages in the database, which might affect performance a bit though.

Tintress15 commented 6 years ago

https://blockchain.info/payment_request?address=1PqPStU4EREhk2ooUFNhtio7c31bJ4Zego&message=Unspents%0A&amount_local=282.83&currency=USD&nosavecurrency=true

Tintress15 commented 6 years ago

Refine web searches You can use symbols or words in your search to make your search results more precise.

Google Search usually ignores punctuation that isn’t part of a search operator. Don’t put spaces between the symbol or word and your search term. A search for site:nytimes.com will work, but site: nytimes.com won’t. Common search techniques Search social media Put @ in front of a word to search social media. For example: @twitter.

Search for a price Put $ in front of a number. For example: camera $400.

Search hashtags Put # in front of a word. For example: #throwbackthursday

Exclude words from your search Put - in front of a word you want to leave out. For example, jaguar speed -car

Search for an exact match Put a word or phrase inside quotes. For example, "tallest building".

Search for wildcards or unknown words Put a in your word or phrase where you want to leave a placeholder. For example, "largest in the world".

Search within a range of numbers Put .. between two numbers. For example, camera $50..$100.

Combine searches Put "OR" between each search query. For example, marathon OR race.

Search for a specific site Put "site:" in front of a site or domain. For example, site:youtube.com or site:.gov.

Search for related sites Put "related:" in front of a web address you already know. For example, related:time.com.

Get details about a site Put "info:" in front of the site address.

See Google’s cached version of a site Put "cache:" in front of the site address.

Was this article helpful? YESNO Help

How to search on Google Refine web searches Find free-to-use images Filter your search results Advanced Search Google search results page