Commit Graph

1539 Commits

Author SHA1 Message Date
Dave a7fe4697c5 Getting corrector user home dir in Python setup script 2021-03-15 13:39:39 +00:00
Jędrzej Stuczyński a854118f19 Feature/gateway bonding (#524)
* Defined gateway and gatewaybond types

* Gateway related errors

* New message types

* gateway tests fixtures and helpers

* Handling of gateway-related messages

* Fixed most of clippy warnings
2021-03-12 14:28:58 +00:00
Jędrzej Stuczyński d496ee3031 Fixed eslint errors in the validator client (#525) 2021-03-12 14:19:51 +00:00
dependabot[bot] f29dd884f3 Bump elliptic in /clients/native/examples/js-examples/websocket (#521)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-11 10:38:47 +00:00
Dave Hrycyszyn e1181f756c Fix the remove mixnode test (#522) 2021-03-10 16:06:31 +00:00
Dave Hrycyszyn 4ca40fd3bc Feature/initial mixnet contract (#515)
* Starting on cosmwasm smart contracts

* Mixnet contract now builds

* Removing license and notice files, the monorepo already has these.

* Removing generated README content

* Simplified development instructions a bit.

* Converted some network monitor files to use SPDX license headers

* Renamed packaget to mixnet-contracts

* Depending on the Nym topology crate

* Renaming contract package in usage

* Renamed "announce" to "register_node" in the defined messages

* Fixed package name for mixnet contracts in defined release annotations

* Added the mixnet contracts to the Cargo lock file

* Renamed some fields in our contract topology

* Using the stringy mixnode from the validator client.

* Removing mix nodes count from state, we can infer that

* Saving generated code in comment as it's a useful example for now

* Renamed "count" to "get_topology"

* Adding the beginnings of a validator client (in Typescript)

* Starting to integrate example code. WIP.

* Ignoring generated accounts

* Making a few less mixnodes :)

* Adding shebang to start script

* Cranking up the Nym-related gas limits, as otherwise contract upload fails.

* Simplest mixnode example is now working

* Removing the external client code, it messed up wasm compilation. Will copy/paste for now.

* Contract now wants to add a MixNode rather than an IP string

* Adding mixnodes via contract now works (!)

* Simplified mixnode registration example

* Further mixnode-adding simplification.

* Adding author name

* Fixed description

* Sent funds are now required to bond a mixnode

* Ensuring that we send correct coin denomination

* Unbonding now works (!). Quite primitivist.

* Checking that unbonding works from the client.

* Setting up a thief account to play with

* Checking to see whether thief can unbond a node (it fails, happily)

* Adding a more specific error for when an account attempts to unbond but owns no bonds

* Figured out how to test contract balances

* Set the console messages to explain things a little more nicely

* Tests for insufficient funds result

* Using more async in driver example

* Added a bit more explanation of the actions taken by the driver example

* Locking down wasm instantiate a bit more

* Docs clarifications on how to run example

* README clarification

* Corrected the commit hash in the wasmd build command, it was still set for 0.14.0

* Moved models from types into state

* Starting work on range queries

* whitespace

* Going back to slow but reliabel node uploads and disabling new contract upload

* Cranking gas fees temporarily

* Mixnode key retrieval working and tested

* Range retrievals now working well

* Removing unused clone

* Compressing tests a bit

* Testing node retrieval on large numbers of nodes.

Not sure whether MockStorage has the same space limitations as
production storage does.

* Getting rid of spelling warning

* Removing unused responses

* Minor cleanup

* Starting to map my way out of the tuples

* Slightly more meaningful variable names

* Returning a StdResult from nodes query

* Fighting through the unwraps :)

* Unfucking a bit more

* Starting to use ranged nodes in contract

* Testing node retrieval from range store

* Ditching generated tests

* Adding works, still need to test removing mixnodes

* Attempting to remove a mixnode returns an error when no nodes exist

* Un-registering when no accounts exist (edit)

* un-registering someone else's mixnode fails

* Ensuring proper ownership

* Testing for only 1 mixnode getting deleted

* Testing single-node retrieval

* Removing mixnode working

* Removed unused imports and unused variable warnings

* Made handler functions private

* Tested for error response on mixnode removal

* Ensured proper post-state on mixnode removal

* Using Vec<Coin> for currency equality comparisons

* Removed todo, this amount is only for logging purposes anyway

* Refactoring tests a bit

* Adding a few storytelling comments

* Putting helper methods into alphabetical order

* Drying up mixnode adding in tests

* Using the new add_mixnode helper

* Checking full object equality in test

* Removing the GetNodes handler

* Taking a more "storytelling" approach to the contract tests

* We need a few more methods to run our example driver

* We now need to make a new address for each node we want to have,

as each sending account can only have one node

* HumanAddr not needed

* Making call sequence a little more readable

* Added the results of today's experiments with the REST API to the validator client readme

* Corrected console.log message

* Adding a note about how to run tests

* More contract exercising fun

* Updating mocha

* Whitespace

* Adding a note about running tests

* Adding typed rest client

* Starting to mess with typescript paging client

* Removing the rest client, we'll use the cosmjs one for this

* Noting a few more contract requirements

* Starting client restructuring

* Importing cosmjs stargate client

* Starting to work on the chain cache

* Cleanup

* Removing type annotations which hilariously worked, confusing the compiler

* Might as well do each cache individually

* Renaming chaincache so that it handles only mixnodes

* Renaming chaincache

* Setting dynamic per-page value to ease testing

* Using perPage in tests

* Moving tests back into their own special home so they don't bloat our package

* Ignoring generated docs

* Adding TypeDoc documentation generator

* Removing unused NetClient import

* Added docs generation

* Noting existence of docs generation

* Starting to test paged responses

* Working paging tests

* Clarified test names a bit

* Removed console.logs

* Added a test for two full pages.

* Formatting

* Starting to query for mix nodes

* Removed the topology in preparation for paging

* Removing unused struct

* Getting ready for series-based paging

* We're now setting page size limits on list retrievals

* Pagination starting to work, needs more testing

* Moved test support stuff into its own home

* Removing duplicate testy code

* Testing all paging stuff in the contract

* Removed useless method duplicate

* Moving queries into their own file

* Removing redundant tests

* Testing default paging limit

* Testing max paging limit

* We don't need to c/p pagination stuff from the cw-plus contracts, removing

* Testing pagination

* Making next key calculation explict via a function

* Removing temporary variable

* Commenting final state

* Incorporating the PagedResponse

* On the road to a working TypeScript client

* Adding some logging utilities

* Paged retrieval working but needs improvement - it's very brittle

* Getting the loop right

* Removing unused logger

* Setting up a request count

* Documenting the ins and outs of the client network interface

* Removing requestCount as we're not using it yet

* Success! Making paginated requests for mixnodes!

* Differentiating between MixNode and MixNodeBond

* Checking that Fred can upload a mixnode

* Fixing export

* Adding the ability for client to get balances

* Docs fix

* Converting interfaces to types

* Changing `mixNodes()` to `getMixNodes()` on client

* We might as well return the nodes we've just retrieved when we refresh

* Starting work on unbonding

* Fixed a caching bug which was causing multiple result sets to be cached

* Using the sender address as the key for removal

* Importing some result stuff so we can find out what happened on execution

* Minor messing around to prove that the sequence fully works

* Displaying a nicer message on mixnode unbond

* Renamed announce to bond in validator client

* Fixed unstable clippy warnings

* Removing commented fields

* Comment spacing

* Changed announce to bond in example code

* Making the test accounts directory configurable

* Rebuilt

* Loading keys from the local ./accounts directory

* Ignoring contract lockfile

* Saving out a contract lockfile so things continue working after contract upload

* Splitting the driver example into smaller self-contained examples

* Deleting the example that Andrew hates so much

* Making dependabot happy

* Stricter equals

* Removing unused import
2021-03-09 11:32:51 +00:00
Dave Hrycyszyn 6483a62a7c Feature/fix go errors in examples (#516)
* Fixing annoying errors Go errors showing in example code

* Fixed further Go warnings
2021-03-02 09:27:36 +00:00
Jędrzej Stuczyński 83753af944 Running CI also on windows and macOS (#512)
* Running CI also on windows and macOS

* Rust 2021 formatting

* clippy::upper_case_acronyms where appropriate

* Allowing unknown clippy lints

* Further clippy updates

* Building wasm client during CI

* wasm actions update

* added working directory to cargo jobs

* Temporarily disabled wasm test and clippy
2021-03-01 11:06:13 +00:00
Jędrzej Stuczyński 6f8ae53f0c Feature/socks5 adjustments (#510)
* Increased default connection buffer size to help with packet bursts

* Informing remote about failure to establish connection

* Properly closing outbound proxy on failure to read from socket

* Split proxy runner into separate inbound and outbound files

* Flag indicating whether socks client actually started proxying

* Clearing stale proxies if other side is closed

* Decreased log level on not a warning

* Closing proxy if no messages were received in a while

* Dont print harmless false-positive errors

* Formatting + future notes

* Fixed packet delay in higher volume traffic

* Don't attempt writing empty messages to connection
2021-02-01 14:45:50 +00:00
Jędrzej Stuczyński 2f867b75f2 Fixed unused import in non-unix systems (#509) 2021-02-01 14:43:11 +00:00
Dave ea31e18d98 Adding license and extra crate to cargo.lock 2021-02-01 11:57:42 +00:00
Dave d03af9de05 Merge branch 'develop' of https://github.com/lnceballosz/nym into lnceballosz-develop 2021-01-29 10:28:47 +00:00
Jędrzej Stuczyński 4013d0c939 Checking if the delay has already expired before attempting to put it in delay queue (#508) 2021-01-29 10:18:24 +00:00
Jędrzej Stuczyński 3a261d22f5 Not including gateway non-delay when calculating total packet delay (#507) 2021-01-29 10:18:03 +00:00
Jędrzej Stuczyński 2314baf0d3 Allowing for a single topology refresh failure (#505) 2021-01-29 10:17:37 +00:00
Jędrzej Stuczyński c882778583 if on unix, save keys with 0600 permission (#504) 2021-01-29 10:17:02 +00:00
Jędrzej Stuczyński c67e0fee37 More human-readable errors on mixnode/gateway startup (#503)
* More human-readable errors on mixnode/gateway startup

* Missing dots

* Fixed comment moved to incorrect line during formatting
2021-01-29 10:16:38 +00:00
Jędrzej Stuczyński 863aa4535a Feature/ip filtering (#502)
* Initial split into domains and ipnets

* Changed the library used for ip networks for more convenience

* Adding disallowed hosts to the unknown file
2021-01-29 10:15:30 +00:00
Jędrzej Stuczyński 86c9ab2ef5 Feature/wasm client compilation fixes (#501)
* Gateway client wasm-specific fixes

* wasm-client adjustments
2021-01-29 10:13:22 +00:00
Jędrzej Stuczyński 12faa23222 Fixed possible crash on invalid topology (#500) 2021-01-29 10:12:02 +00:00
Jędrzej Stuczyński 9cd463b22c Feature/gateway monitoring (#499)
* ability to read from multiple gateway clients

* A very initial updated network monitor

* Summary producer printing report on each finished run

* fixed gateway startup issue

* initial cleanup pass

* Sending to gateways at specified rate

* Renaming

* Fixed first run interval

* Removed false positive error print

* Ability to use 'good' topology that is different from the one being tested

* Fixed clippy warnings
2021-01-29 10:11:13 +00:00
jstuczyn d7ec81ad0a Shutting up nightly clippy to fix all pending PRs 2021-01-28 11:59:05 +00:00
Jędrzej Stuczyński 2d3b4f4b91 Feature/GitHub actions and clippy cleanup (#493)
* Added github actions templates

* removed travis .yml file

* initial clippy cleanup pass

* fixed the rest of clippy warnings

* Made github badges more fancy and consistent with the ones in sphinx

* Updated local rustc version and removed compilation warningns

* ... and fresh clippy warnings

* formatting

* beta clippy specific warnings fixed

* Fixed all nightly clippy warnings

* Fixed trying to unwrap a ()

* Actually running all tests

* Correctly passing the --all flag

* Hopefullly third time's a charm in fixing argument passing
2021-01-18 11:50:29 +00:00
Dimitris Apostolou 131574cd3c Fix typos (#492) 2021-01-04 09:31:50 +00:00
dependabot[bot] 8b29c612f8 Bump ini from 1.3.5 to 1.3.8 in /clients/webassembly/js-example (#489)
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-18 11:58:17 +00:00
dependabot[bot] 9c67b73472 Bump ini in /clients/native/examples/js-examples/websocket (#490)
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-18 11:58:05 +00:00
Jędrzej Stuczyński 6b37a9b95c display 0 on no validators rather than crash (#488) 2020-12-10 15:31:22 +00:00
Lina Ceballos 67ac1d9f4b adding license and copyright headers 2020-12-10 10:13:17 +01:00
Lina Ceballos 28410eedad creating license file for image 2020-12-10 10:11:01 +01:00
Lina Ceballos 0fb182ccb9 creating license file for image 2020-12-10 10:08:54 +01:00
Lina Ceballos 7953e36e82 Associating Copyright/ Licensing info through a DEP5 file 2020-12-10 10:07:19 +01:00
Lina Ceballos 9cea2777d4 Adding LICENSES directory and add licenses texts 2020-12-10 10:05:49 +01:00
Jędrzej Stuczyński 46d3591a4f Bugfix/explorer fixes (#477)
* Using original std::thread::spawn

* websocket client reconnection upon broken metrics
2020-12-02 16:49:22 +00:00
Jędrzej Stuczyński 5fc81db0d9 Feature/removed topology (#481)
* Explorer also downloading 'active' and 'removed' topologies

* Updated dashboard with new standby and removed nodes

* Additional cleanup + restored commented code
2020-12-02 16:48:02 +00:00
Jędrzej Stuczyński fbdca2dcd5 Network requester now prints correct version with --version (#478) 2020-12-02 16:43:56 +00:00
Jędrzej Stuczyński afb7825135 Feature/0.9.2+only monitoring (#475)
* Not testing or informing validator about pre 0.9.2 nodes

* Corrected version check

* Updated JS file to monitor 0.9.2+ nodes

* Restored updates every minute
2020-11-26 16:44:18 +00:00
Jędrzej Stuczyński c2a1ed855b Release/v0.9.2 (#474)
* Updated version numbers

* Updated changelog
v0.9.2
2020-11-26 15:15:42 +00:00
Jędrzej Stuczyński 210b5466bb Minor mixnet client code simplification and optimization (#472)
* Minor code simplification and optimization

* Made the connection establishing call non-blocking
2020-11-26 13:06:05 +00:00
Jędrzej Stuczyński 33d5effbdc Putting initial packet onto the queue when establishing connection (#471) 2020-11-25 15:09:40 +00:00
jstuczyn fa5c512aa8 Same fixes for client v0.9.1 2020-11-24 12:05:33 +00:00
jstuczyn c1b2a9aaa7 Corrected error message 2020-11-24 11:57:44 +00:00
jstuczyn cdef90c2a4 Changelog update 2020-11-24 11:17:11 +00:00
jstuczyn 8e80651617 Updated version numbers 2020-11-24 11:11:47 +00:00
Jędrzej Stuczyński 80775b7436 Additional feedback on unregistration on sigint (#466) 2020-11-24 10:57:53 +00:00
Jędrzej Stuczyński 83dcd75cea Updated message on shutdown (#467) 2020-11-24 10:57:11 +00:00
Jędrzej Stuczyński d52ea90cd2 Feature/upgrade additions (#465)
* Mix 0.9.x upgrade support

* Gateway upgrade support

* Client 0.9.x upgrades
2020-11-24 10:56:45 +00:00
Jędrzej Stuczyński cb59153422 Feature/nonblocking mix send (#464)
* No backoff

* reconnections

* Increased default network monitor default sending rate

* Comment for the future

* Maximum connection buffer size as part of config
2020-11-23 17:27:14 +00:00
Jędrzej Stuczyński 89f03e63c7 Feature/delay queue mixnodes (#462)
* Initial idea for the delayer

* Initial rought integration into mixnode

* Removed lock requirement from 'received' metrics

* 'sent' metrics

* Comment fix
2020-11-20 14:49:22 +00:00
Dave Hrycyszyn 692f9cb198 Update README.md 2020-11-20 14:27:24 +00:00
Dave 455e735da4 Merge branch 'develop' of github.com:nymtech/nym into develop 2020-11-19 18:07:07 +00:00