6 Commits

Author SHA1 Message Date
Alan Szepieniec
67962a5d12 chore: Upgrade to neptune-core v0.3.0 2025-08-05 22:29:11 +02:00
danda
8a79c578c2 refactor: implement rpc authentication
closes #8

neptune-core RPC methods now require an authentication token.

This implements auth support in neptune-explorer.
2025-01-22 21:00:11 -08:00
danda
ebcfdb947c feat: display if block in canonical chain or not
Adds a 'Canonical' field to the /block page.

note: this requires updating neptune-core in order to obtain the field
from neptune-core's /block_info rpc endpoint.

it was also necessary to change 'use neptune_core::<x>" statements to
'use neptune_cash::<x>'
2024-12-18 12:15:38 +08:00
danda
c2fe657e04 perf: replace RwLock with ArcSwap
ArcSwap is lock-free and optimized for our use-case of lots of
concurrent reads and infrequent updates.

So it is pretty close to a shared-nothing architecture.

Some small changes were necessary, but its mostly a drop-in
replacement for RwLock.
2024-05-27 17:24:01 -07:00
danda
71cf752b41 feat: add neptune-core rpc connection watchdog
closes #1

Implements a background watchdog task that:
1. calls neptune-core /network rpc every N seconds (default: 10)
2. emits log message on any state change
3. sends detailed email alert to admin on any state change

Changes:
* AppState now has internal Arc<RwLock<AppStateInner>> to permit
  watchdog task to mutate the rpc_client field.
* adjust application to AppState changes (use locks)
* not_found functions no longer accept state arg
* move state initialization into AppState::init()
* add optional alert parameters: admin-email, smtp-*
* add neptune_rpc module with watchdog task
* add alert_email module
* simplify main()
* log warnings if alert parameters not set
* add chrono dep
* add lettre dep
2024-05-25 19:16:36 -07:00
danda
7fa11f3ec2 refactor: break main.rs into separate files 2024-05-22 17:18:50 -07:00