Commit Graph

425 Commits

Author SHA1 Message Date
ZenGround0
c9955c0635 verbose flag 2020-10-12 23:59:30 -04:00
ZenGround0
768d2db114 Tipset traversal for speed 2020-10-12 23:53:14 -04:00
ZenGround0
79d94c4771 Hook up cmd 2020-10-12 23:09:40 -04:00
ZenGround0
a3e26233b2 Add postfind 2020-10-12 23:00:29 -04:00
Aayush Rajasekaran
96e1dfd8d7 Add an endpoint for precise circulating supply 2020-10-12 16:38:29 -04:00
Aayush Rajasekaran
bae3b7d594 add a shed util to determine % of power that has won a block 2020-10-11 19:05:54 -04:00
Jakub Sztandera
2b21fdef33
Refactor from crypto.SigType to types.KeyType
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-10-12 00:07:53 +02:00
Jakub Sztandera
7ee6bafd23
Fix lint warn
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-10-12 00:07:41 +02:00
Jakub Sztandera
753d7b71a9
Fix hardened path printing, show 20 addresses after empty
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-10-12 00:07:40 +02:00
Łukasz Magiera
8ae66d6c6a
Fix lint warnings
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-10-12 00:07:40 +02:00
Łukasz Magiera
2c92157233
shed ledger: Some UX improvements
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-10-12 00:07:40 +02:00
whyrusleeping
b35f9b56b4
WIP: adding in ledger support
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-10-12 00:07:40 +02:00
Łukasz Magiera
a6d9b302fa
Merge pull request #3583 from filecoin-project/feat/signing-backends
Remote wallet backends
2020-10-10 02:58:02 +02:00
Steven Allen
748d2e82a7 unshare the journal
Motivation:

* Run lotus with the race detector enabled (primary motivation).
* Allow multiple lotus nodes in a process (not a high priority).

Previously, the journal was shared between all lotus instances, but it was
initialized for every new node. This caused safety problems in tests (at a
minimum).

This patch explicitly passes the journal to all services that need it.
2020-10-09 13:23:07 -07:00
Łukasz Magiera
6cc7559b04 Fix APIInfo import cycle in tests 2020-10-09 02:58:12 +02:00
Łukasz Magiera
7d2f06cfbd Fix WalletSign in tests 2020-10-09 01:34:48 +02:00
Łukasz Magiera
8783c7434e Merge remote-tracking branch 'origin/master' into feat/signing-backends 2020-10-09 00:50:41 +02:00
Łukasz Magiera
d26ece10b8
Merge pull request #4241 from filecoin-project/fix/daemon-flag-clash
fix: clash between daemon --api flag and cli tests
2020-10-08 18:30:47 +02:00
Dirk McCormick
cb7d99fcc7 fix: clash between daemon --api flag and cli tests 2020-10-08 14:24:50 +02:00
Łukasz Magiera
7332a39f00 Merge remote-tracking branch 'origin/master' into fix/balances-audit-no-suffix 2020-10-08 13:58:40 +02:00
whyrusleeping
cd9af278b4 more info in audit outputs 2020-10-07 17:01:01 -07:00
whyrusleeping
8f4911ac0d dont print fil suffix in lotus shed audit balances 2020-10-07 16:00:52 -07:00
Steven Allen
df4b068d0e Merge branch 'master' into next 2020-10-07 11:55:00 -07:00
Aayush Rajasekaran
0ec2a10ebc Merge branch 'master' into next 2020-10-06 21:09:20 -04:00
whyrusleeping
be92dd9e63 allow manual setting of noncefix fee cap 2020-10-06 18:07:34 -07:00
whyrusleeping
74016ab1cc fix noncefix 2020-10-06 16:46:47 -07:00
Łukasz Magiera
2f70a91665 Merge remote-tracking branch 'origin/master' into next 2020-10-06 23:54:59 +02:00
Łukasz Magiera
0e2f697217
Merge pull request #4133 from filecoin-project/feat/backup
Miner backup/restore commands
2020-10-06 02:05:03 +02:00
Łukasz Magiera
70d88f226e Add usage to repo-type in shed datastore 2020-10-06 01:33:51 +02:00
Steven Allen
8292d60196 Merge branch 'master' into asr/spec-v1 2020-10-02 18:03:03 -07:00
Łukasz Magiera
bd964b4c3e
Merge pull request #4124 from filecoin-project/asr/verifreg
Some helpers for verifreg work
2020-10-03 00:20:45 +02:00
Łukasz Magiera
6f33706025 Merge remote-tracking branch 'origin/master' into feat/backup 2020-10-03 00:08:23 +02:00
Łukasz Magiera
1319d7072e shed: Fix lint 2020-10-02 23:54:03 +02:00
Łukasz Magiera
f147072284 Merge remote-tracking branch 'origin/master' into feat/pruning-command 2020-10-02 23:37:25 +02:00
Łukasz Magiera
deac7166b5 Support offline backups 2020-10-01 17:55:47 +02:00
Łukasz Magiera
c8a3269c4b shed: utils to read datastore backups 2020-10-01 17:55:47 +02:00
Łukasz Magiera
d20ebe93b9 shed: gofmt 2020-10-01 17:55:47 +02:00
Łukasz Magiera
6875527224 shed: Datastore utils 2020-10-01 17:55:46 +02:00
Aayush Rajasekaran
93e4eae94c Some helpers for verifreg work 2020-10-01 04:49:38 -04:00
Steven Allen
4989b1cc90 Merge branch 'master' into asr/spec-v1 2020-09-30 09:19:12 -07:00
Aayush Rajasekaran
a4e7117429 Add lotus shed util to validate a tipset 2020-09-30 01:29:04 -04:00
Łukasz Magiera
91d04ede0f
Merge pull request #4051 from filecoin-project/chore/final-dealstat-version
Chore/final dealstat version
2020-09-29 19:39:16 +02:00
Łukasz Magiera
867ca2f25d
Merge pull request #3434 from filecoin-project/feat/shed-import-object-cmd
add a command to import an ipld object into the chainstore
2020-09-29 15:02:31 +02:00
Aayush Rajasekaran
be9d23b329 Centralize some params in builtin 2020-09-29 02:25:43 -04:00
Peter Rabbitson
be5dc2c57f Walk back 10 epochs for stat generation 2020-09-27 20:45:45 +02:00
Peter Rabbitson
e4c1f090af Disable exclusion of miner-associated addresses 2020-09-27 20:44:50 +02:00
Peter Rabbitson
fb3bcc4ce5 Add startup warning 2020-09-26 21:49:05 +02:00
Peter Rabbitson
1483f1e59a Add filtering of addresses associated with miners 2020-09-26 21:45:34 +02:00
Peter Rabbitson
10cdbadd82 Arrange json as the frontend expects it 2020-09-26 21:44:40 +02:00
Peter Rabbitson
8955b8d8a7 Centralize filtering, output wallet addresses 2020-09-26 21:44:36 +02:00
Łukasz Magiera
ef28ebb14a Ignition upgrades, much excite. 2020-09-25 23:55:37 -07:00
whyrusleeping
4eaa05db52 add some more big pictures stats to stateroot stat 2020-09-24 09:40:49 -07:00
Łukasz Magiera
f4f5ef6f83
Merge pull request #3963 from filecoin-project/feat/dealstats
Add basic deal stats api server for spacerace slingshot
2020-09-23 22:17:03 +02:00
Łukasz Magiera
a1281273bc shed dealtracker: fix lint, env var filter 2020-09-23 22:10:02 +02:00
Aayush Rajasekaran
476e7992e8 Add an error return to all actor state interface methods 2020-09-23 01:51:38 -04:00
whyrusleeping
88ada66280 finish up the total bytes endpoint 2020-09-22 13:31:01 -05:00
whyrusleeping
3cf2fd595f fix appending to array 2020-09-22 13:27:58 -05:00
whyrusleeping
3153ab9ae3 allow graceful shutdown 2020-09-22 13:24:49 -05:00
Steven Allen
c91774be3b remove old comment 2020-09-22 11:19:28 -07:00
whyrusleeping
f96698b54d finish up other endpoints 2020-09-22 12:54:39 -05:00
whyrusleeping
9b91628d85 begin adding simple api server for deal stats 2020-09-22 11:05:12 -05:00
Steven Allen
3f0106cfe5 migrate lotus-shed/genesis-verify to actor abstraction 2020-09-21 15:18:30 -07:00
Steven Allen
4bab784e40 migrate lotus-shed verifreg to specs-actors abstractions 2020-09-21 15:04:39 -07:00
Steven Allen
916421b247 convert lotus-shed balances 2020-09-21 13:43:47 -07:00
Łukasz Magiera
f7934b083c Merge remote-tracking branch 'origin/master' into refactor/net-upgrade 2020-09-21 19:10:18 +02:00
Travis Person
b3d0a5fb4a lotus-shed: add consensus check command 2020-09-20 20:26:20 +00:00
Łukasz Magiera
70faa36b7f Merge remote-tracking branch 'origin/master' into refactor/net-upgrade 2020-09-18 19:29:06 +02:00
Travis Person
ac7007d1d0 lotus-shed: add jwt token command 2020-09-18 04:05:03 +00:00
Travis Person
db2a20da6c lotus-shed: add keyinfo verify 2020-09-18 03:59:00 +00:00
Łukasz Magiera
26bbd9fb9d wdpost: append is hard 2020-09-18 03:00:31 +02:00
Łukasz Magiera
57c1eac37a gofmt 2020-09-18 02:40:01 +02:00
Łukasz Magiera
dcc5643473 shed: Even more bitfield utils 2020-09-18 02:38:30 +02:00
Łukasz Magiera
b85b50afbc shed: bitfield intersect command 2020-09-17 20:37:35 +02:00
Aayush Rajasekaran
90853e24cf Add a boolean HasMinPower to return of GetPower 2020-09-16 01:47:24 -04:00
whyrusleeping
6670d22fb5 add command to (slowly) prune lotus chain datastore 2020-09-15 20:20:48 -07:00
Steven Allen
cc4d5306eb Progress 2020-09-14 15:43:12 -07:00
Steven Allen
02dcb5e182 Merge branch 'master' into refactor/net-upgrade 2020-09-14 14:53:57 -07:00
Steven Allen
9804310cc8 Update specs-actors to 0.9.10
Moves the Keyer type (and helpers) into go-state-types.
2020-09-14 14:32:57 -07:00
Łukasz Magiera
06ec571c20 Merge remote-tracking branch 'origin/master' into refactor/net-upgrade 2020-09-14 15:09:52 +02:00
Steven Allen
d3594835c4 [WIP] Network upgrade support
This patch starts adding support for network upgrades.

* It adds an actors abstraction layer for loading abstract (cross-version) actors.
* It starts switching over to a shared deadline type.
* It adds an abstraction for ADTs (hamt/amt).
* It removes the callback-based API in the StateManager (difficult to abstract
across actor versions).
* It _does not_ actually add support for actors v2. We can do that in a followup
patch but that should be relatively easy.

This patch is heavily WIP and does not compile. Feel free to push changes
directly to this branch.

Notes:

* State tree access now needs a network version, because the HAMT type will change.
* I haven't figured out a nice way to abstract over changes to the _message_
types. However, many of them will be type aliased to actors v0 in actors v2 so
we can likely continue using the v0 versions (or use the v2 versions
everywhere). I've been renaming imports to `v0*` to make it clear that we're
importing types from a _specific_ actors version.

TODO:

* Consider merging incremental improvements? We'd have to get this compiling
again first but we could merge in the new abstractions, and slowly switch over.
* Finish migrating to the new abstractions.
* Remove all actor state types from the public API. See `miner.State.Info()` for
the planned approach here.
* Fix the tests. This is likely going to be a massive pain.
2020-09-11 20:16:29 -07:00
Łukasz Magiera
aeb3437a9f lint, docsgen 2020-09-11 10:55:10 +02:00
whyrusleeping
0e3dd3cb3b Add faster and slimmer option to chain export via lotus-shed 2020-09-10 17:28:25 -07:00
whyrusleeping
c73916b4e7 fix the linter 2020-09-09 17:37:49 -07:00
whyrusleeping
0361ca1c39 add some bits about windowed post 2020-09-09 17:18:55 -07:00
whyrusleeping
09194aa613 print better error when losing connection 2020-09-09 15:19:54 -07:00
whyrusleeping
e58327d4ed rename LE tag to quantile 2020-09-09 15:19:54 -07:00
whyrusleeping
8414aa6e4b more metrics! 2020-09-09 15:19:54 -07:00
whyrusleeping
7d1d690eb7 lets get some metrics 2020-09-09 15:19:54 -07:00
whyrusleeping
47ad7ccb5f some more stats 2020-09-09 15:19:54 -07:00
whyrusleeping
679c4183e7 add a simple command to watch messages sitting in the mempool 2020-09-09 15:19:53 -07:00
whyrusleeping
26ec0716b9 fix lint errors 2020-09-07 16:12:44 -07:00
whyrusleeping
97af576f6a Implement faucet funds reallocation logic
use all committed sectors instead of power

give all miners who had at least a sector on friday a base amount

include genesis miner in redistribution

drop back to 1,000,000
2020-09-07 16:06:13 -07:00
Aayush Rajasekaran
d678fe4bfa Fix tests 2020-09-07 15:48:42 -04:00
Aayush Rajasekaran
39755a294a Update to specs v0.9.6 2020-09-07 15:48:41 -04:00
Travis Person
eebd2efcbf lotus-shed: add math command 2020-09-05 00:50:56 +00:00
Łukasz Magiera
f90cfda2e6 wallet: Add interface layer 2020-09-04 22:18:03 +02:00
whyrusleeping
cac848c106 add a command to import an ipld object into the chainstore 2020-08-31 14:24:23 -07:00
whyrusleeping
90337995ff print out genesis cid 2020-08-24 22:48:48 +02:00
whyrusleeping
aa2cad1a66 small usability tweak, fix lint 2020-08-24 22:48:47 +02:00
whyrusleeping
4f6dc0748d print out genesis block accounts 2020-08-24 22:48:11 +02:00
whyrusleeping
6b8191121c add lotus-shed command to verify some stuff about the genesis car 2020-08-24 22:48:11 +02:00
Steven Allen
5733c71c50 Lint everything
We were ignoring quite a few error cases, and had one case where we weren't
actually updating state where we wanted to. Unfortunately, if the linter doesn't
pass, nobody has any reason to actually check lint failures in CI.

There are three remaining XXXs marked in the code for lint.
2020-08-20 20:46:36 -07:00
Łukasz Magiera
ed098390cb
Merge pull request #3172 from filecoin-project/feat/lotus-shed-jwt
lotus-shed: add simple jwt creation support
2020-08-19 23:32:01 +02:00
Travis Person
f1632376e7 lotus-shed: add simple jwt creation support 2020-08-19 19:21:36 +00:00
Łukasz Magiera
12f7e2d9bf Use a struct for send metadata in MpoolPushMessage 2020-08-12 22:17:29 +02:00
Łukasz Magiera
6fe743f3a9 Fix tests 2020-08-12 20:03:07 +02:00
Jakub Sztandera
b309e80e41
Wire in Ticket Quality to MpoolSelect
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-11 16:14:27 +02:00
Jakub Sztandera
ab08858b45
Delete GasPrice from this world
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-06 23:08:42 +02:00
vyzo
6f660f7915 repair references to defunct miner.SelectMessages 2020-08-06 10:46:48 +03:00
Jakub Sztandera
81a65fe1bc
Swich gas-price to 0 in many places
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-01 16:23:13 +02:00
whyrusleeping
0e78db3b8c print out selected messages in mpool shed cmd 2020-07-31 01:50:25 -04:00
whyrusleeping
7fa4cd33f0 WIP: retrieval pieces inspection command 2020-07-31 01:33:30 -04:00
Aayush Rajasekaran
b51e2a868b
Merge branch 'next' into feat/cid-builder 2020-07-28 21:02:30 -04:00
Steven Allen
b7a4dbb07f Support inline CIDs
And use the new CidBuilder from the spec actors.

This patch does not switch over to inline CIDs by default, but paves the way.
2020-07-23 23:12:32 -07:00
whyrusleeping
e85dfc7499 add command to print state size statistics of actors 2020-07-23 15:32:28 -07:00
Steven Allen
5fc83f4d05 Refactor to use actor adt types instead of directly using HAMTs and AMTs
This way there's a single source of truth. Preparation for fixing
https://github.com/filecoin-project/specs-actors/issues/517 (requires changing
HAMT parameters).
2020-07-23 09:34:57 -07:00
Frank
c38b8b1265 close file 2020-07-23 18:21:13 +08:00
whyrusleeping
c4462ab63e add some useful tools 2020-07-22 10:14:45 -07:00
Jakub Sztandera
7da629d03b
Update gas prices
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-20 21:31:05 +02:00
Jakub Sztandera
7b14d445b4
Update message gas limits
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-15 20:01:57 +02:00
Łukasz Magiera
8ce35e30dd Merge remote-tracking branch 'origin/master' into next 2020-07-10 21:50:38 +02:00
Łukasz Magiera
b245fd0b7d
Merge pull request #2232 from filecoin-project/feat/verifreg-bitwidth
set proper bitwidth for verifreg command hamts
2020-07-10 16:19:45 +02:00
Hannah Howard
fe73c9fb71
Merge pull request #2240 from filecoin-project/feat/api-verif-cap
StateAPI for Verified Data Cap
2020-07-08 01:02:18 -07:00
whyrusleeping
0285a9741c remove debug logs 2020-07-07 16:44:57 -07:00
Dirk McCormick
c86e864d55 fix: use nil return from StateVerifiedClientStatus for not-found 2020-07-07 09:59:14 -04:00
Dirk McCormick
0c8e6b822c fix: better error message for not found verfied client 2020-07-06 12:56:54 -04:00
Travis Person
d3a007fd0a lotus-shed: fix secp256k1 2020-07-03 19:03:02 +00:00
Dirk McCormick
2c7aa318c1 feat: state API for verified client data cap 2020-07-02 12:10:11 -04:00
whyrusleeping
5fa3021a79 set proper bitwidth for verifreg command hamts 2020-07-01 17:29:11 -07:00
Travis Person
12f10ac414 lotus-shed: organize peer key generate and other key commands under keyinfo 2020-06-29 20:07:39 +00:00
Łukasz Magiera
907364ce67 Update deps, fix more tests 2020-06-15 18:30:49 +02:00
Łukasz Magiera
3b13397165 gofmt 2020-06-06 00:59:01 +02:00
Łukasz Magiera
163c2b2544 Merge remote-tracking branch 'origin/master' into next 2020-06-06 00:58:24 +02:00
laser
4855045ea2 pass context to paramfetch.GetParams
Fixes #1209
2020-06-05 10:28:00 -07:00
Łukasz Magiera
5aafa91e22
Merge pull request #1898 from filecoin-project/deps/update
Update CLI lib
2020-06-04 23:45:39 +02:00
Łukasz Magiera
f9f0d86ddf
Merge pull request #1913 from acruikshank/feat/1853-confirmations-in-StateWaitMsg2
Add confidence and timeout to message wait
2020-06-04 23:23:15 +02:00
Jakub Sztandera
29dbc26dbd
Update cli
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-04 01:01:41 +02:00
acruikshank
04f0130530 remove timeout 2020-06-03 17:42:06 -04:00
acruikshank
5574e4f11b add confidence and timeout to message wait 2020-06-03 15:38:37 -04:00
Łukasz Magiera
c73326e96d fsrepo: Use LevelDB for metadata datastore 2020-06-01 20:13:07 +02:00
Łukasz Magiera
7003960fdd Merge remote-tracking branch 'origin/master' into next 2020-06-01 18:52:06 +02:00
Jeromy
2a3d79f055 add commands to check individual balances for verifiers and clients 2020-05-29 14:47:17 -07:00
Jeromy
9c020e54b5 Add more verifreg commands to list verifiers and clients 2020-05-28 17:01:01 -07:00
Jeromy
9811375d18 add some commands for interacting with verified registry actor to lotus-shed 2020-05-28 17:01:00 -07:00
Jakub Sztandera
d6615b6286
Cleanup many lint warnings
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-05-27 22:53:20 +02:00
Jeromy
646800b8a8 update to latest ffi 2020-05-22 09:26:14 -07:00
Jeromy
6e024d9994 parse ticket and seal randomness flags 2020-05-21 08:26:32 -07:00
Jeromy
92e5cc5ad7 add args usage 2020-05-20 15:28:19 -07:00
Jeromy
f82e0e61e1 put a command for verifying seals into the shed 2020-05-20 10:10:35 -07:00
Jeromy
3a3e390e90 add method to decode and print all bitfield entries to lotus shed 2020-05-12 14:22:21 -07:00
Travis Person
14bbbe4feb Add param fetch to lotus-shed 2020-05-07 05:20:17 +00:00
hannahhoward
a9866c757e feat(deps): update go-fil-markets
Update to latest 0.2.0 release of go-fil-markets with less-blocking node io
2020-05-04 18:36:51 -07:00
Łukasz Magiera
89b19af43f specs-actors v0.3 2020-04-29 20:06:05 +02:00
Łukasz Magiera
6014530145 shed bitfield: use Count to check for overflows 2020-04-28 21:36:58 +02:00
Łukasz Magiera
4579e9bb84 shed: add some bitfield tools 2020-04-28 10:44:10 +02:00
Jeromy
3962194fad parse input as hex 2020-04-17 17:09:09 -07:00
Aayush Rajasekaran
c0204cdd83 Add a shed command to turn raw commPs into CIDs 2020-04-15 14:01:00 -04:00
Łukasz Magiera
acfb7cee07 shed: import-car for state debugging 2020-04-02 05:28:35 +02:00
Travis Person
838a50be39 Increase low gas limits everywhere to 10000 2020-03-27 03:24:35 +00:00
whyrusleeping
ddf1beac6c change gas limit to be a normal int64 2020-03-18 13:45:37 -07:00
Łukasz Magiera
47e3b5b902 shed: make non-auto nonce-fix safer 2020-03-10 02:11:07 +01:00
Łukasz Magiera
9daaaa3ec2 shed: corect start nonce in nc-fix 2020-03-10 01:28:59 +01:00
Łukasz Magiera
e396454138 shed: auto mode for nonce-fix 2020-03-10 01:26:10 +01:00
Travis Person
1a31571493 lotu-shed: add stateroot stats command 2020-03-07 00:55:11 +00:00
whyrusleeping
16096e2c71 some go vet fixes 2020-03-05 22:46:07 -08:00
Travis Person
bc15d5234e lotus-shed: add back support for bls and secp after sig changes 2020-02-11 01:04:50 +00:00
whyrusleeping
19a65319ee test and fix fork, add bigint parsing to lotus shed 2020-01-30 18:14:20 -08:00
Jakub Sztandera
1ed62628a7
Update go-log to v2
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-01-08 20:22:31 +01:00
whyrusleeping
62db7a6dda fix build 2020-01-07 21:10:43 -08:00
hannahhoward
8418464d91 refactor(address): use extracted address library
Switch to using extracted address library
2020-01-07 14:53:27 +01:00
Jakub Sztandera
0eb7991bbd
Fix version check
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-12-17 16:26:16 +01:00
Łukasz Magiera
11d11c88ae
Revert "Refactor versions" 2019-12-17 16:16:57 +01:00
Jakub Sztandera
17d0fe96a4
Fix version references
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-12-17 00:44:56 +01:00
Jakub Sztandera
9907f7b7fb
Add script for fixing nocne
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-12-13 15:47:21 +01:00
Travis Person
8d42ca4933 A place for all the lotus tools 2019-12-09 16:09:23 +01:00