* feature: introduce /load endpoint for self-reported quantised NymNode load
* return Load::Unknown for value of 0 because it means we misread some data
* add additional filtering on 'en...' endpoints
* make packet statistics wasm-compatible
* fixed possible overflow issue in delay controller
* updated wasm-client to be compatible with the current network
* applied same logic to mixfetch client
* removed dead imports
* updated versions
* removed mnemonic from gateway config struct
scaffolding for common mixnet listener
running verloc unconditionally in a nym-node
remove filtering by mixnode
extracted verloc to separate crate
integrated nym-node-http-server more tightly with the binary
most logic for handling forward packets
running all mixnode-related tasks natively inside nymnode
removed gateway storage trait in favour of the only concrete implementation
most logic for handling final hop packets
using nym-node owned socket listener for gateways
utility for sending plain message through mixnet + gateway fix
using common packet forwarding in both modes
nifying nym-node metrics
reproduce behaviour of the console logger
cleaned up cli args
redesigned gateway tasks startup procedure
removing dead code
scaffolding for old config v6
config migration
implemented MixnetMetricsCleaner
* clippy
* require entry/exit for wireguard
* removed dead code in migration code
* updated config template
* use custom user agent for verloc queries
* fixed premature shutdown of gateway tasks
* hidden nym-api flag to allow illegal node ips
* experiment: final hop handing with wireguard
* added additional startup logs
* typo
* fixed legacy stats endpoint data
* additional logs
* apply review comments
* fixed local testnet manager
* add stats_reporting_config in config and env var
* fix serializazion issue
* remove duplicate stats reporting config
* cargo toml cleanup
* more cleanup
* draft of wasm sdk for stats reporting
* fix wasm sdk?
* again
* make stats sending possible from outside the sdk
* make sure stats_id from client and gateway reported ared different
* draft of client data collection
* refactor gateway stats collection to fit client stats collection in same common crate
* moved client stats event and reporter to common crate
* basic os reporting
* add stats reporting address in sdk
* integrate stats scaffolding changes
* remove tokio spawn to potentially accomodate wasm32
* fmt
* fix typo
* add client_stats_id
* unify stats reporting
* avoid shutdown handle drop
* add client_type to stats reporting
* better way to build statsReportingconfig
* disarm shutdown on sink
* remove sink reporter and env dev-dependency
* cherrypick from jon/send-packet-stats
* uncoditionally start controller + licensing
* improve ClientStatsReport serialization
* better time handling
* reintroduce proper local reporting
* Let task wait for shutdown when exiting
* Log tweak
---------
Co-authored-by: jmwample <jmwample@users.noreply.github.com>
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* add session type based on ecash ticket collection
* avoid setting session type if already set
* change duration type to duration
* add a cap for finished sessions
* add stats model
* add stats collection
* add stats route
* propagate stuff and run stuff
* cargo stuff
* sqlx unused what?
* add sessions started stat
* session durations in miliseconds
* apply Jon's comments
* [Product Data] Second step in gateway usage data collection (#4964)
* turn stats collection into event based
* move events into a common crate for future use elsewhere
* apply Jon's comments
* Remove nym-network-statistics from workspace
* Remove nym-network-statistics
* Cargo.lock
* Update ci workflow
* Remove code that refers to removed nym-network-statistics
* Remove more
* Remove nym-statistics-common
* Delete commented out modules
* Remove commented out code
* Remove more commented out code
* Remove more commented out stuff
* Remove unused function
globally updated sqlx to 0.6.3
wip
basic processing loop
wip
starting on modules
all of the requesting logic, catching up, etc
remaining work includes persisting the data
wip
persisting block data
initial and extremely basic nyxd block scraper
* Squashing all the changes
initial router
started expanding the API
initial empty openapi/swagger
populated build-info endpoint
wip: populating rest of swagger
missing swagger data + using closure capture for immutable state
running the api as a proper task in gateway 'run'
fixing some version/feature clashes
refactored routes structures
initial host information endpoint
expanded on gateway-related endpoints
signing host information
moved all models to separate crate
unified http api client
routes unification + node api client
new generic cache and refresher
nym-api caching node self described information
removed old cache type
temporarily wired up NymContractCache to NodeDescriptionProvider
caching self reported host info
clients using self-described gateway information
fixed request timeouts for wasm
fixed wasm builds
post rebase fixes
cargo fmt
brought in wg routes into nym-node router
added ErrorResponse for wireguard routes
basic swagger support for wg endpoints
turns out swagger can be happy with strongly typed requests
output type support for wg routes
using concrete error type for nym node request error
fixed the registration test
landing page configurability
increased configurability
fixed build and lints of other crates
added default user-agent to http-api-client
reduced severity of gateway details lookup failure
changed default http port from 80 to 8080
nym-api using new default port for queries
added health endpoint
nym-api trying multiple ports for the client
using camelcase for node status
corrected health endpoint description
restored and revamped 'force_tls' flag to filter all gateways that support the wss protocol
fixed 'pub_key' path param in open api schema
derived Debug on 'NymNodeDescription'
ensuring valid public ips
added init and run flags to set hostname and public ips
fixed listening address being pushed to public ip
fixed the positional local flag
logging remote ip address of the request
updated helper function to query for described gateways
enabled tls in gateway client
removed hack-opts from mix fetch
additional changes after rebasing against origin/develop
* clippy
* wasm-related target locking
* more clippy, but this time in tests
* ability to specify custom TopologyProvider in TopologyRefresher
* topology provider builder method for base client
* ability to take manual control over topology
* wasm fixes
* added topology injection to nym-sdk API
* added examples to nym-sdk and exposed additional helper methods
* Compiles but runtime time fails
* wip
* Beginning of clean-up - creation of config to keep things together
* Removed unused module
* Removed hardcoded constants
* Easier way of sending binary messages
* WIP cleanup before machine switch
* Upgrade wasm-bindgen to 0.2.83
* Fixed compilation warnings for wasm client
* all clients compiling without warnings
* disabling topology refresh in wasm
* Added a config option to disable loop cover traffic stream
* config changes
* Make webassembly work in a web worker
- `wasm-timer` modified to work in web worker
- add worker target to webpack
- add client to call from HTML
- update README to build WASM for bundling (this does not build ES modules)
* Restored topology refreshing
* correctly polling items in the wasm delay_queue
* Allow client to read up to 8 messages at once from gateway connection (#1669)
* Allow client to read up to 8 messages at once from gateway connection
* Importing tokio::select in wasm32 target
* Updated changelog
* missing imports
* Introduced disable_main_poisson_packet_distribution to force real_traffic_stream to disable poisson sending (#1664)
* Introduced disable_main_poisson_packet_distribution to force real_traffic_stream to disable poisson sending
* Updated changelog
* Adjusting default settings
* Introduced a client-configurable option to force it to use extended packet size
* local adjustments
* Removed warning associated with receiving extended packets
* Minimal v2-required changes
* Updated changelog
* explicitly allowing clippy drop_non_drop
Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
* Clients use env
* Explorer api uses env
* Mainnet and qa env files
* Set CONFIGURED on the mainnet defaulting
* Gateway uses env
* Mixnode uses env
* Wallet error simplification
* Network requester takes only mainnet client address
* Validator api uses env
* Mixnet contract uses denom from instantiate
* Vesting contract uses denom from instantiate
* More contract test refactoring
* Coconut bandwidth contract uses denom from instantiate
* Bandwidth claim contract uses denom from instantiate and remove from Cargos
* More remove from Cargos and one missed DEFAULT_NETWORK
* Refactor some other missed places
* Minor fixes
* Test and clippy fixes
* Update CHANGELOG
* Make gateway mnemonic optional
* Remove unnecessary timer struct
* Prepare for code reuse
* Use trait for stats collector
* Put trait definition in common crate
* Gateway stats runner
* Custom statistics url arg
* Build & send stats req to url
* Storage support for new stats type
* Make gateway stats opt in
* Test&clippy fixes
* CHANGELOG update
* Replace client address with service address
* Copy over the server parts of the statistics server
* Separate API in module
* Rename struct
* Add insertion endpoint
* Remove unused code from network requester
* Box big rocket error
* Remove the feature-specific code
* Construct http req
* Clippy + Cargo.lock update
* Re-added needed sqlx feature
* Wrap http req in ordered msg
* Add http headers
* Move common api functionality into the separate crate
* Make stats server address configurable, especially for testing
* Update changelog
* Fix clippy
* Help command update