Skip to content

Commit 16255d7

Browse files
committed
v0.1.0-alpha.1
1 parent e973d3f commit 16255d7

File tree

7 files changed

+41
-46
lines changed

7 files changed

+41
-46
lines changed

Diff for: CHANGELOG.md

+10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
11
Change Log
22
==========
33

4+
v0.1.0-alpha.1
5+
--------------
6+
7+
Initial pre-release:
8+
- Multithreaded concurrent architecture
9+
- Connection daemon
10+
- Command-line tool
11+
- LN peer connectivity
12+
- ZMQ RPC command buses: for LN messages and control
13+

Diff for: Cargo.lock

+9-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: Cargo.toml

+7-17
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "lnp_node"
33
description = "LNP node"
4-
version = "0.1.0-alpha.2"
4+
version = "0.1.0-alpha.1"
55
authors = ["Dr. Maxim Orlovsky <[email protected]>"]
66
license = "MIT"
77
keywords = ["bitcoin", "node", "lightning-network", "smart-contracts", "rgb"]
@@ -21,6 +21,9 @@ required-features = ["cli"]
2121
# Rust language
2222
amplify = "~2.0.6"
2323
amplify_derive = "~2.0.6"
24+
lnpbp = { version = "~0.2.0-alpha.1", features = ["lnp", "url", "websockets"] }
25+
lnpbp_derive = "~0.2.0-alpha.1"
26+
lnpbp_services = "~0.2.0-alpha.1"
2427
lazy_static = "~1.4.0"
2528
nix = { version = "~0.19.0", optional = true }
2629
# Bitcoin
@@ -47,23 +50,10 @@ async-trait = { version = "~0.1.35", optional = true }
4750
tokio = { version = "~0.2.21", features = ["full"], optional = true }
4851
zmq = { version = "~0.9.2", optional = true }
4952

50-
[dependencies.lnpbp]
51-
git = "https://github.com/LNP-BP/rust-lnpbp"
52-
branch = "master"
53-
features = ["lnp", "keygen", "tokio", "serde", "url", "websockets"]
54-
55-
[dependencies.lnpbp_derive]
56-
git = "https://github.com/LNP-BP/rust-lnpbp"
57-
branch = "master"
58-
59-
[dependencies.lnpbp_services]
60-
git = "https://github.com/LNP-BP/rust-lnpbp"
61-
branch = "master"
62-
6353
[build-dependencies]
6454
amplify = "~1.2.0"
65-
lnpbp = { git = "https://github.com/LNP-BP/rust-lnpbp", branch = "master", features = ["lnp", "keygen", "tokio", "serde", "tor", "url", "websockets"] }
66-
lnpbp_services = { git = "https://github.com/LNP-BP/rust-lnpbp", branch = "master", features = ["shell"] }
55+
lnpbp = { version = "~0.2.0-alpha.1", features = ["lnp", "url", "websockets"] }
56+
lnpbp_services = "~0.2.0-alpha.1"
6757
clap = "=3.0.0-beta.2"
6858
clap_generate = "=3.0.0-beta.2"
6959
log = { version = "~0.4.8", features = ["max_level_trace", "release_max_level_debug"] }
@@ -100,7 +90,7 @@ shell = [
10090
# Besides server node can be run as a part of mobile app
10191
# and other types of clients; thus `server` != `node`.
10292
# This feature results in building with features not required for CLI
103-
node = ["serde", "lnpbp/keygen", "tokio", "zmq", "lnpbp_services/node"]
93+
node = ["serde", "lnpbp/keygen", "tokio", "lnpbp/tokio", "zmq", "lnpbp_services/node"]
10494
serde = ["serde_crate", "serde_with", "toml", "amplify/serde", "lnpbp/serde",
10595
"lnpbp_services/serde"]
10696

Diff for: README.md

+15-9
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ The node must maintain simple/modular upgradability for:
8989

9090
## Design
9191

92+
### Approach
93+
9294
The node (as other nodes maitained by LNP/BP Standards Association and Pandora
9395
Core company subsidiaries) consists of multiple microservices, communicating
9496
with each other via LNP ZMQ RPC interface.
@@ -119,21 +121,27 @@ Other third parties provide their own nodes:
119121
* [MyCitadel](https://github.com/mycitadel/mycitadel-node) Bitcoin, LN & RGB
120122
enabled wallet service with support for other LNP/BP protocols
121123

124+
### LNP Node Architecture Specifics
125+
126+
The overall architecture of LNP Node is the following:
127+
128+
![Node architacture](doc/lnp_node_arch.jpeg)
129+
122130
## Project organization & architecture
123131

124-
* [`src/api/`](src/api/) – LNP messages for all daemons used for message bus
125132
* [`src/bin/`](src/bin/) – binaries for daemons & CLI launching main process
126133
* [`src/cli/`](src/cli/) – CLAP-based command line API talking to message bus
134+
* [`src/rpc/`](src/rpc/) – RPC commands for all daemons used for message bus
127135
* [`src/i8n/`](src/i8n/) – functions exposed to FFI talking to message bus
128136
* `src/<name>/` – service/daemon-specific code:
129-
- [`src/wired/`](src/wired) – daemon managing peer connections within
130-
Lightning peer network using LNP (Lightning network protocol). Specific
131-
supported message types are defined as a part of
137+
- [`src/connectiond/`](src/connectiond) – daemon managing peer connections
138+
within Lightning peer network using LNP (Lightning network protocol).
139+
Specific supported message types are defined as a part of
132140
[LNP/BP Core Library](https://github.com/LNP-BP/rust-lnpbp)
133141
- [`src/channeld`](src/channeld) – daemon managing generalized Lightning
134142
channels with their extensions
135-
- [`src/lightningd`](src/lightningd) – daemon initializing creation of new
136-
channels
143+
- [`src/lnpd`](src/lnpd) – daemon initializing creation of new channels and
144+
connections
137145
- [`src/routed`](src/routed) – daemon managing routing information
138146
- [`src/gossip`](src/gossip) – daemon managing gossip data
139147
- [`src/keyd`](src/keyd) - key managing daemon
@@ -142,11 +150,9 @@ Each daemon (more correctly "microservice", as it can run as a thread, not
142150
necessary a process) or other binary (like CLI tool) follows the same
143151
organization concept for module/file names:
144152
* `error.rs` – daemon-specific error types;
145-
* `config.rs` – CLAP arguments & daemon configuration data;
153+
* `opts.rs` – CLAP arguments & daemon configuration data;
146154
* `runtime.rs` – singleton managing main daemon thread and keeping all ZMQ/P2P
147155
connections and sockets; receiving and processing messages through them;
148-
* `processor.rs` – business logic functions & internal state management which
149-
does not depend on external communications/RPC;
150156
* `index/`, `storage/`, `cache/` – storage interfaces and engines;
151157
* `db/` – SQL-specific schema and code, if needed.
152158

Diff for: doc/lnp_node_arch.jpeg

896 KB
Loading

Diff for: src/connectiond/mod.rs

-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
#[cfg(feature = "shell")]
1616
mod opts;
17-
mod peer;
1817
mod runtime;
1918

2019
#[cfg(feature = "shell")]

Diff for: src/connectiond/peer.rs

-13
This file was deleted.

0 commit comments

Comments
 (0)