Comments (10)
My preference is to simplify APIs where necessary: the GRPC can simply use the new APIs so the only deprecation cycle is on the JSON-RPC side, and I can handle those.
Can we make a checklist of what APIs are missing? GH supports those natively, so we can use this issue to coordinate and aim to complete that by next release? (Sure, that means we need it done in three weeks, but pressure makes diamonds, right?)
from lightning.
I seconds the importance of this. While Building Torq and using CLN for Eden we notice that the biggest weakness that CLN has is the APIs and the gRPC. I think that improving this will have a massive impact on CLN adoption especially for enterprise.
Another thing. Not having subscription for certain data forces the need to build plugins. For example for payment status and channel interception.
from lightning.
I think these belong here aswell:
from lightning.
Can we make a checklist of what APIs are missing?
Here you go #7209 @rustyrussell - now even tests can catch missing calls
I have commits ready for all of them except sql
/sql-template
from lightning.
Thanks @kilrau for taking the lead here. cln-grpc
is a core component of CLN and Greenlight alike, and so I am interested in getting coverage and stability to the same level as the other client bindings too.
The JSON-RPC schema, from which the GRPC bindings are generated via msggen
, are sometimes rather complex, meaning that the msggen
converter can't handle them all as of now. We can either simplify the schema (my preference, but also slow due to deprecation cycles) or we can teach msggen
how to handle these more complex structures.
So we'd be attacking this on 3 fronts:
- JSON-RPC Schema must be simplified to match the capabilities of other RPC systems we intend to use. GRPC for now.
msggen
needs to learn how to deal with the structures we have already- Testing needs to be expanded to allow testing through the grpc interface too.
The last point already partially exists, and is what I used when building msggen
for my own needs. If you set the envvar CLN_TEST_GRPC=1
you'll switch to using the cln-grpc
interface instead of the direct JSON-RPC:
lightning/contrib/pyln-testing/pyln/testing/utils.py
Lines 831 to 835 in e331532
Technically, we have grpc2py.py
which translates requests on the python side into the corresponding grpc messages, then sends them to the cln-grpc
interface, and then it translates back into the JSON-RPC format so the tests don't have to change. This roundtripping could be a good way to ensure both interfaces remain stable.
What do you think?
from lightning.
So first step is to fix msggen
. @michael1011 gave it a look - it honestly looks like someone from your team who's already familiar with it will need to do that, too steep of a learning curve for an external contributor. I can't judge if simplifying the schema is currently possible or teaching msgen
to handle the existing structures, but who from your team could work on it?
from lightning.
New issues since I opened this one:
#7168
#7169
#7176
from lightning.
Just noting that in my case, the fact it is a plugin let me keep supporting arm32v7 due to this annoying issue. #6596
The fact I can remove it easily from the build in our fork fixed my issue. (I spent 1 day trying to fix it)
from lightning.
Don't want to start a new discussion, but hope for experts here to answer my question. Can gRPC methods be added dynamically at runtime for a CLN plugin? Looking for ways to make my PeerSwap Web compatible with Core Lightning.
from lightning.
Can we make a checklist of what APIs are missing?
Here you go #7209 @rustyrussell - now even tests can catch missing calls
from lightning.
Related Issues (20)
- Rune restrictions per unit of time and rune UX HOT 1
- gossipd crash in v24.02 HOT 6
- ci: Flaky tests are slowing down the process of merging HOT 2
- Closing transaction stuck in mempool with low fee HOT 8
- nix: build broken in a nix shell HOT 3
- Rune restriction not being enforced on pnamedescription or pnamelabel when issuing invoice HOT 1
- gossipd: gossip_store: get delete entry offset HOT 1
- Missing dependency lopsq.co HOT 1
- Schemas use msat where parameter is actually sat HOT 1
- Potential secret rune returned in error message when rune has a formatting issue HOT 2
- Run HOT 1
- Run
- docs: Convert JSON example section into expandable section
- docs: Add shell examples under expandable heading
- Interop: INVALID_ONION_HMAC HOT 3
- `listfunds` lists unconfirmed transaction that can never confirm because it conflicts with a confirmed transaction also in the wallet
- Run HOT 2
- docs: assign categories (genera) to rpc commands
- Please provide a way to enable disabled BOLT12 offer
- Version 24 has issues, how to upgrade to version 23? HOT 2
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.