Comments (8)
After a night's reflection, I notice something -- I feel like I have several times seen issues that feel like "lightningd is confused about keeping a TCP connection in sync with a lightning channel over that connection." The user interface treats the two together -- 'connect' accomplishes both -- but it feels like, especially in error cases or across daemon restarts, the daemon has trouble keeping all the state machines synced up with each other.
from lightning.
There is no minimum required depth for the funds used to create a channel, so even 0-conf should work. As a matter of fact that's how I open most of my channels. Not broadcasting is strange, do you have any indication where it fails in the logs? Maybe we can add a JSON-RPC to rebroadcast or extract funding transactions, so we can manually trigger/release them.
from lightning.
Just had the same crash after attempting to disconnect a node that was unreachable, and in state STATE_INIT
. https://gist.github.com/anonymous/251ce28774d9f0c094a5dbe06388b6bb
from lightning.
Turns out it was a bit different. calling close
on a channel that is neither in STATE_NORMAL
nor STATE_NORMAL_COMMITTING
will trigger an assertion and fault our client. But it seems that we are conflating connection state and channel state in a few places.
from lightning.
OK, I have a patch which annotates the state information so getpeers will give you some more idea of what's happening. But:
STATE_OPEN_WAIT_FOR_OPEN_WITHANCHOR : We're actually waiting for them to send the OPEN packet! You shouldn't see that state for more than 1 RTT. That's why we reverted to STATE_INIT on restart; we didn't receive anything from the peer. Though clearly we didn't do anything useful there either...
The reconnect assert is another bug. I'll look at that too! Thanks!
from lightning.
Interesting. @rustyrussell does this mean that the reason I never broadcast an anchor is that I was waiting for the remote host to send the OPEN packet?
It's interesting that this state can persist -- does this imply that we got a TCP connection, sent a packet through it, and then ... silence? It seems like this ought to resolve quickly one way or another.
from lightning.
I don't think we have regular pings, so it could be a TCP connection getting stuck forever.
from lightning.
@cdecker I'll open another bug report for yours, one sec.
from lightning.
Related Issues (20)
- meta: Should we use the discussion forum for support requests? HOT 3
- [feature-request]: Enhance listtransactions rpc HOT 2
- CLN (temporarily) lost connection to bitcoind and crashed HOT 7
- Cannot update my lightning node
- BOLT12: CLN 24.05 can't fetch invoice from offer generated by LDK (recipient node id hiding) HOT 1
- BOLT12: can't decode offer (invalid token) HOT 4
- BOLT12: decode thinks offer is rune
- BOLT12: can't fetch invoice from offer (without description) HOT 7
- [track] Bolt 12 compatibility
- ccan UndefinedBehaviorSanitizer HOT 3
- We should use the same bitcoind version across all our CI / docker instances
- Failed to send and receive Bitcoin via green wallet lightning account. Failed to empty my green wallet lightning account. HOT 2
- Deleted document is not removed from Readme.com
- Include detailed information on close outputs in `listpeerchannels`
- sendpay_failure notifications missing important fields HOT 2
- 'package-mode' was unexpected
- Remove requirements.txt from python plugins
- Update an existing private channel into a public channel and vise versa
- Add new rpc `listaddresses` to list all addresses issued by the wallet
- Disabling change of directory based on network
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lightning.