8 Commits

Author SHA1 Message Date
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
e4fda1a806 refactor: add anyhow, remove unwrap/expect
converts unwrap and expect calls in main.rs into anyhow .with_context()
calls to provide better error messages
2024-05-22 19:39:46 -07:00
danda
29834dbe50 feat: get rid of all javascript
implements a generic solution to redirect query strings generated by
forms to path based URIs that can be handled by existing routes.

This eliminates the need for javascript that was doing the equivalent
client-side.
2024-05-22 17:18:51 -07:00
danda
ac27329bda chore: update to neptune-core tip
adapts to some changes in neptune-core.

BlockInfo and BlockSelector location changed.
2024-05-22 17:18:50 -07:00
danda
7fa11f3ec2 refactor: break main.rs into separate files 2024-05-22 17:18:50 -07:00
danda
4509b1f9a6 feat: add boilerplate templates, utxo page 2024-05-22 17:18:50 -07:00
danda
951758902a initial commit of neptune-explorer files 2024-05-22 17:18:46 -07:00