Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/theborakompanioni/cln-grpc-client
A gRPC client for Core Lightning (CLN) :zap:
https://github.com/theborakompanioni/cln-grpc-client
bitcoin cln grpc java lightning
Last synced: 11 days ago
JSON representation
A gRPC client for Core Lightning (CLN) :zap:
- Host: GitHub
- URL: https://github.com/theborakompanioni/cln-grpc-client
- Owner: theborakompanioni
- License: apache-2.0
- Created: 2023-06-15T13:16:43.000Z (over 1 year ago)
- Default Branch: devel
- Last Pushed: 2024-06-12T08:19:29.000Z (5 months ago)
- Last Synced: 2024-06-12T12:47:30.263Z (5 months ago)
- Topics: bitcoin, cln, grpc, java, lightning
- Language: Java
- Homepage:
- Size: 502 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: changelog.md
- Contributing: contributing.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build](https://github.com/theborakompanioni/cln-grpc-client/actions/workflows/build.yml/badge.svg)](https://github.com/theborakompanioni/cln-grpc-client/actions/workflows/build.yml)
[![GitHub Release](https://img.shields.io/github/release/theborakompanioni/cln-grpc-client.svg?maxAge=3600)](https://github.com/theborakompanioni/cln-grpc-client/releases/latest)
[![Maven Central](https://img.shields.io/maven-central/v/io.github.theborakompanioni/cln-grpc-client-core.svg?maxAge=3600)](https://search.maven.org/#search|g%3A%22io.github.theborakompanioni%22)
[![License](https://img.shields.io/github/license/theborakompanioni/cln-grpc-client.svg?maxAge=2592000)](https://github.com/theborakompanioni/cln-grpc-client/blob/master/LICENSE)
cln-grpc-client
===A gRPC client for [Core Lightning (CLN)](https://github.com/ElementsProject/lightning).
### `cln-grpc-client-starter`
A module containing [a Spring Boot Starter is also available](https://github.com/theborakompanioni/bitcoin-spring-boot-starter/blob/devel/cln-grpc-client/readme.md).## Table of Contents
- [Install](#install)
- [Development](#development)
- [Contributing](#contributing)
- [Resources](#resources)
- [License](#license)## Install
[Download](https://search.maven.org/#search|g%3A%22io.github.theborakompanioni%22) from Maven Central.
### Gradle
```groovy
repositories {
mavenCentral()
}
``````groovy
implementation "io.github.theborakompanioni:cln-grpc-client-core:${clnGrpcClientVersion}"
```### Maven
```xmlio.github.theborakompanioni
cln-grpc-client-core
${clnGrpcClient.version}```
## Development
### Requirements
- java >=17
- docker### Build
```shell script
./gradlew build -x test
```### Test
```shell script
./gradlew test integrationTest --rerun-tasks
```### Dependency Verification
Gradle is used for checksum and signature verification of dependencies.```shell script
# write metadata for dependency verification
./gradlew --write-verification-metadata pgp,sha256 --export-keys
# update buildscript dependency locks
./gradlew dependencies --write-locks
```See [Gradle Userguide: Verifying dependencies](https://docs.gradle.org/current/userguide/dependency_verification.html)
for more information.### Checkstyle
[Checkstyle](https://github.com/checkstyle/checkstyle) with adapted [google_checks](https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml)
is used for checking Java source code for adherence to a Code Standard.```shell script
# check for code standard violations with checkstyle
./gradlew checkstyleMain --rerun-tasks
```### SpotBugs
[SpotBugs](https://spotbugs.github.io/) is used for static code analysis.```shell script
# invoke static code analysis with spotbugs
./gradlew spotbugsMain --rerun-tasks
```### Troubleshooting
#### `ManagedChannelProvider$ProviderNotFoundException`
```
Caused by: io.grpc.ManagedChannelProvider$ProviderNotFoundException: No functional channel service provider found. Try adding a dependency on the grpc-okhttp, grpc-netty, or grpc-netty-shaded artifact
```add a channel service provider implementation, e.g.
```groovy
implementation "io.grpc:grpc-netty-shaded:${grpcVersion}"
```Hint: The above section should currently not apply, as `grpc-netty-shaded` is included as dependency.
However, this dependency might be removed in future releases.#### Error loading shared library `libio_grpc_netty_shaded_netty_tcnative-*.so`
See: https://github.com/grpc/grpc-java/blob/master/SECURITY.md#netty
## Contributing
All contributions and ideas are always welcome. For any question, bug or feature request,
please create an [issue](https://github.com/theborakompanioni/cln-grpc-client/issues).
Before you start, please read the [contributing guidelines](contributing.md).## Resources
- Bitcoin: https://bitcoin.org/en/getting-started
- Lightning Network: https://lightning.network
---
- cln (GitHub): https://github.com/ElementsProject/lightning ([Docker](https://hub.docker.com/r/polarlightning/clightning))
- cln protobuf: https://github.com/ElementsProject/lightning/tree/master/cln-grpc/proto
- Protocol Buffers: https://protobuf.dev/
- gRPC: https://grpc.io/
- grpc-java (GitHub): https://github.com/grpc/grpc-java
- grpc-java Security: https://github.com/grpc/grpc-java/blob/master/SECURITY.md## License
The project is licensed under the Apache License. See [LICENSE](LICENSE) for details.