lnd-tool 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +13 -2
- data/exe/lnd-tool +20 -0
- data/lib/lnd/tool/store/htlc_event.rb +25 -0
- data/lib/lnd/tool/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 50c44439e83989cc928244de008729fdfcd9e7f22c09fb2ea26f67f3016cd187
|
4
|
+
data.tar.gz: b7e009f8bad91d4c6206a1616c8413640a004df2e13d314f40b2eda688bd9e70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c8e2f7557ec6b2cb8dba8582bca88b2e4c122661f7447317dafd0bb70bd08f1ae9bb6ccb84bd633863ded21315f2ecfe376e979579098f0b33286fcd6d71c5d
|
7
|
+
data.tar.gz: 661dc0b47f6af4dc79481fae7f1b7cc4af0efccab93521718cceb595f63cf5dd7bfd00c5b75ed6d5af495edf2e56f953c69b96b0347d38569e0cd6bc6a661ef9
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# LND::Tool [](https://github.com/azuchi/lnd-tool/actions/workflows/main.yml) [](https://badge.fury.io/rb/lnd-tool) [](LICENSE)
|
1
|
+
# LND::Tool [](https://github.com/azuchi/lnd-tool/actions/workflows/main.yml) [](https://badge.fury.io/rb/lnd-tool) [](LICENSE.txt)
|
2
2
|
|
3
3
|
This is a tool for LND written in Ruby. Subscribe to htlc events in LND and save their contents to SQLite3.
|
4
4
|
|
@@ -83,4 +83,15 @@ Since it is a search to the database, it can be run even if the capture process
|
|
83
83
|
The `query_htlc` command has the following options.
|
84
84
|
|
85
85
|
* `event`: Option to specify the event type(`send`, `receive`, `forward`). e.g. `$ lnd-tool query_htlc --event=forward`
|
86
|
-
* `limit`: Option to narrows down the number of data. e.g. `$lnd-tool query_htlc --limit=30`
|
86
|
+
* `limit`: Option to narrows down the number of data. e.g. `$lnd-tool query_htlc --limit=30`
|
87
|
+
|
88
|
+
### Prune HTLC events
|
89
|
+
|
90
|
+
When the capture is running, the HTLC event is stored in the DB and the size of the DB grows.
|
91
|
+
Since v0.3.0, the `prune_htlc` command to prune(delete) DB records has been added.
|
92
|
+
|
93
|
+
The `prune_htlc` command should be executed with one of the following options:
|
94
|
+
|
95
|
+
* `max`: This is the maximum number of events to be retained in the DB.
|
96
|
+
Data exceeding this number will be pruned from the oldest data. (e.g.`$lnd-tool prune_htlc --max 10000`)
|
97
|
+
* `date`: Delete data prior to this date. (e.g.`$lnd-tool prune_htlc --date 2021-11-24`)
|
data/exe/lnd-tool
CHANGED
@@ -83,6 +83,26 @@ class CLI < Thor
|
|
83
83
|
puts table
|
84
84
|
end
|
85
85
|
|
86
|
+
desc 'prune_htlc', 'Pruning the data for the HTLC event in DB. Run with either the max option or the date option.'
|
87
|
+
option :max, type: :numeric, desc:
|
88
|
+
'This is the maximum number of data to be kept. Data exceeding this limit will be deleted in order of oldest to newest.'
|
89
|
+
option :date, type: :string, desc: 'Date in 2021-09-04 format. Delete data prior to this date.'
|
90
|
+
def prune_htlc
|
91
|
+
begin
|
92
|
+
store = LND::Tool::Store::HTLCEvent.new
|
93
|
+
if options['max']
|
94
|
+
store.prune_up_to(options['max'])
|
95
|
+
elsif options['date']
|
96
|
+
time = Date.parse(options['date']).to_time
|
97
|
+
store.prune_prior_to(time)
|
98
|
+
else
|
99
|
+
raise Thor::Error, 'Either the max or date option should be specified.'
|
100
|
+
end
|
101
|
+
puts "The current number of data is #{store.count}."
|
102
|
+
rescue Date::Error
|
103
|
+
raise Thor::Error, 'The format of the date option is invalid.'
|
104
|
+
end
|
105
|
+
end
|
86
106
|
end
|
87
107
|
|
88
108
|
CLI.start(ARGV)
|
@@ -80,6 +80,31 @@ module LND
|
|
80
80
|
convert(db.query(query, bind))
|
81
81
|
end
|
82
82
|
|
83
|
+
# Get record count.
|
84
|
+
# @return [Integer] record count.
|
85
|
+
def count
|
86
|
+
db.get_first_value('SELECT count(*) FROM HtlcEvent').to_i
|
87
|
+
end
|
88
|
+
|
89
|
+
# Pruning record up to +max+.
|
90
|
+
# @param [Integer] max Maximum number of records for this entity.
|
91
|
+
# @return [Integer] pruning count
|
92
|
+
def prune_up_to(max)
|
93
|
+
pruning_count = count - max
|
94
|
+
return 0 if pruning_count <= 0
|
95
|
+
|
96
|
+
query = 'DELETE FROM HtlcEvent ORDER BY created_datetime ASC LIMIT ?'
|
97
|
+
db.execute(query, [pruning_count])
|
98
|
+
pruning_count
|
99
|
+
end
|
100
|
+
|
101
|
+
# Pruning record prior to +Time+.
|
102
|
+
# @param [Time] time
|
103
|
+
def prune_prior_to(time)
|
104
|
+
query = 'DELETE FROM HtlcEvent WHERE timestamp_ns < ?'
|
105
|
+
db.execute(query, [time.to_i * 1_000_000_000])
|
106
|
+
end
|
107
|
+
|
83
108
|
private
|
84
109
|
|
85
110
|
def convert(recode_sets)
|
data/lib/lnd/tool/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lnd-tool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- azuchi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lnrpc
|