Hi Matt,

> You've definitely done some review for some subset of code, mostly the
anchors code which was added
> not too long ago, but please don't pretend you've reviewed a large volume
of the pull requests in
> LDK, as far as I understand you have several other projects you focus
heavily on, which is great,
> but that's not being a major LDK contributor.

This is insulting, as I remember very well reviewing some hard parts of
recent ongoing changes such as some API changes for watchtower integration
or the state machine for collaborative transaction construction. Adopting a
pure quantitative measurement of the review contributions is short-sighted
and I think your position forgets with any mature open-source project
review of the hard and sensitive part of the codebase is the bottleneck.

We're working on a decentralized bitcoin open-source project, there is no
benevolent dictator for life with the legitimacy to qualify who is a major
or "spokesperson" contributor, and who is not. I understand this is your
job to work full-time on LDK, though I don't think there is any contractual
provision in your work contract requesting to play the BDLF.

If you have a different viewpoint or other professional information to
communicate to the community, thanks.

> In 2022 and 2023 you:
>  * landed a PR removing yourself from the security-reporting list (#2323,
no idea why you're trying
> to speak for the project when you removed yourself!)
>  * fixed one bug in the anchors aggregation stuff before it was released
(#1841, thanks!)
>  * made some constants public (#1839)
>  * increase a constant (#1532)
>  * added a trivial double-check of user code (#1531)

If I remember very well my anchor output patchset was ready to land in the
second-half of 2020, though at that time we didn't have enough qualified
review bandwidth and I spent a hell of a lot of time reviewing other
people's contributions through 2020/2021 to move the project nearer from
production-readiness. That lesson about the anchor output patchset, i.e
coming with meaningful code diff to do _interesting_ things and solve hard
problems as quite rendered me frivolous to show up with big diff, and waste
my coding time (when I can make advance on solving LN-related problems in
Bitcoin Core).

I think very recently I proposed changes to advance mempool monitoring and
custom script support, though here again it sounds to me we're still
lacking qualified eyes to bring informed technical opinions on the areas
necessitating a lot of context.

About #2323, the reason of removing myself from the security-reporting list
is related to weak and non-consensual code of conduct you introduced last
year which brings severe vulnerabilities to LDK process w.r.t social
attacks by external actors and risks of long-term shitshow a la Rust
governance, which I raised immediately on the code of conduct PR. I think
you never answered me neither publicly or privately on the lack of
robustness of this code of conduct if we're targeted by psyops from
NK-hacking groups (Sadly, real-world thing in the cryptocurrency world).

I have no doubt we'll be able to rebuild consensus on our security-handling
/ project community process in the future, with calm and patience.

> You've also, to my knowledge, never joined the public bi-weekly LDK
development calls, don't join
> the lightning spec meeting, and don't engage in the public discord
discussions where development
> decisions are made.

Again this is insulting to use the word "never" as I was the original host
of the LDK development meetings on Slack and I think I took the initiative
to launch the LDK review club last year. All those meetings / communication
spaces have public logs to parse interesting to look on and in fine
development decisions are made in a continuous fashion, where the review
and testing process on the repository being the main factor. And I'm pretty
active reviewing things on the lightning spec side at least as much as you.

> This implies you absolutely don't have a deep understanding of all the
things happening in the
> project, which makes you poorly suited to speak on behalf of the project.
I'm not trying to pass
> judgement on whether you've contributed (you have! thanks for your
contributions!), but only
> suggesting that if you don't contribute regularly enough to have a good
understanding of everything
> going on, speaking on behalf of the project isn't appropriate.

If you like to judge my "deep understanding" of LDK codebase, you're free
to throw a ldk-sample with the latest v0.0.116 release , throw your money
on it on few channels, send me the node public key and then you'll see
after a while if the funds are still there, otherwise this is cheap talk
and just the subjective appreciation of your mind.

In reality, I'm still weekly reviewing and hacking on Bitcoin Core's
sensitive parts related to Lightning, and I don't necessarily have the time
to attend *all* the meetings. As a LDK maintainer you should be happy to
have contributors still actively working on Bitcoin Core in the state of
current cross-layer issues, this is not a leisure that all the other LN
implementations can afford!

> While I know you feel like lightning at large isn't a protocol which
takes security seriously, I
> think you're pretty far off base here. Getting lightning right is *hard*,
as you well know there are
> many, many, many ways it can go wrong. And we, like every other lightning
software project, take
> that seriously, while also trying to ship features to make lightning
broadly useful and usable (two
> things that its historically not really been...because its hard for many
reasons beyond just
> security issues).

This is not a personal sentiment, though an objectivable engineering facts
that Lightning as a protocol / network is weak, that I did prove few times
in the past for different class of vulnerabilities and that I don't think
you'll argue Lightning is fundamentally weak until package relay / nversion
3 is deployed and integrated in lightning implementations, and this will
take another couple of years at best.

I hear you man on the ton ship of features to make lightning and usable, I
think I gave a talk on the liquidity toolchain back in 2019 and the long
road ahead, and I think I'm currently reviewing dual-funding at the
spec-level and in LDK, which is clearly a future people building
real-things on Lightning wish. Come on, I've reviewed almost all of the
hard parts of LDK, I know it's hard though security-first, more and more
end-users have their skin in the game.

> If you followed LDK (and other lightning) development more closely, I
think you'd have a greater
> appreciation for these things :).

I think I've been talking in real-life to actual LDK users more recently
than you. If you would listen to Lightning users in an open-minded fashion,
not from your ivory tower of a lightning protocol dev, you'll know how many
people are complaining on the poor usability of the LDK interface, and this
is quite the reason ldk-node was launched, no ?

> I'm really unsure what you mean here "open-source ethical rules" - is it
your opinion that you
> should speak for a project you don't really follow closely just because
you think the people who do
> work on it a lot aren't doing a good enough job in your opinion? That
seems incredibly strange to me.

Yes when you're an active contributor to the said project, that you're
spending nights actually reviewing and testing fixes like the ones we
landed for the fake channel DoS vector and you're quite spending a hell of
lof times landing and reviewing other robustness things in the Lightning
ecosystem, you're kinda legitimate to say people do not do a good enough
job.

This is my current appreciation with 5y of experience than the current LDK
maintenance team adopting a "move fast and break things" attitude w.r.t
landing new features and code changes. I don't know if this is motivated by
some kind of competition for the lowest common technical denominator with
other implementations and fear of losing usage market share). Though yes, I
think the project is taking significant technical debt, especially w.r.t
security, safety, performance and code modularity dimensions.

I think you're as knowledgeable as myself on the history of the Internet, I
think you're very familiar with the security weakness of the major Internet
protocols like BGP / SMTP and DNS which have somehow led to the current
centralization of mainstream Internet service/usage. In the current state
Lightning is still weak, it will take another 10 years at the current
engineering pace to fix all the major flaws. If we hit TheDAO-like massive
ecosystem hacks leading Lightning users to take refuge behind centralized
"wallet gardens", all the hard work on liquidity management or routing or
state management is quite useless.

If this is happening, I don't think all the senior Lightning developers and
open-source project manager we'll be able to say we didn't see this coming.
I think Matt Morehouse's security report is actually an independent
underpinning of the meager state of Lightning robustness. This is where I'm
not sure the Lightning community is doing its best in terms of open-source
ethics and safeguard of end-users interests.

So I'll keep "speaking" for the LDK project whether you're pleased or not,
when I have got my hands dirty on the subject and the current maintenance
team is not doing the job. And all that said, this is okay to have
conflicts in an open-source project and this is somehow positive to grow in
terms of culture, communications or technical philosophy. Thanks for the
hard work you've been doing on LDK for years, though if you aim for more
social recognition you're free to go to work on another open-source
project. Minding the deep respect I have for your sense of dedication and
technical skills, _I don't need you to hack or understand the complex LDK
codebase_.

If you wish to improve LDK communications, feel free to take accountability
to organize the 1st LDKDev community event (in the image of CoreDev) in
person (maybe SF or LA in the second half of 2024?). I think someone
proposed that idea under "Bitcoin Builder Event" and I think I still have
the publicly shared gdoc from 2021 though this idea has stayed cheap
communication so far.

In the meantime, there are only 144 blocks in a day (on average) and I have
package relay and mempool to review in Bitcoin Core to improve Lightning
for all, further discussions won't be constructive and I won't reply
further.

Best,
Antoine












Le dim. 27 août 2023 à 19:00, Matt Corallo <lf-li...@mattcorallo.com> a
écrit :

>
>
> On 8/26/23 5:03 AM, Antoine Riard wrote:
> > Hi Matt,
> >
> >  > While you were aware of these fixes at the time, I'd appreciate it if
> you, someone who hasn't spent
> >  > much time contributing to LDK over the past two or three years, stop
> trying to speak on behalf of
> >  > the LDK project.
> >
> > While this statement is blatantly false and disregards all the review
>
> You've definitely done some review for some subset of code, mostly the
> anchors code which was added
> not too long ago, but please don't pretend you've reviewed a large volume
> of the pull requests in
> LDK, as far as I understand you have several other projects you focus
> heavily on, which is great,
> but that's not being a major LDK contributor.
>
> > and robustness hardening
> > landed during the last two or three years
>
> In 2022 and 2023 you:
>   * landed a PR removing yourself from the security-reporting list (#2323,
> no idea why you're trying
> to speak for the project when you removed yourself!)
>   * fixed one bug in the anchors aggregation stuff before it was released
> (#1841, thanks!)
>   * made some constants public (#1839)
>   * increase a constant (#1532)
>   * added a trivial double-check of user code (#1531)
>
> You've also, to my knowledge, never joined the public bi-weekly LDK
> development calls, don't join
> the lightning spec meeting, and don't engage in the public discord
> discussions where development
> decisions are made.
>
> This implies you absolutely don't have a deep understanding of all the
> things happening in the
> project, which makes you poorly suited to speak on behalf of the project.
> I'm not trying to pass
> judgement on whether you've contributed (you have! thanks for your
> contributions!), but only
> suggesting that if you don't contribute regularly enough to have a good
> understanding of everything
> going on, speaking on behalf of the project isn't appropriate.
>
> > I would appreciate it from you in the conduct of your
> > maintenance janitorial role to have more regard for the LDK users funds
> security rather than a "move
> > fast and break things" attitude.
>
> While I know you feel like lightning at large isn't a protocol which takes
> security seriously, I
> think you're pretty far off base here. Getting lightning right is *hard*,
> as you well know there are
> many, many, many ways it can go wrong. And we, like every other lightning
> software project, take
> that seriously, while also trying to ship features to make lightning
> broadly useful and usable (two
> things that its historically not really been...because its hard for many
> reasons beyond just
> security issues).
>
> If you followed LDK (and other lightning) development more closely, I
> think you'd have a greater
> appreciation for these things :).
>
> > As such, and with in mind all open-source ethical rules, I'll keep
> speaking on the behalf of the LDK
> > project when I see fit, whether you're pleased or not.
>
> I'm really unsure what you mean here "open-source ethical rules" - is it
> your opinion that you
> should speak for a project you don't really follow closely just because
> you think the people who do
> work on it a lot aren't doing a good enough job in your opinion? That
> seems incredibly strange to me.
>
> Matt
>
_______________________________________________
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev

Reply via email to