Skip to content
This repository has been archived by the owner on May 22, 2023. It is now read-only.

System Tests: Client #386

Open
40 of 44 tasks
nkuba opened this issue Apr 10, 2020 · 9 comments
Open
40 of 44 tasks

System Tests: Client #386

nkuba opened this issue Apr 10, 2020 · 9 comments

Comments

@nkuba
Copy link
Member

nkuba commented Apr 10, 2020

Client Configuration

Start client with:

  • valid configuration

    • Client starts successfully.
  • missing config file

    • Client fails to start.
  • config file in default location

    • Client starts successfully.
  • config file in custom location

    • Client starts successfully.
  • invalid formatted config file

    • Client fails to start.
  • invalid ETH URL

    • Client fails to start.
  • invalid ETH URLRPC

    • Client fails to start.
  • missing ethereum key file

    • Client fails to start.
  • invalid ethereum key file

    • Client fails to start.
  • no ethereum password environment variable provided

    • Client fails to start.
  • incorrect ethereum password environment variable provided

    • Client fails to start.
  • after some keeps are open restart client with incorrect ethereum password

    • Client fails to start.
  • missing BondedECDSAKeepFactory contract address

    • Client fails to start.
  • BondedECDSAKeepFactory contract address of other contract which is not the factory

    • Client starts successfully but doesn't get any events from the factory.
  • BondedECDSAKeepFactory contract address of old factory

    • Client starts successfully and gets events from the old factory.
  • invalid sanctioned application ethereum address

    • Client fails to start.
  • not registered sanctioned application address

    • Client fails to start.
  • one sanctioned application address

    • Client starts successfully.
  • missing storage path

  • storage path where last directory doesn't exist

    • Existing path /home/keep/storage, provided path: /home/keep/storage/client-1

    • Client fails to start.

  • storage path where current and archive directories don't exist

    • Existing path /home/keep/storage/client-1, provided path: /home/keep/storage/client-1

    • Client starts, directories get created:

      • /home/keep/storage/client-1/current
    • /home/keep/storage/client-1/archive

  • storage path already containing some keep data

    • current and archive directories already contain some keep data

    • Client starts preserving the data and reading keeps from current directory.

  • empty LibP2P peers list

    • Client starts successfully, but doesn't establish connection to any peers.
  • address where LibP2P peer is not working

    • Client starts successfully, but doesn't establish connection the peer.
  • one LibP2P peer address

    • Client starts successfully, establishes connection to the peer and discovers
      other peers.
  • LibP2P peer that is running different client version

    • Case is not supported but it should not break the network.
  • multiple peer addresses

    • Client starts successfully, establishes connection to the peers and discovers
      other peers.
  • multiple peer addresses where one is not working

    • Client starts successfully, establishes connection to the peers and discovers
      other peers.
  • LibP2P port that is already in use

    • Client fails to start.
  • LibP2P port behind firewall for in traffic

    • Client starts successfully, but doesn't establish connection peers.
  • LibP2P port behind firewall for in/out traffic

    • Client starts successfully, but doesn't establish connection peers.
  • LibP2P port behind firewall for out traffic

    • Client starts successfully, but doesn't establish connection peers.
  • LibP2P announced address not provided

    • Client starts successfully with a default address settings, establishes connection to peers.
  • LibP2P announced incorrect address provided

    • Client starts successfully with a default address settings, establishes connection to peers.
  • LibP2P announced address dns4 provided

    • Client starts successfully with the specified address, establishes connection to peers.
  • LibP2P announced address ip4 provided

    • Client starts successfully with the specified address, establishes connection to peers.
  • LibP2P announced address dns4 + ip4 provided

    • Client starts successfully with the specified address, establishes connection to peers.

Multiple Clients

  • Run min number of clients

  • Run n clients

    • Run clients, open new keeps and request signatures

    • n # 10

    • n # 100

    • n # 1000

  • New nodes joining continuously and are getting picked for new groups randomly

    • Nodes discovering all other peers by the bootstrap peers specified in the config
  • Run two groups of clients supporting one address of BondedECDSAKeepFactory
    and the second group supporting another address of BondedECDSAKeepFactory.
    Submit some open keep and sign requests to both factory contracts.

    • Client should handle requests correctly.
@dimpar
Copy link
Contributor

dimpar commented Apr 10, 2020

BondedECDSAKeepFactory contract address of other contract which is not the factory

  • Client starts successfully but doesn't get any events from the factory.

Client didn't start and was aborted because of the critical error.

@pdyraga
Copy link
Member

pdyraga commented Apr 10, 2020

BondedECDSAKeepFactory contract address of other contract which is not the factory

  • Client starts successfully but doesn't get any events from the factory.

Client didn't start and was aborted because of the critical error.

I think this is even better and is really expected as the client cannot check the minimum stake condition on the factory.

@dimpar
Copy link
Contributor

dimpar commented Apr 10, 2020

not registered sanctioned application address
Client fails to start.

It didn't fail, instead a Warning:

operator is not eligible for application [0xdD92d9aaBa9b97E4BC0989e9e0f8f498cdA61183] registration.go:133

@dimpar
Copy link
Contributor

dimpar commented Apr 13, 2020

LibP2P port that is already in use
Client fails to start.

Client didn't fail to start, but wasn't connected to other peers

@dimpar
Copy link
Contributor

dimpar commented Apr 13, 2020

  • LibP2P port behind firewall for in traffic
    Client starts successfully, but doesn't establish connection peers.

Correct

  • LibP2P port behind firewall for in/out traffic
    Client starts successfully, but doesn't establish connection peers.

Won't start because can't connect to ropsten.infura

  • LibP2P port behind firewall for out traffic
    Client starts successfully, but doesn't establish connection peers.

Failed to connect to ethereum node. Won't connect to ropsten.infura

Tested on external machine which was setup by @nkuba

@dimpar
Copy link
Contributor

dimpar commented Apr 13, 2020

not registered sanctioned application address
Client fails to start

Client will start, but will be waiting to register a member candidate for application

@dimpar
Copy link
Contributor

dimpar commented Apr 13, 2020

  • invalid ETH URLRPC
    Client fails to start

Client started because it used URL. When should we observe URLRPC error?

@lukasz-zimnoch lukasz-zimnoch self-assigned this Apr 15, 2020
@lukasz-zimnoch
Copy link
Member

  • Run min number of clients
    Run 1 client, open new keep and request a signature ❌

Observed:

16:12:22.585 ERROR keep-ecdsa: failed to generate threshold signer: [group should have at least 2 members but got: [1]]

@nkuba
Copy link
Member Author

nkuba commented Apr 16, 2020

@lukasz-zimnoch it's reported in #392.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants