Commit Graph

309 Commits

Author SHA1 Message Date
Rob Walker ddc4e7ffa0 use fewer transactions for the public, "welcome to Solana" demo 2018-11-28 16:23:22 -08:00
Michael Vines 33a5d5fe93 Enable debug builds by default for better backtraces 2018-11-17 10:52:08 -08:00
Michael Vines d96a6b42a5 Move drone into its own crate 2018-11-16 20:42:21 -08:00
carllin cf95708c18 Set drone address to always be the initial network entry point (#1847)
* Set drone address to always be the initial network entry point, so that even when leaders rotate the client can still find the drone

* Extract drone address as a separate argument to bench-tps

* Add drone port to client.sh instead of setting it in bench-tps

* Add drone entrypoint to scripts

* Fix build error
2018-11-16 19:56:26 -08:00
Michael Vines a0dd8617be Remove airdrop from fullnode 2018-11-16 13:25:55 -08:00
Michael Vines e791d0f74d Drone now returns signed airdrop transactions 2018-11-15 17:13:13 -08:00
Michael Vines 4a3230904e Specify rpc port 2018-11-15 12:32:15 -08:00
Michael Vines def7d156f6 codemod --extensions sh '#!/usr/bin/env bash -e' '#!/usr/bin/env bash\nset -e' 2018-11-11 16:24:36 -08:00
Michael Vines 33aab094ef codemod --extensions sh '#!/bin/bash' '#!/usr/bin/env bash' 2018-11-11 16:24:36 -08:00
Michael Vines a537154c28
Remove all cuda dependencies from release tarball beyond solana-fullnode-cuda 2018-11-07 14:44:40 -08:00
carllin 298bd6479a
Add first leader to genesis (#1681)
* Add first leader to genesis entries, consume in genesis.sh

* Set bootstrap leader in the bank on startup, remove instantiation of bootstrap leader from bin/fullnode

* Remove need to initialize bootstrap leader in leader_scheduler, now can be read from genesis entries

* Add separate interface new_with_leader() in mint for creating genesis leader entries
2018-11-02 14:32:05 -07:00
Pankaj Garg 3cc78d3a41
Added a new remote node configuration script to set rmem/wmem (#1647)
* Added a new remote node configuration script to set rmem/wmem

* Update common.sh for rmem/wmem configuration
2018-10-30 09:17:35 -07:00
Rob Walker 386a96b7e0
capture multinode logs by default (#1367) 2018-09-26 19:30:40 -07:00
Pankaj Garg bc88473030
Increase wmem for kernel network memory usage (#1323)
- Validators were running out of kernel buffer while retransmitting
  blobs
2018-09-24 13:02:56 -07:00
Tyera Eulberg 0125163190 Remove wallet.sh, update entrypoint syntax for wallet network argument 2018-09-17 11:53:33 -06:00
Rob Walker 9e24775051 update README with v0.8 and update demo scripts to match 2018-09-13 18:37:37 -07:00
Rob Walker 80caa8fdce add back some defaults for client.sh 2018-09-13 14:05:53 -07:00
Rob Walker 016ee36808 remove -x 2018-09-10 21:40:14 -07:00
Michael Vines 7029e4395c Fix OOM reporting 2018-09-08 18:57:31 -07:00
Rob Walker 51b27779c9
client changes for TODOs and looping (#1138)
* remove client.sh from snap
* default to ephemeral instead of ~/.config key
* rework CLI for bench-tps
* remote multinode-demo stuff from remote-client.sh
* remove multinode-demo from remote-sanity and localnet-sanity
2018-09-08 07:07:10 +09:00
Michael Vines ee682d5bc3 Move wallet-sanity.sh out of multinode-demo/ 2018-09-07 12:01:43 -07:00
Michael Vines e175c9dea9 Remove ip address hardcode. Fixes #959 2018-09-06 19:54:39 -07:00
Michael Vines 1c874fbc1b Make This is little more hacky 2018-09-05 09:02:02 -07:00
Michael Vines 0362169671 Better scope leader and validator setup 2018-09-05 09:02:02 -07:00
Michael Vines e2e569cb43 Set rsync url for local deployments 2018-09-05 09:02:02 -07:00
Michael Vines 399caf343c Morph gce_multinode-based scripts into net/ 2018-09-05 09:02:02 -07:00
Rob Walker 61abee204f
don't check for snap mode in common.sh, is only relevant to snap daemons (#1113)
snap mode is for daemons, remove it from client (i.e. common.sh)

supply leader info to client via snap
2018-09-04 14:31:54 +09:00
Rob Walker a99dbb2a0c set -x in client.sh 2018-09-04 11:55:04 +09:00
Rob Walker 7b3c7f148b supply leader and leader_address 2018-09-02 02:27:05 +09:00
Rob Walker 25d7dc7b96 fixups 2018-09-01 04:38:18 +09:00
Rob Walker d1f1cbe88f leader-address=>leader-ip 2018-09-01 04:38:18 +09:00
Rob Walker 210a4d0640 fixup 2018-08-31 23:21:07 +09:00
Rob Walker 176e806d94 rework of netwrk rendezvous
* rename NodeInfo field of Node from "data" to "info"
      (touches a lot of files)

  * update client to use gossip to find leader, a la drone

  * rework multinode scripts
      * move more stuff into rust
      * added usage to all
      * no more rsync unless you're a validator (TODO: whack that, too)
  * fullnode doesn't bail if drone isn't up yet, just keeps trying
  * drone doesn't bail if network isn't up yet, just keeps trying
2018-08-31 23:21:07 +09:00
Rob Walker 1af4cee63b fix #1079
* move gossip/NCP off assuming anything about its address
  * use a single socket to send and receive gossip
  * remove --addr/-a from CLIs
  * rearrange networking utility code
  * use Arc<UdpSocket> to share the Sync-safe UdpSocket among threads
  * rename TestNode to Node

TODO:

  * re-enable 127.0.0.1 as a valid address in crdt
  * change repair request/response to a similar, single socket
  * pick cloned sockets or Arc<UdpSocket> for all these (rpu uses tryclone())
  * update contact_info with network truthiness instead of what the node
      says?
2018-08-31 23:21:07 +09:00
Michael Vines c8e3ce26a9 Start of scripts/gcloud.sh 2018-08-27 22:35:14 -07:00
Rob Walker f88970a964 source oom-score-adj.sh from validator.sh 2018-08-28 10:01:41 +09:00
Michael Vines bd5c6158ae Move some common scripts from multinode-demo/ to scripts/ 2018-08-27 13:52:38 -07:00
Michael Vines 31d1087103 Documentation 2018-08-27 13:52:38 -07:00
anatoly yakovenko 738247ad44
advertise valid gossip address in drone and wallet (#1066)
* advertize valid gossip address in drone and wallet

get rid of asserts

check for valid ip address

check for valid address

ip address

* tests

* cleanup

* cleanup

* print error

* bump

* disable tests

* disable nightly
2018-08-26 11:36:27 -07:00
sakridge c641ba1006
Up network buffers to 64MB max (#1057)
500ms of data at 1Gbps = 125GB/2 = 64MB
Seems to help tx rate in GCP network tests.
2018-08-24 18:17:48 -07:00
Tyera Eulberg d4c41219f9 Improve gossip use for drone and wallet
- Add utility function
  - Add thread sleep
  - Enable configurable timeout for gossip poll
2018-08-23 13:08:59 -06:00
Pankaj Garg f1e35c3bc6
GCE script change to use GCE private network for multinode tests (#1042)
- Also the user can specify the zone where the nodes should be created
2018-08-22 13:21:33 -07:00
Rob Walker 7aeef27b99 not quite banishing build.rs, but better 2018-08-16 22:33:31 -07:00
Rob Walker 16cf31c3a3 fix #990 2018-08-16 15:52:30 -07:00
Rob Walker 2b48daaeba accept multiple expected outputs 2018-08-16 14:44:51 -07:00
Anatoly Yakovenko a284030ecc Account type with state
comments

fixups!

fixups!

fixups for a real Result<> from get_balance()

on 2nd thought, be more rigorous

Merge branch 'rob-solana-accounts_with_state' into accounts_with_state

update

review comments

comments

get rid of option
2018-08-16 14:44:51 -07:00
anatoly yakovenko 88d6fea999 Revert "Accounts with state (#954)"
This reverts commit c23fa289c3.
2018-08-15 19:44:39 -07:00
anatoly yakovenko c23fa289c3
Accounts with state (#954)
* Account type with state

* fixed test according to @rob-solana
2018-08-15 14:32:11 -07:00
Michael Vines 9688f8fb64
Update IP address 2018-08-13 12:32:09 -07:00
Rob Walker 06af9de753 fixups 2018-08-10 11:41:31 -07:00
Rob Walker 846ad61941 use ~/.solana instead of PWD to keep cargo happy, don't rsync --append 2018-08-10 11:41:31 -07:00
Michael Vines 5fec0ac82f Validators now rsync the ledger smarter
- Don't re-rsync parts of the ledger that are already present
- Disable compression
2018-08-07 17:38:26 -07:00
Michael Vines df808dedd1 Add simple OOM Killer monitor 2018-08-07 13:35:01 -07:00
Michael Vines 02f9cb415b Ignore failure to write oom_score_adj 2018-08-07 13:35:01 -07:00
Michael Vines e3cf1e6598 Bundle metrics_write_datapoint.sh in Snap 2018-08-07 13:35:01 -07:00
Michael Vines 0ee935dd72 Adjust fullnode/drone oom_score_adj to goad the kernel into killing it first 2018-08-07 10:42:53 -07:00
Michael Vines 1c38e40dee Validate ledger once all the tests complete 2018-08-07 10:00:52 -07:00
Rob Walker 1152457691 avoid normal validator port a little better for sanity 2018-08-06 15:06:16 -07:00
Rob Walker 5193819d8e Revert "Revert "plug in new ledger""
This reverts commit 57e928d1d0.
2018-08-06 08:51:41 -07:00
Stephen Akridge 210b9d346f Add voting metrics and -h/--help to get usage for client.sh script 2018-08-05 14:21:49 -07:00
Michael Vines e7d3069f58 macOS: Adjust maxdgram to allow for large UDP packets 2018-08-04 21:42:59 -07:00
Rob Walker 40ea3e3e61 tweak multinode-demo to work better in snap, validator-x be more stand-alone 2018-08-04 01:04:06 -07:00
Rob Walker dc9a11bae0 remove rsync size limit for validator's ledger 2018-08-03 23:31:25 -07:00
Rob Walker 98ee4b4672 fix up some nits in multinode-demo 2018-08-03 20:19:41 -07:00
Rob Walker c998199954 fixups, add validator-x to sanity 2018-08-03 15:34:11 -07:00
Rob Walker 19792192a7 support any number of self-setup validators on a single host 2018-08-03 15:34:11 -07:00
Michael Vines c5ceb15e02 Skip network tuning on CI machines 2018-08-03 10:46:48 -07:00
Rob Walker 57e928d1d0 Revert "plug in new ledger"
This reverts commit 46d9ba5ca0.
2018-08-03 10:24:51 -07:00
Rob Walker 46d9ba5ca0 plug in new ledger 2018-08-02 21:50:47 -07:00
sakridge 2ea6f86199 Submit leader's vote after observing 2/3 validator votes (#780)
* fixup!

* fixups!

* send the vote and count it

* actually vote

* test

* Spelling fixes

* Process the voting transaction in the leader's bank

* Send tokens to the leader

* Give leader tokens in more cases

* Test for write_stage::leader_vote

* Request airdrop inside fullnode and not the script

* Change readme to indicate that drone should be up before leader

And start drone before leader in snap scripts

* Rename _kp => _keypair for keypairs and other review fixups

* Remove empty else
* tweak test_leader_vote numbers to be closer to testing 2/3 boundary
* combine creating blob and transaction for leader/validator
2018-07-31 22:07:53 -07:00
Michael Vines 647053e973 Terminate child process when main script is interrupted 2018-07-30 16:36:26 -07:00
Michael Vines 3e351b0b13 Drop -t 2018-07-30 16:13:51 -07:00
Michael Vines 81db333490 Guard against rsyncing TBs of ledger 2018-07-27 23:53:20 -07:00
Michael Vines c68ee0040d No need to support migrating from the old ledger format anymore 2018-07-27 23:53:20 -07:00
Michael Vines d96e267624
Keep around 3GB of logs, 160MB is just not enough 2018-07-27 22:40:21 -07:00
Michael Vines 537be6a29d export SOLANA_DEFAULT_METRICS_RATE 2018-07-24 15:43:25 -07:00
Michael Vines 7d68b6edc8 Fixup arg processing 2018-07-23 16:51:39 -07:00
Michael Vines f7d294de90 Don't rsync leader.json on every iteration 2018-07-22 17:25:00 -07:00
Michael Vines 3ffdca193d Rename client-demo to bench-tps catchup 2018-07-21 15:46:03 -07:00
Greg Fitzgerald 637f890b91 Rename client-demo to bench-tps 2018-07-21 11:36:20 -04:00
Michael Vines b92ee51c2d Add --loop flag to easily send transactions continuously 2018-07-20 17:07:36 -07:00
Michael Vines 9d25d7611a Protect against unsupported configurations to prevent non-obvious errors later 2018-07-20 09:47:01 -07:00
Michael Vines 17d927ac74 Count testnet nodes as a part of sanity 2018-07-19 12:05:21 -07:00
Michael Vines a67f58e9a5 Add -c option to easily interrogate the number of nodes 2018-07-19 09:41:09 -07:00
pgarg66 cc229b535d
Remote multinode script cleanup (#683)
- Create a known_hosts file if it doesn't exist
  Otherwise ssh-keygen exits
- Move some common rsync code to common_start_setup
- Build the project before deploying it
2018-07-18 16:02:05 -07:00
Michael Vines 4eb676afaa Tunnel SOLANA_DEFAULT_METRICS_RATE into Snap nodes 2018-07-18 08:23:59 -07:00
Michael Vines 90b3b90391 -p 2018-07-17 19:42:00 -07:00
Michael Vines fd4f294fd3 Rotate logs at 16MB 2018-07-17 19:42:00 -07:00
Michael Vines 145274c001 Ensure log directories are go+r 2018-07-17 18:16:40 -07:00
Michael Vines df5d6693f6 Don't cache leader.json to make it easier to switch between nets 2018-07-17 18:16:40 -07:00
Michael Vines 5b0418793e Keep Snap fullnode/drone logs out of syslog, we're too spammy 2018-07-17 15:08:35 -07:00
pgarg66 4423ee6902
Renamed start_nodes.sh to remote_nodes.sh (#669) 2018-07-17 15:01:53 -07:00
pgarg66 f0c39cc84d
Remote multinode scripts cleanup (#666)
- Also added support for stop nodes
2018-07-17 13:48:25 -07:00
Michael Vines f6eb85e7a3 Permit Snap RUST_LOG to be overridden 2018-07-16 17:44:54 -07:00
pgarg66 af40ab0c04
Split start_nodes script ssh commands to individual scripts (#642) 2018-07-16 16:21:32 -07:00
Michael Vines d6a8e437bb Temporarily disable erasure 2018-07-16 08:15:47 -07:00
Pankaj Garg 8c08e614b7 Start validator nodes in parallel
- This speeds up overall network startup time
2018-07-15 19:11:52 -06:00
Michael Vines e76bf1438b A validator and leader running from the same workspace no longer share an identity 2018-07-15 13:34:48 -07:00
Michael Vines 79b3564a26 Log metrics params to stderr
Keep stdout clean for the actual program.  This is a specific concern for the
wallet command, where there exists tests that capture stdout from the wallet to
confirm transactions.
2018-07-14 21:24:22 -07:00
Michael Vines 1e8c36c555 Be less noisy 2018-07-14 20:42:00 -07:00
Michael Vines 0025b42c26 Locate perf libs 2018-07-14 10:24:20 -07:00
Michael Vines 3f7f492cc0 Fix snap client-demo fixes 2018-07-14 00:18:54 -07:00
Michael Vines 490d7875dd Snap client-demo fixes 2018-07-13 23:51:33 -07:00
Michael Vines d349d6aa98 USE_SNAP=1 is now supported 2018-07-13 22:21:41 -07:00
Michael Vines 1b9d50172b Correct log message 2018-07-13 18:08:28 -07:00
Rob Walker 58c0508f94 add drone information to multinode demo instructions 2018-07-13 17:16:55 -07:00
Michael Vines dcf82c024f Surface hidden call to solana-keygen 2018-07-13 16:16:46 -07:00
Michael Vines 05cea4c1da dedup 2018-07-13 11:48:17 -07:00
Michael Vines 260f5edfd6 Use correct leader.json 2018-07-13 11:48:17 -07:00
Michael Vines 8e7a2a9587 Validators now request an airdrop of 1 token before starting up 2018-07-13 10:02:19 -07:00
Rob Walker 11b9a0323d fixups 2018-07-12 22:51:55 -07:00
Rob Walker aaf6ce5aea fixups 2018-07-12 22:51:55 -07:00
Rob Walker 34ea483736 step two: supply a ledger file argument to fullnode in the demo
(also whack unused "myip.sh", even though it was pretty)
2018-07-12 22:51:55 -07:00
Greg Fitzgerald 4cca3ff454 Fix keypair option in scripts
Thanks @CriesofCarrots!
2018-07-12 21:50:28 -06:00
Greg Fitzgerald 428f220b88 Battle shellcheck 2018-07-12 21:50:28 -06:00
Greg Fitzgerald 10add6a8ac Cleanup setup.sh 2018-07-12 21:50:28 -06:00
Greg Fitzgerald 545f4f1c87 Pass the owner's keypair to fullnode-config 2018-07-12 21:50:28 -06:00
Greg Fitzgerald 97372b8e63 Add --outfile option to solana-keygen 2018-07-12 21:50:28 -06:00
Greg Fitzgerald b5006b8f2b Migrate to solana-keygen
Most of #593
2018-07-12 21:50:28 -06:00
Pankaj Garg 5bc133985b Start drone on remote leader node
- Also, enables CUDA for leader node
2018-07-11 20:08:18 -06:00
Pankaj Garg 45ff142871 Optimized start_nodes script to speed up GCE nodes start time
- Reduced dependency on local network
- Validators get binaries (solana bins and scripts) from leader node
2018-07-11 11:42:25 -06:00
Pankaj Garg d7d985365b Add script to create/delete multiple GCE instances
- This script outputs the IP address array that can be used
  with start_nodes script to launch multinode demo
- Changes to start_nodes to compress files for rsync
2018-07-10 18:16:05 -06:00
Pankaj Garg 3b1aa846b5 Fixed issues with configuring new GCE instances
- New nodes cloned from a working node can be used with the script
- Script takes care of installing SSH keys, and package dependencies correctly
2018-07-10 10:31:03 -06:00
Michael Vines 461dea69d9 Add SOLANA_METRICS_CONFIG environment variable 2018-07-07 19:40:09 -07:00
Tyera Eulberg 37dd511356 Pass client.json location as argument 2018-07-05 15:15:23 -06:00
Tyera Eulberg 4701540cc9 Migrate solana-client-demo to use drone 2018-07-05 15:15:23 -06:00
Tyera Eulberg 8ec2fe15f3 Port solana-drone to clap crate for CLI arguments 2018-07-04 16:39:26 -06:00
Michael Vines 687af3e3a4 Document source of magic net.core.rmem_max value 2018-07-04 14:24:01 -07:00
Greg Fitzgerald 490205ab84 Fix sanity check
...that my last PR broke
2018-07-02 19:21:03 -07:00
Michael Vines 2c0e704c82 Confirm the payment 2018-07-02 17:59:50 -07:00
Michael Vines 253048f72d Only tune networking for leader/validator 2018-07-02 17:59:50 -07:00
Michael Vines e09b8430ce Add |wallet reset| command 2018-07-02 17:59:50 -07:00
Michael Vines 9ae283dc3a Expose wallet.sh as a Snap program temporarily 2018-07-02 17:59:50 -07:00
Michael Vines f95a79d145 Default to using testnet.s.c when running as a Snap 2018-07-02 17:59:50 -07:00
Michael Vines b4dc180592 More quotes to pacify shellcheck 2018-07-02 16:41:22 -07:00
Michael Vines 263577773f Set client config directory correctly in a Snap 2018-07-02 16:41:22 -07:00
Michael Vines 7d708be121 Drone now grabs mint.json locally 2018-07-02 16:41:22 -07:00
Michael Vines feb1669d39 Correct locate rsync when running as a Snap 2018-07-02 15:57:30 -07:00
Michael Vines b7653865b1 Support testnet.solana.com as first argument 2018-07-02 15:57:30 -07:00
Rob Walker 6ee45d282e some auto-detect of wallet commands 2018-07-02 15:51:12 -06:00
Michael Vines cfc3bd0696 Add manual wallet sanity test 2018-07-02 14:38:01 -07:00
Michael Vines 1d8bb5144e Drop -demo suffix 2018-07-02 14:38:01 -07:00
Michael Vines 6eac744a05 Only rsync leader.json once 2018-07-02 10:59:09 -07:00
Michael Vines 5716898216 setup.sh can now be more picky about the kind of config it creates 2018-07-02 09:22:26 -07:00
Michael Vines c0f9e452f2 mint.json is now private 2018-07-02 09:22:26 -07:00
Michael Vines 5671da4a0a Generate a client-specific mint.json 2018-06-30 15:28:17 -07:00
Greg Fitzgerald c06582ba40 Wallet no longer uses global mint.json 2018-06-29 22:26:42 -07:00
Michael Vines 450f271cf7 Move public IP address detection out of bash 2018-06-29 21:12:05 -07:00
Michael Vines 0b56d603c2 Client NAT traversal 0.1
UPnP is now used to request a port on the NAT be forwarded to the local machine.
This obviously only works for NATs that support UPnP, and thus is not a panacea
for all NAT-related connectivity issues.

Notable hacks in this patch include a transmit/receive UDP socket pair to work
around current protocol limitations whereby the full node assumes its peer can
receive on the same UDP port it transmitted from.
2018-06-29 17:36:26 -07:00
Pankaj Garg 79a97ada04 Fix more shellchecks
Also, stops current nodes before pushing updates
2018-06-29 15:19:28 -06:00