* always using port 443 for tls gateway connection
* bumping up rc version
* hack: additional hardcoded gateways
it disables topology refresh
* Add NPM packages to tool for bumping versions
* Bump RC versions of SDK packages
* Use manual gateway details
* Add progress to `publish.sh` script
* Add docs for WSS workaround
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* Remove unused Makefile target
* Split out ci-contracts-upload-binaries
* Remove the contracts from the main workflow
* Rename build-and-upload-binaries-ci
* Rename network-explorer name
* Rename network-explorer filename and check-merge-conflicts
* Rename three more workflows
* Rename sdk-publish
* Remove deprecated clippy-all
* Rename matrix includes json and delete one that is unused
* Typo in filename
* Delete nym-wallet-release.yml
* Rename two workflows to fit naming scheme
* ci-build name change
* Rename 3 more workflows to ci- names
* Rename wallet.yml and nym-wallet-nightly-build to reverse naming scheme
* Rename to ci-contracts.yml
* Delete nym-wallet webdriverio workflow
* Update some workflow names
* js error message
* Ability to explicitly disconnect mixfetch
* removed unused import
* added disconnect method directly to sdk package
* simplifying error throw
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
* added onunload event listener handler
* Using global instance of mixfetch to disconnect
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
* Bump RC versions
* MixFetch, move unload handler to creation and check for undefined `window`
* Bump RC version
* Force TLS on mixFetch demo
* Add info about working around mixed content errors for mixFetch
---------
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* Squashing commits
added forceTls argument to 'MixFetchOptsSimple'
made forceTls flag optional in mix fetch opts
whacking those moles
* GitHub Actions: install node
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* Bug fix `mixFetch` build
* Batch integration tests for mixFetch
* Bump RC version
* Tidy up READMEs
* Bump version to RC4 and fix up a few interfaces
* Bump version to RC5 and fix opts
* NodeJS SDK
* mixFetch usage example
* Update internal dev tester readme
* Add NodeJS packages to publish script
* Update lock file
* Upgrade `lerna`
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* changed NymConfigTemplate trait to call 'template' by reference
* network requester lib
* introduced generic parameter to 'MixTrafficController' to allow non-remote gateways
* allowing for custom gateway sender
* types cleanup
* minor gateway cmds refactor + initial NR work
* wip
* running a NR inside gateway
note: this NR isnt tied to the gateway yet
* rebase fixes
* propagating same shutdown handle
* wip
* starting NR with appropriate local transceiver
* fixed premature shutdown
* wiring up PacketRouter
* both ends wired together
* actually working
so much cleanup to do now
* started removing dead code
* wip
* temp: hardcode gateway
* further cleanup
* fixed build of other binaries
* setup-network-requester subcmd
* overriding NR config in gateway init/run
* wip making it wasm-compatible [again]
* refactored 'GatewaySetup'
* clippy and friends
* removed debug code
* rust 1.72 lints
* ensuring local gateway is available + some comments
* correctly putting network requester data in the same underlying details struct
* improved gateway errors
* changed 'network_requester_config' deserialization
* missing clap annotation for 'enabled' flag in 'setup-network-requester' command
* saving config file after 'setup-network-requester'
* removed dead code
* review comments
* make embedded NR wait for gateway to come online (for at most 70min)
* fixed shutdown on successful gateway wait
* updated NR config override
You can't specify profile in the manifest of a crate when it's part of a
workspace. Move the profile directives that cargo complains about to the
top-level workspace Cargo.toml
* wip
* wip
* Most channels are in place
* tidy
* Send data to tunnel
* wip: adding in boringtun
* Handle timers
* Add consume_wg
* Split into mod
* Reorder
* Comments
* Refine channel handling
* Sort out dependency conflict
* Move wireguard listener in gateway beind a feature flag
* wip
* post-cherry pick fixes
* wip
* wip
* using sqlite-based indexeddb shim
* running nymClient in worker thread
* improved received handling
* building node mix-fetch
* fixed mix fetch request constructor if args[1] == undefined
* fixed build target
* nodejs origin bypass
* mix fetch in node
but I dont think anyone should use it over normal client...
* target locking
* fixed post-rebasing issues
* Docs: post process output to fix paths so that many mdbooks can be served from sub-directories
* Prevent theme from being modified
* Upload docs to Vercel
* Post process docs
* Process local links
* Docs: only process `index.html` files from the root,
All other files have the correct relative paths to serve assets properly and link to files relatively.
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* gateway: disconnect inactive duplicate clients
* wip: see if we can switch to single ping at a time
* Finish reworking ping pong request flow
* Use workspace version of tokio
* Bundle active client channels into struct
* Fix typo
* Move the functionality to issue credentials from the credential binary and connect it with nym-cli
* finished CLI part, trying to fit SDK part
* finished Rust SDK
* fix: cleanup
* linting
* linting
* linting
* remove one layer of coconut in nym-cli
* linting
* Fixes based on PR comments
* formatting
* fixes based on PR comments
* formatting
* fixing clippy errors
* fixed post-rebasing issues and converted the lib into shared dep for other binaries
* removed credentials client in favour of moving the functionality to nym-cli
* removed redundant 'issue_credential' example (it did the same thing as 'bandwdith')
* removed credentials client from build server
* made the coconut cli also accept nym-api configs
* fixed support for socks5 and NR
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
This was originally a commit 'b0a45c03b16c74697d8b46428fd83a25a5168add'.
However, we had to manually reapply it due to accidentally messing up the branch history.
* network-requester: disable poisson process by default
* network-requester: instead add new top-level config field
* Remove quoation marks in template
* imported libp2p to monorepo
* fixed vanilla ping example
* added libp2p client to workspace
* naively replaced dockerised client with the sdk
* moved libp2p code to sdk examples
* reduced number of dependencies required for libp2p example
* updated readmes
* added protobuf compiler to build dependencies
* added protoc dependency to readme for chat and ping examples
---------
Co-authored-by: mfahampshire <maxhampshire@pm.me>
* Feature/ephemera compile (#3437)
* Include ephemera node code in repo
* Upgrade deps
* Bump minor version of cosmwasm-std
* Include ephemera in nym-api dep and downgrade rusqlite
* Fix clippy and ephemera docs code
* More clippy on ephemera
---------
Co-authored-by: Andrus Salumets <andrus@nymtech.net>
* Start ephemera components in nym-api (#3475)
* Start ephemera components in nym-api
* Pass nyxd client and use common metric structures
* Swap url endpoint with contract for sending rewarding messages
* Fix build after rebase
* Perform ephemera rewards computation before normal nym-api ones
* Remove contract mock from ephemera
* Take raw rewards from network monitor
* Remove ephemera old reward version
* Use nym shutdown procedure in ephemera
* Temporary fix for some warnings
* Umock contract membership of ephemera (#3574)
* Pass nyxd client to members provider
* Basic ephemera contract
* Add register peer tx
* Add query all peers
* Nyxd ephemera client
* Add registration of ephemera peer
* Replace epoch http api with actual contract
* Merge ephemera config into nym-api config
* Load cluster from contract
* Guard nym-outfox out of cosmwasm builds (#3650)
* Feature/fixes while testing (#3668)
* Commit local peer before querying contract
* Default to anyonline
* Remove string from template
* Fix avg computing
* Use updated qa env
* Fix clippy
* Add unit tests for ephemera contract
* Upload ephemera contract in CI
* Add group check for peer signup
* Peer registration unit test
* Start ephemera only on monitoring
* Remove old MixnodeToReward struct
* Move all ephemera config to its file
* Skip with serde ephemera config
* Fix default value in args
* Feature/add ephemera flag (#3727)
* Replace unwrap with error handling
* Add ephemera enable flag
* Fix template
* Add json schema to ephemera contract (#3735)
* Update lock files
* Update changelog
---------
Co-authored-by: Andrus Salumets <andrus@nymtech.net>
* wasm-compatible reqwest-based rpc client
* better constructors for the reqwest based client
* fixed usages of the client
* introduced /network/details endpoint to nym-api to return used network information (#3758)
* introduced /network/details endpoint to nym-api to return used network information
* introduced endpoints for nym contract information
* Validate nym address
* wip: check client_id match
* wip: now compiles
* Fix first set of tests
* Another set of fixed tests
* Fix rebase issues
* rustfmt
* register tests updated
* integration tests now working
* Remove commented out code and unused imports
* Tidy up
* Fix error
* Update schema
* Fix example
* Add assertion in test
* update nym-cli to be able to register names
* Remove left-over dbg
* additional logs in abci queries
* added serde aliases for deserialization of contract types using their old format
* installing rust toolchain during the schema CI
* making the workflow be executed on our custom runner
* checking for diff only in the schema directory
* WIP: initial work
* wupwup
* WIP: experiments
* Move topology provider and requests to own crate
* Make sure we use the new crate everywhere
* Sort Cargo.toml
* Extract out some functions in geo_aware_provider
* rustfmt
* Add CountryGroup type
* Assign unknown as well
* wipwip
* Add command line flag to socks5-client
* Use geo-aware mixnode selection in nym-connect when in medium mode
* rustfmt
* clippy
* Fix nym-connect build
* wasm fix
* Spelling
* removed sealed impl of serde for tx::Fee
* further upgraded cosmwasm to 1.3.0
* wip
* created schema for mixnet contract
* updated return type of 'GetBondedMixnodeDetailsByIdentity' query
* fixed imported version of serde_json_wasm
* updated return type of 'GetFamilyByHead' query
* updated return type of 'GetFamilyByLabel' query
* updated return type of 'GetFamilyMembersByHead' and 'GetFamilyMembersByLabel' queries
* fixed broken tests due to type changes
* added support for GetFamilyMembersByLabel and GetFamilyMembersByHead queries in 'mixnet_query_client'
* moved 'Account' and 'VestingContractError' to common crate
* created schema for vesting contract
* Added documentation for all query messages in the vesting contract
* improved mixnet contract schema by adding documentation to all query types
* feature-locking cw2 import
* created schema for the name service contract
* created schema for the service provider directory contract
* created schema for the coconut bandwidth contract
* created schema for the coconut dkg contract
* created schema for the coconut cw4 group contract
* created schema for the coconut cw3 multisig contract
* fixed missing import and adjusted makefile
* cargo fmt
* clippy
* adjusted contract CI to build with --lib flag
* missing --lib flag in the makefile
* updated lock files
* makefile for generating the schemas
* added github action to check for schema difference
* adding missing step to checkout the repo
* set up development process for docs
* set up development process for docs
* Add local installs for Typedoc on gitignore
* Add Typedoc comments on types.ts file
* add typedoc config file
* update types and add annotations
* Add updates on types file
* add examples + manage sort order for doc items
* update client methods with examples
* add description of NymMixnetClientOptions
* add description of NymMixnetClientOptions
* fix linting
---------
Co-authored-by: Lorexia <alexia.lorenza.martinel@protonmail.com>
* WIP: initial work
* wupwup
* WIP: experiments
* Move topology provider and requests to own crate
* Make sure we use the new crate everywhere
* Sort Cargo.toml
* Extract out some functions in geo_aware_provider
* rustfmt
* Add CountryGroup type
* Assign unknown as well
* wipwip
* Add command line flag to socks5-client
* Use geo-aware mixnode selection in nym-connect when in medium mode
* rustfmt
* clippy
* Fix nym-connect build
* wasm fix
* Spelling
* added a global flag to disable the printed out banner inside tty
* added a 'build-info' command to our binaries
* added binary name to BinaryBuildInformation
* clippy
* separated signing and nyxd-client features
* updated cosmrs to the most recent version
* using tendermint_rpc directly for the Client trait
* fixed rest of the codebase
* removed nyxd-client feature
* export more types
* clippy that seems to have been skipped in makefile
* Split fetching network-requesters from gateways
* Tidy names
* Select gateway independenty in frontend
* Fix threshold value
* Fix gateway type
* Fix naming for setGateway and setServiceProvider
* Unshadow variable
* Naming conventions
* Missing semicolon
* Explicit types in invoke calls
* Dedup random function
* Inline some functions
* Silence handlebars in log
* Emojis in healthcheck log statements
* Remove gateway from service provider type
* Remove unneeded type cast
* fix linting
* Remove gateway field from harbour master response type
---------
Co-authored-by: fmtabbara <fmtabbara@hotmail.co.uk>
* New TypeScript SDK example: Google Chrome
Example of a simple manifest v3 extension to load a Nym client within a
popup view.
* Firefox Extension example for Nym TypeScript SDK
* Fix typo
* Add basic install script
* fix up html files
* remove unnecessary background page
* bundle extensions with webpack
* use icons from shared assets
* ignore sdk index file
* import sdk lib
* create new build script for non-inline workers
* import workers and build as separate files using webpack
* update html titles
* create react app node tester example
* add readme file
* update readme for FF extension
* code formatting
---------
Co-authored-by: Nadim Kobeissi <nadim@symbolic.software>
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* create parcel example
* update plain html example
* move chat examples into own dir
* add examples to workspace
* update tsconfig path
* move webpack base to parent dir
* Add nonce state
* Update name-service types and make it build
* wip: convert tests
* Fixed all tests in names.rs
* Add TestName
* Move TestSetup to integration tests
* Tests in contract.rs done
* Move error mod to common crate
* All tests ported
* Update other crates in workspace
* rustfmt
* clippy
* Remove commented out code
* Shortcut for name.name
* create node tester package dir
* start building node tester package
* refactor code + build updates
* fix up types
* add more methods and fix up types
* use node tester sdk inside wallet
* fix frontend state
* Use Node 18 instead of 16
* Fix up dependencies and yarn workspace
* Fix lint error
* Try to fix up linting error
* Remove explorer linting and move it to the existing action
* Add wasm-pack build to linting GH Action
* change lerna to use workspaces and fix linting errors
* Fix up node versions in GitHub Actions and add wasm-pack
* fix build:lint target in sdk
* exclude all worker.js from eslint for sdk
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* Don't fully turn off background task when cover traffic is disabled
* Leave no_cover function alone
* Add methods on config struct instead of explicitly setting options
* Add medium toggle to network-requester run command
* clippy
* rustfmt
* Unused
* error handling + edge cases + types
* use bonded node id
* add UI and move feature to node-settings dir
* use error modal
* add type for postMessage arg
* add timeout for node test
* update storybook ci
* fix CI for typescript linting
* fix print node test results
* replace react-to-print lib with vanilla solution
* async print
* update wallet changelog
* Lock files
* Add flag to disable cover traffic
* Add flag to disable per hop delays
* Add flag to enable mixed size packets
* Add meta flag to set medium speed
* Special case zero averge hop delay to be exactly zero
* Extract out generate_hop_delays function
* Ability to disconnect and reconnect GatewayClient
* usage of ibid. inside NodeTester
* example
* wasm-compatible `wait_for_shutdown` (for the future)
* Initial version
* Add open_proxy request
* Start adding cli commands
* use commands
* Common response type
* json output
* Tidy
* Remove the All case
* Remove empty file
* Remove todo
* Add ping command
* Ping 4 times by default
* Logic for controlling number of loops
* Some print tweaks
* wip client core
* hashing shared key in persisted details
* native client using on-disk gateway details
* ibid for socks5
* ibid for NR
* nym sdk
* non-wasm fixes
* wasm
* missed cargo fmt
* fixed nym-connect build
* changed serialization of the key hash to be more human readable
* allowing some dead code
* fixed gateway details deserializtion
* removed needless borrow in wasm client
* removed deadcode
* exhaustive match on GatewaySetup after having loaded the keys
* wip: playing around
* WIP
* wip
* Add query request
* Create new example
* Restore control_requests example
* Remove ControlRequest::OpenProxy
* Remove Socks5RequestContent::OpenProxy
* Remove bunch of debug logging
* Remove more old leftovers
* Another few lines of leftovers to remove
* Disable logging in example
* Return error if incoming request if future version
* Serialization unit tests
* Network requester in example
* Cargo.lock
Can't think of a scenario where we don't want to close one at the same
time as the other, but let's be conservative and keep it a very low
number for now.
* create_payload and call from nym-cli
* Remove some commented out code
* wip
* Service announce now compiles
* Fix other compilation issues
* Move ServiceDetails into Service
* Move service_id inside Service type
* wip: start sorting out tests
* wip: sorting out testing
* wip: first announce test now works
* wip: more work on announce test
* Move nonce
* Add check for nonce
* Extract out some helpers to separate files
* reenable state::services tests
* wip: start going through the integration tests
* All integration tests reenabled
* Remove some unused stuff
* Iterate on integration tests
* More iteration on test setup
* Rename to test_setup.rs
* Add more tests specific to signing
* Tweak
* Another nonce test and reorg
* Rename to announce.rs and delete.rs
* Tidy
* Make some inner modules private
* Use IdentityKey alias
* Update nym-api contract cache
* Fix that nym-cli was asking for signing nonce from wrong contract
* Add sign comment to network-requester
* Uploaded updated service provider contract to qwerty
* Allow large enum variant
* lock files
* Remove dbg
* Move error.rs to service-provider common
* Update code for moving errors.rs to common crate
* Rename to SpContractError
* constants module not pub
* lock file
* rustfmt
* Move IdentityKey type to contract-common
* clippy
* Add nym-socks5-listener to main workspace
* add socks5-listener to CI build path trigger
* Using repr(u8) instead of repr(C) for ClientState enum
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* initial crate
* foomp
* Make it work for x86_64-linux-android
* remove unused stuff
* Add header
* another layer of hacks
* additional target os locking
* cleanup
* bootstrap android app
* android jni function
* instructions + xcode project
* update jni name
* add native socks5 class
* typo
* gitkeep android native lib path
* add native socks5 class
* add socks5 native lib in java
* add build script
* fix jni dependency declaration
* wip
* Update build.sh
* Move build.sh to new subdir
* rename to build-android.sh
* fix typo in FFI function name
* use a good SP
* wip not crashing state
* add android network permissions
* android_logging
* starting client on button in swift + safer ffi
* set tag for libnyms5 logs
* testing callbacks
* android: start socks5 process in a separated thread
* non-blocking client with callbacks
* Remove the old non-working logger
* Restore commented out functionality in socks5 client
* basic file write/load + possible android fix
* Fully working state (minus task manager)
* Remove unused function
* data persistence + cb with address
* Remove stray old MyClass file from the merge
* Make storage_dir and Option
* Fix char_p for android
* Android now works with the new branch
* Tidy up a little in the jni code
* Move android mod to seperate file
* jni wrap start/stop
* Add android build to Makefile
* android: add basic UI and start/stop actions
* typo
* add nym word
* dirty persistence restored
* dirty android fixes
* even dirtier workaround
* Move rust crate to sdk/lib
* Update cargo.toml
* Strip release binary
* Update lib name in android project
* Move ios project to nym-connect directory
* remove old gitignore file
* Move ios client one step deeper
* fixed xcode lib paths
* removed old tracked file
* move android app under new path
* a bit of cleanup
* hopefully fixing the CI issues (🤞)
* Update Makefile
* android: add better support for persistent state
* updating ios UI on ffi callbacks
* missing dead code
* Added toggle button (wip)
* swapped connect and disconnect methods around
* icon
* fixed android build
* reset button + reuse service provider
* disabling reset button
* android: run proxy in a worker as foreground service
* todo user cancel action
* android build script: add aarch64
* add stop action from notification
* add simple callbacks to the socks5 bridge
* pick a sp randomly
* pass stop cb to lib call
* add loading state support
* refactor(android): base connection state on callback calls
* android: add optimistic ui
* android: unique instance of libnym
* removing deadcode
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Co-authored-by: pierre <dommerc.pierre@gmail.com>
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* wip
* semi-hacky way of persisting wasm-client gateway config
a better way shall be introduced after config refactoring
* cargo fmt
* wasm client clippy
* removed artifacts from other branches
* socks5 inbound: stop reading when closing connection
* Wait for lane at select top-level
* Allow closing connection while waiting for lanes to clear
* Some tidy in inbound.rs
* Put chained future back inline in the select
* Remove commented out line
* Disable the read data branch on is_finished
wasm-opt has a known issue on Apple Silicon:
https://github.com/rustwasm/wasm-pack/issues/913
The workaround currently seems to be running wasm-opt locally instead of
defining it as part of the Rust package's build pipeline in Cargo.toml.
I hope this is okay!
* allow loading modal to display custom text
* use loading modal
* dont repeatedly reset delegation state
* show loading modal when loading + no other modal is open
* fix lint errors
* log any delegations errors
* fix typo
* refresh interval in delegations page
* added cargo config file to explicitly specify build target
* wip
* Config option to disable topology refreshing
* extracted common parsing code
* helper trait for working on wasm topology
* wasm topology parsing
* restored (slightly modified) old js-example
* wip
* Moved message preparation into a trait
* wip
* long-winded way of sending test packet
* standalone NymNodeTester
* finishing the test upon receiving all packets even if timeout wasnt reached
* initial round of cleanup
* sending multiple test packets in normal NymClient
* javascript-side cleanup
* starting mixnode test on btn click
* Improved NymNodeTester constructors
* improved error handling and constructors
* tester utils error handling
* further cleanup + using BTreeMap for NymTopology mixnodes
* handling missed errors
* splitting up 'test_node'
* split up and cleaned up generation of test result
* clippy + fixed example
* post rebase fixes
* another broken test
* prevent running multiple parallel tests
* cargo fmt
* Added nym- prefix to node tester utils
* reduced noise in CODEOWNERS
* Add @octol to codeowners
* added @mfahampshire as owner of /documentation
---------
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* basic contract work for 'decrease_pledge' functionality
note: it doesn't yet return tokens back to the operator
* returning extra tokens after decreasing pledge
* added vesting message to track pledge decrease
* attaching the track message when processing delegation decrease
* checking for zero value request
* fixed event test
* allowing to decrease pledge from the vesting contract
* integration test for the feature
* reorganised the integration tests
* updated nyxd client traits
* wallet support
* typescript helpers
* moved 'pledge more' functionality to operator commands
* cli commands for decreasing pledge
* changed error variant to make clippy happier
* removed unused import
* eslint
* fixed post-rebase imports
* added cargo config
* added PendingMixNodeChanges to MixNodeDetails
* returning event id after creating it
* Streamlined getting mixnode details by identity key
* setting pending pledge changes on increase/decrease
* clearing the value on resolving the event
* checking for correct invariants when clearing events
* further pending events unit tests fixes
* new unit tests for tx endpoints
* queries for pending events (by id)
* migration code
* using default value for pending changes if unavailable
* improved integration test assertions
* Reduce logging of warnings associated with Poisson process throttling
* More granularity when logging about slow gateway
* Refine logging of elevated delay multiplier
* clippy
* Tweak output when printing address
* rustfmt
* Fix initial delay
Tidy the service provider directory contract after implementing query
methods on the validator-client.
- split out response types and use consistently
- query msg use "By" prefix
- pass address as String and validator
* Replace expect with error
* Move PersistentStorage in separate file
* Add in-memory cred manager
* Make wasm and mobile build
* Unify wasm and mobile cred storage
* Network defaults has mainnet default
* Add network_details to SDK
* Move BandwidthController in its own crate
* Move out credential into lib crate
* Remove nyxd arg in credential binary
* Use acquire cred in sdk
* Add example file, in sandbox
* Mobile lock file
* Update changelog
* Clearer builder methods and more documentation for them
* Sign only amount, without denom
* Toggle credentials mode on when enabled
* POC measurement
* parent ce76790761
author durch <durch@users.noreply.github.com> 1680116778 +0200
committer durch <durch@users.noreply.github.com> 1680683399 +0200
Instrument packet processing
* Cleanup and format
* Feature gate tracing
* Add .gitkeep to wallet dist
* Squashed commit of the following:
commit 0b1b6947e8
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:28:28 2023 +0200
Replace mobile flag with target_os = android (#3278)
* Remove old lock file
* Start replacing mobile with android
* Regex replace all mobile with android
* Remove the mobile feature flag
* keep the cfg mobile in tauri
commit c79b2cfb78
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:27:38 2023 +0200
Service provider directory contract (#3220)
* first commit of service provider directory contract proof of concept
* *added config set on instantiation,
*removed greetQuery test function
* commit before mapping change
* *changed mapping of service to use client address instead of cosmos addr
* commit before mapping change
* added acl to delete()
* added test for acl in delete()
* changed whitelist<vec> to standrd_whitelist bool in Service struct
* removed old comments and commented out code
* rustfmt
* wup
* wup
* Older version of cw-multi-test that works with 1.0.0
* wip
* Remove .gitignore
* Basic tests for announce and query now works
* Restore tests for delete as well
* Consolidate tests
* Tidy
* fmt
* Start reworking test helpers
* Tidy tests
* More test work
* More test improvements
* More work on tests
* Tweaks
* Further tests
* rustfmt
* Add some comments
* Initial work on requiring deposit
* wip
* Work on updating tests for handling funds
* Start updating integration tests
* Integration tests updated
* merge test mods in state
* Address review comments
* Enable wasm-opt
* Unify Result type
* consistent amount in error type
* WIP: paging output
* IndexedMap working
* extract to config file
* WIP: middle of extracting out types
* Extract types
* wip
* Types now extracted out:
* Paged response type too
* rustfmt
* Start working on switching to cw Admin
* Complete switch to Admin
* Remove owner from announce msg
* remove unused imports
* Assert owner
* Extract out types to common crate
* Fix test compilation
* Add query by owner and nym address
* Move msg to common crate
* rustfmt
* tests for service id
* service storage tests
* state services tests
* function rename
* tidy
* Fix clippy warning
* User ServiceId instead and not u32
* Delete by nym address
* Emit explicit events
* Swap ToString for Display
* Move all storage keys to constants.rs
* clippy
* Test for deleting by name
* Tidy integration tests
* Remove to_string
* Some comments to tests
* Integration test for paging
* serde snake_csae for NymAddress and ServiceType
* Add migrate entry point
* Add query contract version
* A few more asserts for balance
* Make MigrateMsg a struct
---------
Co-authored-by: mx <maxhampshire@pm.me>
commit dd699bce9a
Merge: 5ce017ef3e6957e7a9
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 10:18:16 2023 +0100
Merge pull request #3235 from nymtech/feature/performance-active-set-selection
Feature/performance active set selection
commit 5ce017ef3d
Author: benedetta davico <46782255+benedettadavico@users.noreply.github.com>
Date: Wed Apr 5 10:57:45 2023 +0200
adding vesting tests (#3279)
commit 59c1ce2639
Merge: 4fb63d889276edfd56
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 09:50:53 2023 +0100
Merge pull request #3261 from nymtech/feature/refresh-allow-list
Feature/refresh allow list
commit 4fb63d8892
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Wed Apr 5 09:22:43 2023 +0100
Feature/vesting delegation amount query (#3229)
* moved queries and transactions out of contract.rs
* added queries for vesting delegation details
* nyxd_client support
commit 276edfd562
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:56:21 2023 +0100
clippy
commit 605f8fcde3
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:06:12 2023 +0100
updated and cleaned up tests
commit f0e4d1a7cf
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 14:01:36 2023 +0100
configurable stored lists locations
commit 055ec4bdd5
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:57:02 2023 +0100
updating stored allow list on file changes
commit 5761f9ac7f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:15:45 2023 +0100
file watcher
commit 32620fd55f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 17:47:12 2023 +0100
updating standard list in a timer
commit abb5cdbe06
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 16:43:58 2023 +0100
extracted domain and ipnet information to separate struct
commit e6957e7a99
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 11:25:43 2023 +0100
use combination of stake and performance for rewarded set selection
commit de2406a2c7
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 10:54:14 2023 +0100
Moved MixnodeWithPerformance to helpers
* Squashed commit of the following:
commit 0b1b6947e8
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:28:28 2023 +0200
Replace mobile flag with target_os = android (#3278)
* Remove old lock file
* Start replacing mobile with android
* Regex replace all mobile with android
* Remove the mobile feature flag
* keep the cfg mobile in tauri
commit c79b2cfb78
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:27:38 2023 +0200
Service provider directory contract (#3220)
* first commit of service provider directory contract proof of concept
* *added config set on instantiation,
*removed greetQuery test function
* commit before mapping change
* *changed mapping of service to use client address instead of cosmos addr
* commit before mapping change
* added acl to delete()
* added test for acl in delete()
* changed whitelist<vec> to standrd_whitelist bool in Service struct
* removed old comments and commented out code
* rustfmt
* wup
* wup
* Older version of cw-multi-test that works with 1.0.0
* wip
* Remove .gitignore
* Basic tests for announce and query now works
* Restore tests for delete as well
* Consolidate tests
* Tidy
* fmt
* Start reworking test helpers
* Tidy tests
* More test work
* More test improvements
* More work on tests
* Tweaks
* Further tests
* rustfmt
* Add some comments
* Initial work on requiring deposit
* wip
* Work on updating tests for handling funds
* Start updating integration tests
* Integration tests updated
* merge test mods in state
* Address review comments
* Enable wasm-opt
* Unify Result type
* consistent amount in error type
* WIP: paging output
* IndexedMap working
* extract to config file
* WIP: middle of extracting out types
* Extract types
* wip
* Types now extracted out:
* Paged response type too
* rustfmt
* Start working on switching to cw Admin
* Complete switch to Admin
* Remove owner from announce msg
* remove unused imports
* Assert owner
* Extract out types to common crate
* Fix test compilation
* Add query by owner and nym address
* Move msg to common crate
* rustfmt
* tests for service id
* service storage tests
* state services tests
* function rename
* tidy
* Fix clippy warning
* User ServiceId instead and not u32
* Delete by nym address
* Emit explicit events
* Swap ToString for Display
* Move all storage keys to constants.rs
* clippy
* Test for deleting by name
* Tidy integration tests
* Remove to_string
* Some comments to tests
* Integration test for paging
* serde snake_csae for NymAddress and ServiceType
* Add migrate entry point
* Add query contract version
* A few more asserts for balance
* Make MigrateMsg a struct
---------
Co-authored-by: mx <maxhampshire@pm.me>
commit dd699bce9a
Merge: 5ce017ef3e6957e7a9
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 10:18:16 2023 +0100
Merge pull request #3235 from nymtech/feature/performance-active-set-selection
Feature/performance active set selection
commit 5ce017ef3d
Author: benedetta davico <46782255+benedettadavico@users.noreply.github.com>
Date: Wed Apr 5 10:57:45 2023 +0200
adding vesting tests (#3279)
commit 59c1ce2639
Merge: 4fb63d889276edfd56
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 09:50:53 2023 +0100
Merge pull request #3261 from nymtech/feature/refresh-allow-list
Feature/refresh allow list
commit 4fb63d8892
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Wed Apr 5 09:22:43 2023 +0100
Feature/vesting delegation amount query (#3229)
* moved queries and transactions out of contract.rs
* added queries for vesting delegation details
* nyxd_client support
commit 276edfd562
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:56:21 2023 +0100
clippy
commit 605f8fcde3
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:06:12 2023 +0100
updated and cleaned up tests
commit f0e4d1a7cf
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 14:01:36 2023 +0100
configurable stored lists locations
commit 055ec4bdd5
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:57:02 2023 +0100
updating stored allow list on file changes
commit 5761f9ac7f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:15:45 2023 +0100
file watcher
commit 32620fd55f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 17:47:12 2023 +0100
updating standard list in a timer
commit abb5cdbe06
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 16:43:58 2023 +0100
extracted domain and ipnet information to separate struct
commit e6957e7a99
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 11:25:43 2023 +0100
use combination of stake and performance for rewarded set selection
commit de2406a2c7
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 10:54:14 2023 +0100
Moved MixnodeWithPerformance to helpers
* Remove old lock file
* Start replacing mobile with android
* Regex replace all mobile with android
* Remove the mobile feature flag
* keep the cfg mobile in tauri
* first commit of service provider directory contract proof of concept
* *added config set on instantiation,
*removed greetQuery test function
* commit before mapping change
* *changed mapping of service to use client address instead of cosmos addr
* commit before mapping change
* added acl to delete()
* added test for acl in delete()
* changed whitelist<vec> to standrd_whitelist bool in Service struct
* removed old comments and commented out code
* rustfmt
* wup
* wup
* Older version of cw-multi-test that works with 1.0.0
* wip
* Remove .gitignore
* Basic tests for announce and query now works
* Restore tests for delete as well
* Consolidate tests
* Tidy
* fmt
* Start reworking test helpers
* Tidy tests
* More test work
* More test improvements
* More work on tests
* Tweaks
* Further tests
* rustfmt
* Add some comments
* Initial work on requiring deposit
* wip
* Work on updating tests for handling funds
* Start updating integration tests
* Integration tests updated
* merge test mods in state
* Address review comments
* Enable wasm-opt
* Unify Result type
* consistent amount in error type
* WIP: paging output
* IndexedMap working
* extract to config file
* WIP: middle of extracting out types
* Extract types
* wip
* Types now extracted out:
* Paged response type too
* rustfmt
* Start working on switching to cw Admin
* Complete switch to Admin
* Remove owner from announce msg
* remove unused imports
* Assert owner
* Extract out types to common crate
* Fix test compilation
* Add query by owner and nym address
* Move msg to common crate
* rustfmt
* tests for service id
* service storage tests
* state services tests
* function rename
* tidy
* Fix clippy warning
* User ServiceId instead and not u32
* Delete by nym address
* Emit explicit events
* Swap ToString for Display
* Move all storage keys to constants.rs
* clippy
* Test for deleting by name
* Tidy integration tests
* Remove to_string
* Some comments to tests
* Integration test for paging
* serde snake_csae for NymAddress and ServiceType
* Add migrate entry point
* Add query contract version
* A few more asserts for balance
* Make MigrateMsg a struct
---------
Co-authored-by: mx <maxhampshire@pm.me>
* Use full socks5 config when setting client config
Also move socks5 setup sleep inside the sdk function
* SDK Socks5 Mixnet Client
* Remove NymClientConfig from sdk
* Update changelog
* Remove pub modifier
* Replace sleep with waiting on the control channel
* Add error on simple connect if socks5 configured
* Move client-core to common dir
* Factor out socks5-client in its own crate
* Possible sdk-socks5 integration
* Update changelog
* Remove socks5 client lib
* Rename crate to include nym- prefix
* Trim the socks5 wrapped message so that it's printable
* Fix intellij auto refactoring
* Post merge fixes
* renamed secp265k1 to secp256k1
* added optional 'explicit_signer_data' argument for sign method
* wip
* made client signer generic
which required to undertake an adventure into coconut bandwidth trait bounds...
* separate wrapper for TxSigner
* moves signing-related features to separate module
* fixed build of binaries from outside default workspace
* offline signing example
* fixed wallet build
* post rebasing formatting
* fixed bity integration build
* making clippy happier
* fixed post-rebase bip39 dependency version
* wip family creation signatures + cli
* nym-cli commands for creating families
* Changed family join signature inside the contract
* Generating family join permit via nym-cli
* ability to join families via nym-cli
* more strongly typed FamilyHead arguments
* initial work on removing redundant family signatures
* removed all redundant signatures from families in the mixnet contract
* moved up the call stack
* nym-cli family operations
* fixed family related unit tests
* family member kick
* removed family operations from the wallet
* clippy
* add gateway settings button
* remove unneeded mixnode type check
* add additional properties to gateway type
* update node settings nav options
* set up gateway update requests
* create gateway settings page
* use update gateway validation
* PR updates
* dont show playground on gateways
* set up gateway config update
* fix lint errors in wallet
* run cargo fmt
* Generalise MessageReceiver
* Generics all the way
* Generalise MessageReceiver
* Generics all the way
* Fix Cargo.lock
---------
Co-authored-by: benedettadavico <benedetta.davico@gmail.com>
* Reorder Makefile
* split out the fmt targets
* split cargo test
* Split up clippy targets
* Add commit
* Use env variable for no-mobile instead
* Extract out target generation to use function
* Remove commented out code
* Add comment
* Minor tidy
While developing the service-provider-directory contract I ran into
issues with the lock file being inconsistent for cosmwasm-std (1.0 vs
1.2) and was hidden due to ignoring the lock file
* Compare verified vks against current group instead of initial dealers
* Fix various dkg logs
* API auto-advance epoch even on corrupt states
* Use verified vks as ultimate truth for dealers
* Set initial dealers based of verified vk
* Extend register period even more
* Fix test
* Use shares from current epoch
* Save initial dealers only when triggering resharing
* Fix tests
* Backup the last InProgress state too
* Reset previous signers that are not initial dealers
* Add unit test for bug reproduction
* More verbose debug logging
* Handle edge case for coconut keypair removal
* Update dkg api test
* Remove dealings directly for each key
* Replacement data is saved only on the first reshare start
* More debug logging
* On failed DKG, just reset
* Clippy fix
* updated bip39 dependency to simplify our zeroize story
* Replaced UserPassword wrapper with Zeroizing type alias
* fixed wallet-types cosmwasm-std dependency version
* additional unfiltered endpoints for nym-api
* add poor performance UI
* display appropriate UI when node is blacklisted
* update explorer api with blacklisted nodes
* add new unfiltered endpoint
add new unfiltered endpoint
* show blacklisted detail even when node description is unavailable
remove console.log
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
- Explorer - Fix sorting function on Stake Saturation. It is currently working per page and not globally ([#3320])
- Poisson process gets stuck at too slow rate. Rework to more aggressively up-regulate ([#3309])
- decrease the logging level of warnings associated with clients dropping packets due to gateway being overloaded (I'd say reduce it to debug/trace) - there are few sources of those, e.g. in real and cover traffic streams ([#3299])
- Make the buffer size in `AvailableReader` depend on packet sizes the client is using + introduce read timeouts ([#3213])
- Rust SDK - Support coconut, credential storage etc ([#2755])
- version bump for next release ([#3349])
- added coconut credential generation example ([#3339])
- update mix-node setup docs with node description ([#3325])
- exposed missing gateway commands in nym-cli ([#3324])
- make sure to clear inner 'ack_map' in 'GatewaysReader' ([#3300])
- Fix verloc being stuck waiting for shutdown signal ([#3250])
- Introduce `--output json` flag to `sign` command to allow to more easily capture the output ([#3249])
- Explorer - Dont fetch Service Provider list on Testnet ([#3245])
- When determining active set, rather than weighting the nodes by just the `stake`, use `stake * performance` ([#3234])
- Introduce dual packet sizes to our clients (as in use two packet sizes at the same time depending on message size) ([#3189])
- Experiment with offline signing in our validator client ([#3174])
- Modify network requester binary to reload `allowed.list` periodically to pull in any changes made upstream without having to restart the service ([#3149])
- Standardise all `--output json` on binary inits, we pass the output json at different points for different binaries. ([#3080])
- Service provider directory contract: initial version ([#2759])
- Fix issue where network-requester run failed on fresh init due to missing allow file ([#3316])
- NE - instead of throwing a "Mixnode/Gateway not found" error for blacklisted nodes due to bad performance, show their history but tag them as "Having poor performance" ([#2979])
- NE - Upgrade Sandbox and make below changes: ([#2332])
- Explorer - Updates ([#3168])
- Website v2 - deploy infrastructure for strapi and CI ([#2213])
@@ -13,7 +13,7 @@ The platform is composed of multiple Rust crates. Top-level executable binary cr
* nym-gateway - acts sort of like a mailbox for mixnet messages, which removes the need for direct delivery to potentially offline or firewalled devices.
* nym-network-monitor - sends packets through the full system to check that they are working as expected, and stores node uptime histories as the basis of a rewards system ("mixmining" or "proof-of-mixing").
* nym-explorer - a (projected) block explorer and (existing) mixnet viewer.
* nym-wallet - a desktop wallet implemented using the [Tauri](https://tauri.studio/en/docs/about/intro) framework.
* nym-wallet - a desktop wallet implemented using the [Tauri](https://tauri.studio/en/docs/about/intro) framework.
@@ -21,8 +21,8 @@ The platform is composed of multiple Rust crates. Top-level executable binary cr
### Building
Platform build instructions are available on [our docs site](https://nymtech.net/docs/stable/run-nym-nodes/build-nym).
Wallet build instructions are also available on [our docs site](https://nymtech.net/docs/stable/nym-apps/wallet#for-developers).
Platform build instructions are available on [our docs site](https://nymtech.net/docs/binaries/pre-built-binaries.html).
Wallet build instructions are also available on [our docs site](https://nymtech.net/docs/wallet/desktop-wallet.html).
### Developing
@@ -32,7 +32,11 @@ For Typescript components, please see [ts-packages](./ts-packages).
### Developer chat
You can chat to us in [Keybase](https://keybase.io). Download their chat app, then click **Teams -> Join a team**. Type **nymtech.friends** into the team name and hit **continue**. For general chat, hang out in the **#general** channel. Our development takes places in the **#dev** channel. Node operators should be in the **#node-operators** channel.
> We used to use Keybase for developer chats, but we have since migrated to Matrix and Discord. We no longer check the old **nymtech.friends** Keybase team.
You can chat to us in two places:
* The #dev channel on [Matrix](https://matrix.to/#/#dev:nymtech.chat)
* The various developer channels on [Discord](https://discord.gg/nym)
### Rewards
@@ -46,7 +50,7 @@ Node, node operator and delegator rewards are determined according to the princi
|<img src="https://render.githubusercontent.com/render/math?math=\lambda_{i}#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}\lambda_{i}#gh-dark-mode-only">|ratio of stake operator has pledged to their node to the token circulating supply.
|<img src="https://render.githubusercontent.com/render/math?math=\omega_{i}#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}\omega_{i}#gh-dark-mode-only">|fraction of total effort undertaken by node `i`, set to `1/k`.
|<img src="https://render.githubusercontent.com/render/math?math=k#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}k#gh-dark-mode-only">|number of nodes stakeholders are incentivised to create, set by the validators, a matter of governance. Currently determined by the `reward set` size, and set to 720 in testnet Sandbox.
|<img src="https://render.githubusercontent.com/render/math?math=\alpha#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}\alpha#gh-dark-mode-only">|Sybil attack resistance parameter - the higher this parameter is set the stronger the reduction in competitivness gets for a Sybil attacker.
|<img src="https://render.githubusercontent.com/render/math?math=\alpha#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}\alpha#gh-dark-mode-only">|Sybil attack resistance parameter - the higher this parameter is set the stronger the reduction in competitiveness gets for a Sybil attacker.
|<img src="https://render.githubusercontent.com/render/math?math=PM_{i}#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}PM_{i}#gh-dark-mode-only">|declared profit margin of operator `i`, defaults to 10% in.
|<img src="https://render.githubusercontent.com/render/math?math=PF_{i}#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}PF_{i}#gh-dark-mode-only">|uptime of node `i`, scaled to 0 - 1, for the rewarding epoch
|<img src="https://render.githubusercontent.com/render/math?math=PP_{i}#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}PP_{i}#gh-dark-mode-only">|cost of operating node `i` for the duration of the rewarding epoch, set to 40 NYMT.
@@ -70,7 +74,7 @@ Operator of node `i` is credited with the following amount:
@@ -80,4 +84,3 @@ where `s'` is stake `s` scaled over total token circulating supply.
### Licensing and copyright information
This program is available as open source under the terms of the Apache 2.0 license. However, some elements are being licensed under CC0-1.0 and MIT. For accurate information, please check individual files.
If you're here because you're trying to figure out how to notify us of a security issue, go to Discord, and alert the core engineers:
Dave Hrycyszyn futurechimp#5430
Drazen Urch drazen#4873
Jedrzej Stuczynski "Jedrzej | Nym#5666"
Fran Arbanas | franarbanas#0995
Mark Sinclair | marknym#8088
Please avoid opening public issues on GitHub that contain information about a potential security vulnerability as this makes it difficult to reduce the impact and harm of valid security issues.
Please avoid opening public issues on GitHub that contain information about a potential security vulnerability as this makes it difficult to reduce the impact and harm of valid security issues.
error!("failed to setup persistent storage backend for our reply needs: {err}. We're going to create a fresh database instead. This behaviour might change in the future");
info!("In the next {} minute(s), a transition will take place in the coconut system. Deposits should be halted in this time for safety reasons.",SAFETY_BUFFER_SECS/60);
exit(0);
}
break;
}else{
// Use 1 additional second to not start the next iteration immediately and spam get_current_epoch queries
letsecs_until_final=epoch
.final_timestamp_secs()
.saturating_sub(current_timestamp_secs)
+1;
info!("Approximately {} seconds until coconut is available. Sleeping until then. You can safely kill the process at any moment.",secs_until_final);
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.