14306a33e7
Stable dashboard can now actually come from the stable channel
2018-12-20 08:05:32 -08:00
babc3847d7
Select correct branch for {testnet,-perf} when using a stable channel tag
2018-12-19 17:50:15 -08:00
40fd1befa5
Add pipeline upload script
2018-12-15 16:06:36 -08:00
7808af9a65
Regenerate secrets
2018-12-15 15:27:42 -08:00
3c17732826
Use ejson to manage build secrets
2018-12-15 15:10:44 -08:00
77aee571ad
crdt-vote-count metric is now named cluster_info-vote-count
2018-12-09 19:28:30 -08:00
a01b55c580
Add newline at end of file
2018-12-06 17:47:00 -08:00
0ecdc64302
Update versions in install-libssl-compatibility.sh
2018-12-06 16:35:31 -08:00
ba06082d58
Move testnet metrics dashboard management out of the Grafana UI
2018-11-25 16:10:29 -08:00
08e9c1a96e
Add Cargo.lock
2018-11-17 16:06:40 -08:00
9f38b86df8
Revert "Temporarily disable clippy"
...
This reverts commit ca12faca9c
.
2018-11-17 16:06:40 -08:00
ca12faca9c
Temporarily disable clippy
2018-11-17 09:43:33 -08:00
97a0791f3f
Add timeouts
2018-11-17 09:09:49 -08:00
4791c7e0a7
Bump earlyoom version
2018-11-10 15:56:37 -08:00
1ba13fe180
v0.10.5
2018-11-09 11:55:30 -08:00
9a30100a9c
Create target/ if it doesn't exist yet
2018-11-09 11:52:19 -08:00
aa741b3147
v0.10.4
2018-11-09 10:29:32 -08:00
09db7b5b52
Determine network version for tar and local deploys
2018-11-09 10:27:18 -08:00
fa9faa2cec
Upgrade Rust stable to 1.30.1
...
Fixes `cargo doc`
2018-11-09 10:25:00 -08:00
d2dc585974
Update wallet to pass full ELFs ( #1738 )
2018-11-08 09:03:48 -08:00
6721bdde3d
v0.10.3
2018-11-07 21:39:51 -08:00
a733873b8f
v0.10.2
2018-11-07 20:13:17 -08:00
7c02bbc47c
Assign static IPs to {edge,beta}.testnet.solana.com
2018-11-07 20:11:53 -08:00
16a815d2b1
Install native programs in the correct location
2018-11-07 19:44:39 -08:00
ddb490e2fb
Continue if docker0 is not present
2018-11-07 19:33:36 -08:00
242d0a23fb
Switch testnet to AWS
2018-11-07 18:56:45 -08:00
869009243d
Work around AWS key management limitation
2018-11-07 18:48:05 -08:00
7b61f5279c
Switch to us-west-1a, us-west-1b is causing trouble
2018-11-07 18:22:24 -08:00
7ef0b815ec
Remove docker0 interface if present
2018-11-07 17:49:57 -08:00
8742de789e
Shuffle AWS regions
2018-11-07 17:49:57 -08:00
bfadd7b787
Work around AWS boot check weirdness
2018-11-07 15:47:47 -08:00
2e14bfcf4e
Shuffle AWS regions
2018-11-07 15:43:56 -08:00
a19426f055
Revert "Restore testnet/testnet-perf to tip of beta channel for now"
...
This reverts commit 0d0a1c2919
.
2018-11-07 15:43:56 -08:00
df366017a7
Invert gpu check
2018-11-07 13:50:42 -08:00
7d76badd03
Support local tarball deploys
2018-11-07 13:43:36 -08:00
8047ab777c
Remove all cuda dependencies from release tarball beyond solana-fullnode-cuda
2018-11-07 13:43:24 -08:00
0d0a1c2919
Restore testnet/testnet-perf to tip of beta channel for now
2018-11-07 21:21:33 +00:00
1da90017ce
Permit release tag tarballs
2018-11-07 10:33:20 -08:00
0909618efa
Switch testnet/testnet-beta to tarball release
2018-11-07 10:29:53 -08:00
28bb7849f4
Fix tarball publishing for tags
2018-11-07 10:26:07 -08:00
9cffd3a1ea
AWS AMIs are region specific
2018-11-07 10:04:45 -08:00
917151ce54
s/edge/beta/
2018-11-07 08:54:44 -08:00
6dcd127634
Increase boot timeout
2018-11-07 08:32:03 -08:00
af66edf8c0
Add AWS-based nets
2018-11-07 07:52:34 -08:00
ab5b921e8f
Set imageName if G
2018-11-07 07:52:29 -08:00
6c2843543b
Bump EC2 validator machine type
2018-11-07 07:52:25 -08:00
85f74cc537
Upgrade GCP CPU-based testnet to 18.04
2018-11-07 07:52:19 -08:00
43665115b4
Switch testnet/testnet-perf to the latest beta or stable tag
2018-11-07 07:48:33 -08:00
156115c04c
Publish release tarballs for tags
2018-11-07 07:48:30 -08:00
a66577eb87
Add support for using a release tar
2018-11-07 07:48:02 -08:00
3345d059e8
Elf relocations ( #1724 )
...
Use relocatable BPF ELFs
2018-11-06 14:28:46 -08:00
8c8c5de779
Remove unused debug trace
2018-11-06 14:19:07 -08:00
f03e971598
t
2018-11-06 14:06:07 -08:00
b4a1cdceaa
Add timeout to prevent a stuck ssh
2018-11-06 14:02:27 -08:00
b250d20059
Remove node check from client start-up
...
If the network loses a validator or two, it's the job of the sanity
check to detect this not the bench clients
2018-11-06 13:59:42 -08:00
dc3b270410
Remove bpf tictactoe
2018-11-06 12:17:52 -08:00
9d5092a71c
Set metrics database correctly
2018-11-06 07:24:49 -08:00
a287c9e5fa
Remove stray line
2018-11-05 20:53:50 -08:00
ee85d534f9
Update testnet deploy docs
2018-11-05 19:12:43 -08:00
6e1b291c17
Add testnet-manager pipeline
2018-11-05 17:35:55 -08:00
68f7b1ecf3
Rename buildkite-snap to buildkite-secondary
2018-11-05 08:48:09 -08:00
58fe5cabd6
Document BPF C program limitations
2018-11-04 12:30:05 -08:00
8993c6ae24
Try harder to snap download
2018-11-03 00:29:48 +00:00
0e56473add
0.10.1
2018-11-02 16:30:13 -07:00
f6b709ca48
ci: correct crates.io publishing order
2018-11-02 15:36:32 -07:00
ffa1fa557b
Ship native programs in snap
2018-11-01 15:59:24 -07:00
e7631c85a1
Update bpf.mk
2018-11-01 15:25:43 -07:00
edeadb503f
shell
2018-11-01 14:40:38 -07:00
d2044f2562
Find clang 7 better
...
If LLVM_DIR is defined, use it to locate clang. Otherwise use brew on
macOS, and assume clang-7 otherwise
2018-11-01 09:46:47 -07:00
5703c740cf
Improve clang install info for Linux
2018-11-01 09:46:47 -07:00
6ae20e78e2
Rename sol_bpf.h to solana_sdk.h
2018-10-31 23:39:59 -07:00
506fc3baeb
sol_bpf.h improvements
...
- Define NULL
- Add sol_memcmp()
- Use sizeof() more
- Add SOL_ARRAY_SIZE
- Make sol_deserialize() more flexible
2018-10-31 23:39:59 -07:00
68523f4a7f
Fix up bpf numeric types
2018-10-31 21:16:16 -07:00
beae217ab9
Remove purging of leader id from cluster info ( #1677 )
2018-10-31 13:09:44 -07:00
2c8c117e3c
Use env variables to disable validator sanity and ledger verification ( #1675 ) ( #1676 )
2018-10-31 12:54:40 -07:00
3a1285ebe5
Program may not exit ( #1669 )
...
Cap max executed instructions, report number of executed instructions
2018-10-31 11:15:08 -07:00
e2660f2ac1
Fix deps ( #1672 )
2018-10-31 11:14:41 -07:00
22eb1b977f
Fix lua_loader tests ( #1665 )
2018-10-31 09:22:41 -07:00
43ef8d7bb7
SYSTEM_INC_DIRS needs immediate expansion
2018-10-31 09:22:41 -07:00
d9271f2d30
Revert inclusion change, fix doc
2018-10-31 09:22:41 -07:00
dfbfd4d4dd
Fix const
2018-10-31 09:22:41 -07:00
9cb262ad4b
Fix C programs
2018-10-31 09:22:41 -07:00
73ee0cb100
Run workspace member's tests ( #1666 )
...
Run workspace member's tests
2018-10-31 09:22:41 -07:00
9a6154beaf
Upgrade to influx_db_client@0.3.6
2018-10-31 09:22:41 -07:00
3f494bb91b
Update testnet scripts to use release tar ball ( #1660 ) ( #1664 )
...
* Update testnet scripts to use release tar ball
* use curl instead of s3cmd
2018-10-30 18:29:07 -07:00
2eb312796d
Publish a tarball of Solana release binaries ( #1656 ) ( #1658 )
...
* Publish a tarball of solana release binaries
* included native programs in Solana release tar
* Remove PR check from publish script
2018-10-30 15:55:50 -07:00
3fb86662fb
Find native program with solana_ prefix
2018-10-30 13:12:59 -07:00
dce31f6002
Improve account subscribe/unsubscribe logging
2018-10-30 12:10:25 -07:00
39c42a6aba
Avoid panicking when a native library doesn't exist
2018-10-30 12:10:25 -07:00
9961c0ee0a
Demote info logs
2018-10-30 12:10:25 -07:00
3f843f21b9
Add solana_ prefix to loaders so their logs appear in the default RUST_LOG config
2018-10-30 11:24:18 -07:00
d07961a58b
Work around influxdb panic
2018-10-30 11:24:18 -07:00
b85aa9282e
Tweak logging
2018-10-30 11:24:18 -07:00
1cd354cf15
Added a new remote node configuration script to set rmem/wmem ( #1647 ) ( #1648 )
...
* Added a new remote node configuration script to set rmem/wmem
* Update common.sh for rmem/wmem configuration
2018-10-30 10:48:56 -07:00
92cd2d09ed
Permit {INC,LLVM,OUT,SRC,SYSTEM_INC}_DIRs to be overridden
2018-10-30 07:59:22 -07:00
a40122548f
Add programs/bpf/c/sdk entries
2018-10-29 20:52:34 -07:00
6e27f797bd
Use NUM_KA
2018-10-29 20:52:34 -07:00
476a585222
README updates
2018-10-29 20:52:34 -07:00
aa74ddb6c0
LD -> LLC
2018-10-29 20:52:34 -07:00
95921ce129
Add extern "C" block
2018-10-29 20:52:34 -07:00
ee6d00a2fe
Use #pragma once, it's widely supported
...
Fix up some spelling too
2018-10-29 20:52:34 -07:00
212cbc4977
Rename sol_bpf_c.h to sol_bpf.h
2018-10-29 20:52:34 -07:00
a6af1ba08d
slight reformatting
2018-10-29 20:52:34 -07:00
ee27e9e1cf
Apply some const
2018-10-29 20:52:34 -07:00
4d21ee0546
Include system includes in .d, remove unneeded tabs
2018-10-29 20:52:34 -07:00
493a2477b5
Tune make output
2018-10-29 19:32:20 -07:00
e284af33b9
Create programs/bpf/c/sdk/
2018-10-29 19:10:54 -07:00
f0aa14e135
Run bench-tps for longer duration in testnet ( #1638 ) ( #1639 )
...
- Increased to 2+ hours
2018-10-29 15:23:01 -07:00
fb9d8dfa99
Increase rmem and wmem for remote nodes in testnet ( #1635 ) ( #1637 )
2018-10-29 14:36:26 -07:00
4b02bbc802
Remove unnecessary checks
2018-10-29 13:27:14 -07:00
18cf660f61
Create/publish bpf-sdk tarball
2018-10-29 13:04:20 -07:00
376303a1eb
Add utility to figure the current crate version
2018-10-29 13:04:20 -07:00
f295eb06d0
Add llvm install info
2018-10-29 09:44:03 -07:00
f423f61d8b
Ignore out/
2018-10-29 09:44:03 -07:00
94b06b2cbf
Use V=1 for verbosity, easier to type
2018-10-29 09:44:03 -07:00
9b2fc8cde7
Find llvm using brew on macOS
2018-10-29 09:44:03 -07:00
d810752e86
Remove VoteProgram references
2018-10-26 21:10:05 -07:00
fdaad1d85b
Program_ids were overlapping ( #1626 )
...
Program_ids were overlapping
2018-10-26 21:10:05 -07:00
7f29c1fe23
Cleanup c programs ( #1620 )
...
Cleanup C programs
2018-10-26 21:10:05 -07:00
68df9d06db
Bump version number to pick up fixed cuda library
...
Has fix for unaligned memory access in chacha_encrypt_many_sample
function.
2018-10-26 21:10:05 -07:00
b60cb48c18
Use a smaller test value for window_size
...
Otherwise this test takes forever to run.
2018-10-26 21:10:05 -07:00
0fee854220
Revert "Vote contract ( #1552 )"
...
This reverts commit f6c8e1a4bf
.
2018-10-26 09:50:35 -07:00
0cc7bbfe7d
Revert "cargo fmt"
...
This reverts commit 68834bd4c5
.
2018-10-26 09:50:35 -07:00
68834bd4c5
cargo fmt
2018-10-25 17:24:40 -07:00
2df40cf9c9
Revert "0.10.0-pre2"
...
This reverts commit 48685cf766
.
2018-10-25 17:20:37 -07:00
f671b7f63f
Publish root crate too
2018-10-25 17:16:18 -07:00
236113e417
cargo fmt
2018-10-25 17:13:41 -07:00
a340b18b19
Upgrade to rust 1.30
2018-10-25 17:13:41 -07:00
f6c8e1a4bf
Vote contract ( #1552 )
...
* Add Vote Contract
* Move ownership of LeaderScheduler from Fullnode to the bank
* Modified ReplicateStage to consume leader information from bank
* Restart RPC Services in Leader To Validator Transition
* Make VoteContract Context Free
* Remove voting from ClusterInfo and Tpu
* Remove dependency on ActiveValidators in LeaderScheduler
* Switch VoteContract to have two steps 1) Register 2) Vote. Change thin client to create + register a voting account on fullnode startup
* Remove check in leader_to_validator transition for unique references to bank, b/c jsonrpc service and rpcpubsub hold references through jsonhttpserver
2018-10-25 16:58:40 -07:00
160cff4a30
Check for TRIGGERED_BUILDKITE_TAG
2018-10-25 16:37:54 -07:00
48685cf766
0.10.0-pre2
2018-10-25 16:19:31 -07:00
0f32102684
Restrict characters to those supported by semvar_bash
2018-10-25 16:19:00 -07:00
d46682d1f2
Restrict characters to those supported by semvar_bash
2018-10-25 16:12:29 -07:00
55833e20b1
Create Poh Service ( #1604 )
...
* Create new Poh Service, replace tick generation in BankingStage
2018-10-25 14:56:21 -07:00
02cfa76916
Plumb GetTransactionCount through solana-wallet
2018-10-25 14:58:51 -06:00
9314eea7e9
Add leader-readiness test to wallet-sanity
2018-10-25 14:58:51 -06:00
1733beabf7
mv common/ sdk/
2018-10-25 13:26:10 -07:00
471d8f6ff9
Fix up the version references to all other internal crates
2018-10-25 12:54:32 -07:00
e47fcb196b
s/solana_program_interface/solana[_-]sdk/g
2018-10-25 12:31:45 -07:00
3ae53961c8
Support prerelease versioning
2018-10-25 12:31:45 -07:00
113b002095
Delete programs/native/move_funds
2018-10-25 11:37:38 -07:00
9447537d8c
Increment internal Cargo references to solana_program_interface
2018-10-25 11:03:03 -07:00
7404b8739e
Make template headers smaller
2018-10-25 11:51:37 -06:00
7239395d95
Add Issue and PR templates
2018-10-25 11:51:37 -06:00
926d459c8f
Script away cargo version bumping
2018-10-25 09:38:58 -07:00
7cabe203dc
Sync version with top-level Cargo.toml
2018-10-25 09:38:58 -07:00
1e53f4266a
Fetch perf-libs with configurable packet size
...
sig verify library uses passed in size directly
to get packet size, so rust side can be modified
without changing cuda library.
2018-10-25 08:26:35 -07:00
24b513c3c7
Migrate to latest rbpf ( #1605 )
...
Migrate to updated rbpf
2018-10-25 02:58:04 -07:00
b982595c73
Add version check and rustup
2018-10-24 19:48:58 -07:00
af8a36b7fb
Exclude chacha_cuda when chacha is disabled
2018-10-24 17:02:46 -07:00
208e7d7943
Explicitly reject transactions larger than PACKET_SIZE
2018-10-24 15:34:27 -07:00
557736f1cf
Split leader rotation into separate RFC
2018-10-24 13:16:06 -06:00
61927e1941
Fix compile error for write_entries
...
Takes a reference now.
2018-10-24 11:31:30 -07:00
fc75827aaf
.gitignore *.log
2018-10-24 10:58:27 -07:00
2f2531d921
Add retries to Wallet deploy
2018-10-24 11:13:32 -06:00
d5f20980eb
Incorporate preloaded bpf loader
2018-10-24 11:13:32 -06:00
21eae981f9
Add deploy method to solana-wallet
2018-10-24 11:13:32 -06:00
ead7f4287a
Storage mining fixups...
...
* Use IV to make unique identies
* Use hex! macro for hex literal and not string converted to u8 slice
* fix sha sampling to control init/end of sha state
2018-10-24 09:58:41 -07:00
3b33150cfb
Bump drone read timeout to 10s
...
The previous timeout of 3s was not generous enough occasionally
2018-10-24 08:52:41 -07:00
6d34a68e54
Ignore test_leader_restart_validator_start_from_old_ledger ( #1586 )
...
Ignore test_leader_restart_validator_start_from_old_ledger
2018-10-23 18:10:31 -07:00
5c483c9928
remove unused variable
2018-10-23 16:52:56 -06:00
a68c99d782
Fix transaction count on testnet dashboard
2018-10-23 16:52:56 -06:00
0aebbae909
Fix message
2018-10-23 15:45:58 -07:00
a3a2215bda
Fix warning
2018-10-23 15:45:58 -07:00
eb377993b3
Debug scripts point to debug flavor ( #1585 )
2018-10-23 14:48:50 -07:00
5ca52d785c
Preload BPF loader ( #1573 )
...
Preload BPF loader
2018-10-23 14:44:41 -07:00
8d9912b4e2
Move ledger write to its own stage ( #1577 )
...
* Move ledger write to its own stage
- Also, rename write_stage to leader_vote_stage, as write functionality
is moved to a different stage
* Address review comments
* Fix leader rotation test failure
* address review comments
2018-10-23 14:42:48 -07:00
c77b1c9687
i
2018-10-23 14:14:09 -07:00
8849ecd772
capture consensus discussion of 10/10/2018
2018-10-23 15:07:58 -06:00
7977b97227
Surface AccountInUse to JSON RPC users so they know to retry the transaction
2018-10-23 13:55:30 -07:00
4f34822900
Improve logging on various error conditions
2018-10-23 13:40:59 -07:00
bbb38ac106
Increase window size ( #1578 )
...
Addresses the following problem
- Validators are not able to keep up with the leader
- The future blobs (outside of window) get dropped
- The validators won't process repair requests for these future blobs
2018-10-23 10:25:01 -07:00
ce934a547e
Storage RFC validator incentive clarification
2018-10-23 09:46:38 -06:00
16b19d35dd
Disable test_boot_validator_from_file ( #1576 )
2018-10-23 00:47:15 -07:00
45cfa5b574
Add instruction to transfer account ownership
2018-10-20 21:54:25 -05:00
df9ccce5b2
Remove hostname() from calls to metrics as it's expensive operation ( #1557 )
2018-10-20 06:38:20 -07:00
f8516b677a
Load program data in chunks ( #1556 )
...
Load program data in chunks
2018-10-19 18:28:38 -07:00
dfde83bdce
Wildcard early OOM deb package revision ( #1554 )
2018-10-19 14:17:19 -07:00
cb0f19e4f1
Shield rerun-if-changed under the feature flags so
...
that cargo watch doesn't cause re-build every iteration.
2018-10-19 12:07:29 -07:00
26b99d3f85
Ensure witness and timestamp keys are signed
...
Before this patch, an attacker could point Budget instructions to
unsigned keys, and authorize a transaction from an unauthorized
party.
2018-10-19 10:06:59 -06:00
2f9c0d1d9e
Add method to lookup signed keys
2018-10-19 10:06:59 -06:00
0423cafbeb
Cleanup and update Smart Contracts Engine RFC to what is currently in the code ( #1539 )
...
* Cleanup and update to the state of the code
* update
* render
* render
* comments on memory allocation
2018-10-19 06:08:49 -07:00
0bd1412562
Switch leader scheduler to use PoH ticks instead of Entry height ( #1519 )
...
* Add PoH height to process_ledger()
* Moved broadcast_stage Leader Scheduling logic to use Poh height instead of entry_height
* Moved LeaderScheduler logic to PoH in ReplicateStage
* Fix Leader scheduling tests to use PoH instead of entry height
* Change is_leader detection in repair() to use PoH instead of entry height
* Add tests to LeaderScheduler for new functionality
* fix Entry::new and genesis block PoH counts
* Moved LeaderScheduler to PoH ticks
* Cleanup to resolve PR comments
2018-10-18 22:57:48 -07:00
0339642e77
Added TicTacToe Dashboard and tests ( #1547 )
...
* Add tictactoe dashboard and tests
2018-10-18 14:19:25 -07:00
37a0b7b132
Initial validator code for rust side hooks for chacha cuda parallel encrypt
2018-10-18 13:50:19 -07:00
c30b605047
Actually submit the storage mining proof
...
Get an aidrop so replicator can submit mining transaction
Some other minor type cleanup.
2018-10-18 13:50:19 -07:00
76076d6fad
move last_id age checking into the HashMap
...
* allows for simpler chaining of banks
* looks 1.5-2% faster than looping through a VecDequeue
TODO: remove timestamp()?
2018-10-18 11:07:00 -07:00
0a819ec4e2
Programs were not spawned by SystemProgram ( #1533 )
...
* SystemProgram spawns programs
2018-10-18 10:33:30 -07:00
57a717056e
Delegate accounts now record the original approved amount
2018-10-18 08:53:25 -07:00
856c48541f
Restore elaborate attack
...
The test is showing how you can sneak by verify_plan() but not
verify_signature().
2018-10-18 08:46:02 -06:00
2045091c4f
Add SystemProgram::Move ix to Budget tx
2018-10-18 08:46:02 -06:00
03ac5a6eef
Move all source tokens into Budget account
...
Budget now assumes the source account holds all tokens the program
should spend.
Note: the static guarantees implied by verify_plan() are meaningless
under the new contract engine. The bank no longer calls it. This
serves as a nice example of where comparing code coverage between
integration tests and unit tests would have shown us where a
change rendered unit tests meaningless.
2018-10-18 08:46:02 -06:00
32fadc9c30
Merge debits and credits
...
Debits no longer need to be applied before credits. Instead, we
lock any accounts we'd debit and so error out on the second attempt
to lock the same account.
2018-10-18 08:46:02 -06:00
15a89d4f17
Boot Contract type from Budget
...
In the old bank (before the contract engine), Contract wasn't specific
to Budget. It provided the same service as what is now called
SystemProgram::Move, but without requiring a separate account.
2018-10-18 08:46:02 -06:00
d0f43e9934
consolidate tmp ledgers
2018-10-18 08:45:31 -06:00
31e779d3f2
Added counters to track more metrics on dashboard ( #1535 )
...
- Total number of IP packets TX/RX from all nodes in the testnet
- Last consumed index on validator
- Last transmitted index on leader
2018-10-17 17:32:50 -07:00
30c79fd40d
Change validator node machine type ( #1537 )
...
- The current nodes are using lower RAM compared to leader/clients
2018-10-17 17:16:50 -07:00
639c93460a
Write stage optimizations ( #1534 )
...
- Testnet dashboard shows that channel pressure for write stage
is incrementing on every iteration of write.
- This change optimizes ledger writing by removing cloning of map
and reducing calls to flush
2018-10-17 13:02:32 -07:00
7611730cdb
move off /tmp
2018-10-17 12:15:30 -07:00
9df9c1433a
remove another use of /tmp
2018-10-17 12:15:30 -07:00
4ea422bcec
run integration tests serially
2018-10-17 11:37:10 -07:00
6074e4f962
Attempt to stabilize the test suite
...
The integration tests are allowed to open sockets, so running them
in parallel may cause "Too many open files" errors. This patch
runs the unit tests in parallel and the integration test serially.
2018-10-17 11:37:10 -07:00
d52e6d01ec
typo in readme
2018-10-17 02:04:05 -06:00
63caca33be
SystemProgram test was failing due to expected panic
2018-10-16 18:02:44 -07:00
64efa62a74
enable logging in loaders
2018-10-16 16:55:11 -07:00
912eb5e8e9
remove bank.is_leader, dead code ( #1516 )
2018-10-16 15:26:44 -07:00
bb628e8495
Rename loaders
2018-10-16 14:27:08 -07:00
d0c19c2c97
cargo fmt
2018-10-16 14:11:04 -07:00
926fdb7519
Rename dynamic_program.rs to native_loader.rs
2018-10-16 14:11:04 -07:00
c886625c83
Move from solana/rbpf fork to qmonnet/rbpf ( #1511 )
2018-10-16 13:13:54 -07:00
f6c10d8a2e
Add channel pressure for validator TVU stages ( #1509 )
2018-10-16 12:54:23 -07:00
2bd877528f
Par process entries ( #1499 )
...
* Parallel entry processor.
2018-10-16 12:09:48 -07:00
d09889b1dd
Program bank integration ( #1462 )
...
Native, BPF and Lua loaders integrated into the bank
2018-10-16 09:43:49 -07:00
1b2e9122d5
Pubsub listen on random open port when rpc does (quiet some test errors)
2018-10-16 00:11:26 -06:00
7424388924
Fix session drop
2018-10-16 00:11:26 -06:00
537436bd5e
RPC PubSub now uses a well-known socket
2018-10-16 00:11:26 -06:00
32fc0cd7e9
Fix bug introduced during RUST_LOG escaping ( #1507 )
...
* Fix bug introduced during RUST_LOG escaping
- remote node configuration should not be quoted
* shellcheck disable SC2090
2018-10-15 16:49:22 -07:00
fb99494858
Improve rpc code coverage ( #1487 )
2018-10-15 11:01:40 -06:00
5b4d4b97bc
Upgrade to latest stable Rust, 1.29.2
2018-10-15 09:54:24 -06:00
c5180c8092
Permit RUST_LOG overrides
2018-10-14 12:40:37 -07:00
515c200d86
Refactor and add test for new Entry::serialized_size()
2018-10-14 10:53:47 -06:00
32aab82e32
Don't allocate to see if transactions will fit in a blob
2018-10-14 10:53:47 -06:00
6aaa350145
effeciently pack gossip responsens and only respond up to max size. ( #1493 )
2018-10-14 06:45:02 -07:00
d3b4dfe104
Add bool return to entrypoint signature to permit programs to fail transactions
2018-10-13 20:01:43 -07:00
9fc30f6db4
Escape RUST_LOG configuration in remote-node.sh ( #1489 )
...
* Escape RUST_LOG configuration in remote-node.sh
- If it was set to #, it was causing other parameters to be commented out
* escape other variables as well
* disabled shell check
* Fix shellcheck error
2018-10-13 13:35:54 -07:00
2d0f07091d
Handle dynamic program dlopen failures gracefully
2018-10-13 11:31:10 -07:00
3828eda507
Demote log messages
2018-10-13 11:31:10 -07:00
1e736ec16d
Demote log messages
2018-10-12 20:16:57 -07:00
bba6437ea9
Use a single structure for last_ids and last_ids_sigs
2018-10-12 16:39:35 -07:00
e5ab9a856c
Upload bench output as build artifacts ( #1478 )
...
* Upload bench output as build artifacts
* Fix tags types
* Pull previous stats from metrics
* Change the default branch for comparison
* Fix formatting
* Fix build errors
* Address review comments
* Dedup some common code
* Add eval for channel info to find branch name
2018-10-12 15:13:10 -07:00
1515bba9c6
Use cluster_info in rpc to get current leader addresses ( #1480 )
2018-10-12 14:25:56 -06:00
14a9ef4bbe
move PoH verification off bank.last_id() ( #1476 )
2018-10-12 11:50:34 -07:00
041040c659
pubsub.rs -> rpc_pubsub.rs
2018-10-12 08:39:06 -07:00
47f69f2d24
1) Switch broken tests to generate an empty tick in their ledgers to use as last_id, 2) Fix bug where PoH generator in BankingStage did not referenced the last tick instead of the last entry on startup, causing ledger verification to fail on the new tick added by the PoH generator ( #1479 )
2018-10-12 00:39:10 -07:00
9dd4dc2088
Mark failing tests as ignore
2018-10-11 15:32:36 -07:00
b534c32ee3
New minor version for jsonrpc crates
2018-10-11 13:35:06 -06:00
d2712f1457
Specify patch for jsonrpc crates
2018-10-11 11:38:14 -07:00
183f560d06
Add raw entries interface to ledger for getting slices as [u8]
2018-10-11 09:40:34 -07:00
ae150c0897
Remove getAddress, it doesn't exist
2018-10-11 08:28:39 -07:00
606e1396cf
Fix link
2018-10-11 08:25:38 -07:00
5c85e037f8
Tick entry ids as only valid last_ids ( #1441 )
...
Generate tick entry ids and only register ticks as the last_id expected by the bank. Since the bank is MT, the in-flight pipeline of transactions cannot be close to the end of the queue or there is a high possibility that a starved thread will encode an expired last_id into the ledger. The banking_stage therefore uses a shorter age limit for encoded last_ids then the validators.
Bench client doesn't send transactions that are older then 30 seconds.
2018-10-10 17:23:06 -07:00
5c523716aa
Ship native programs
2018-10-10 16:49:48 -07:00
5f8cbf359e
Use cdylib to avoid runtime libstd dependencies
2018-10-10 16:49:48 -07:00
e83834e6be
Build native programs in release configuration
2018-10-10 16:49:48 -07:00
02225aa95c
Look for native programs in same directory as the current executable
2018-10-10 16:49:48 -07:00
9931ac9780
Leader scheduler plumbing ( #1440 )
...
* Added LeaderScheduler module and tests
* plumbing for LeaderScheduler in Fullnode + tests. Add vote processing for active set to ReplicateStage and WriteStage
* Add LeaderScheduler plumbing for Tvu, window, and tests
* Fix bank and switch tests to use new LeaderScheduler
* move leader rotation check from window service to replicate stage
* Add replicate_stage leader rotation exit test
* removed leader scheduler from the window service and associated modules/tests
* Corrected is_leader calculation in repair() function in window.rs
* Integrate LeaderScheduler with write_stage for leader to validator transitions
* Integrated LeaderScheduler with BroadcastStage
* Removed gossip leader rotation from crdt
* Add multi validator, leader test
* Comments and cleanup
* Remove unneeded checks from broadcast stage
* Fix case where a validator/leader need to immediately transition on startup after reading ledger and seeing they are not in the correct role
* Set new leader in validator -> validator transitions
* Clean up for PR comments, refactor LeaderScheduler from process_entry/process_ledger_tail
* Cleaned out LeaderScheduler options, implemented LeaderScheduler strategy that only picks the bootstrap leader to support existing tests, drone/airdrops
* Ignore test_full_leader_validator_network test due to bug where the next leader in line fails to get the last entry before rotation (b/c it hasn't started up yet). Added a test test_dropped_handoff_recovery go track this bug
2018-10-10 16:49:41 -07:00
2ba2bc72ca
Cleanup multisig lua
2018-10-10 17:17:17 -06:00
45b8ba9ede
Demo M-N multisig library in Lua
2018-10-10 17:17:17 -06:00
40968e09b7
Do a *little* more than noop
2018-10-10 15:57:30 -07:00
262f26cf76
SystemProgram transactions now fail on invalid arguments
2018-10-10 15:19:03 -07:00
785c619198
Add pubsub module for rpc info subscriptions ( #1439 )
2018-10-10 14:51:43 -06:00
24a993710d
Avoid panic when account.source is None
2018-10-10 10:53:00 -07:00
c240bb12ae
Change buildkite agent for testnet automation
2018-10-09 15:04:55 -07:00
eed3b9db94
Add ERC20-like Token program
2018-10-09 12:53:37 -07:00
29a8823db1
Env variables for testnet-automation parameters ( #1455 )
...
- This will enable us to create custom pipelines for field events
2018-10-09 11:50:56 -07:00
a80955eacb
Change format of data for TPS/Finality metrics in testnet automation ( #1446 )
...
* Change format of data for TPS/Finality metrics in testnet automation
* Revert number of nodes for testnet automation
* Split python command to its own script
* Fix python command line arguments
2018-10-09 10:35:01 -07:00
9716c3de71
Add an abort test to justify a key field
2018-10-09 11:06:48 -06:00
34fa3208e0
Demo self-modifying Lua program
...
Also, drop dependency on bincode.
2018-10-09 11:06:48 -06:00
9c4e19958b
Use accounts[1] for Lua code and tx userdata as arg data
...
This makes the Lua version nearly identical to the C one.
2018-10-09 11:06:48 -06:00
0403299728
Add context-free Lua smart contracts
...
lua_State is not preserved across runs and account userdata is not converted into
Lua values. All this allows us to do is manipulate the number of tokens
in each account and DoS the Fullnode with those three little words,
"repeat until false".
Why bother? Research. rlua's project goals are well-aligned with the LAMPORT runtime.
What's next:
* rlua to add security limits, such as number of instructions executed
* Add a way to deserialize Account::userdata OR use Account::program_id
to look up a metatable for lua_newuserdata().
2018-10-09 11:06:48 -06:00
95701114e3
Crdt -> ClusterInfo
2018-10-09 03:49:39 -06:00
a99d17c3ac
put temp, test files in OUT_DIR ( #1448 )
2018-10-08 16:15:17 -07:00
517149d325
Move rpc request methods from wallet into separate module
2018-10-08 13:02:08 -06:00
32aa2575b5
Purge BudgetTransaction from entry
2018-10-08 11:34:04 -07:00
8fe7b96629
Purge BudgetTransaction from banking_stage
2018-10-08 11:34:04 -07:00
9350619afa
log to influx once ( #1438 )
2018-10-06 14:37:14 -07:00
d8d8f0bfc8
Fund all the keys with move many transactions ( #1436 )
...
* Fund all the keys with move many transactions
* logs
2018-10-05 16:45:27 -07:00
0a39722719
Add support to trigger testnet from a PR ( #1434 )
...
* Add support for different node counts
* Update variable names
* Delete network even after failures
* Add array for node counts
* Changed number of nodes to a space separated string of numbers
* Adjust number of nodes
* Snap will not be published if the env variable DO_NOT_PUBLISH_SNAP is set
* Address review comments
* Replaced influx db URL
2018-10-05 16:32:05 -07:00
9c0fa4d1d2
Upload coverage HTML reports ( #1421 )
...
Uploads two reports to Buildkite, one from cargo-cov and one from lcov via grcov. The lcov one is busted on linux and is what we need to bring codecov.io back up again. It works great on macos if you wanted to generate them locally and prefer lcov HTML reports.
* Also comment out non-coverage build to speed things up.
2018-10-05 10:17:35 -07:00
da0404ad03
Reduce maintenance of maintainers list
2018-10-04 23:05:08 -07:00
b508fdb62c
Cleanup field names
2018-10-04 16:51:05 -07:00
680f90df21
Fix comment
2018-10-04 14:21:06 -07:00
1a68807ad9
Enable mt-bank ( #1368 )
...
* Enable mt-bank
* cleanup and interleaving lock tests
2018-10-04 13:15:54 -07:00
d901767b54
Makefile is not relevant
2018-10-04 10:35:48 -07:00
13d4443d4d
Add BPF support & C-based BPF tic-tac-toe ( #1422 )
...
Add initial support for BPF and a C port of tictactoe
2018-10-04 09:44:44 -07:00
74b63c12a0
Add tests to LeaderScheduler to increase code coverage
2018-10-03 21:58:29 -07:00
cd42f6591a
PR fixes - remove redundant case
2018-10-03 21:58:29 -07:00
5491422b12
Fix validator_to_leader_transition test to not start up tpu after shutting down tvu, as the tpu now outputs ticks that will mess up the verification check
2018-10-03 21:58:29 -07:00
23f3ff3cf0
Added LeaderScheduler module and tests
2018-10-03 21:58:29 -07:00
f90488c77b
Demote 'not enough peers in crdt table' log message
2018-10-02 22:00:54 -07:00
beb4536841
Run a fullnode+drone automatically when the container starts up
2018-10-02 18:09:35 -07:00
3fa46dd66d
Add replicator sha sampling
...
replicator will submit mining proofs with the result of sampling
the encrypted file with a hashing algorithm.
2018-10-02 17:04:46 -07:00
ad5fcf778f
Publish minimal Solana docker images to dockerhub
2018-10-02 16:57:48 -07:00
83b000ae88
Remove SNAP_ prefix
2018-10-02 16:57:48 -07:00
33e179caa6
Update sha2 requirement from 0.7.0 to 0.8.0
...
Updates the requirements on [sha2](https://github.com/RustCrypto/hashes ) to permit the latest version.
- [Release notes](https://github.com/RustCrypto/hashes/releases )
- [Commits](https://github.com/RustCrypto/hashes/commits/sha2-v0.8.0 )
Signed-off-by: dependabot[bot] <support@dependabot.com >
2018-10-02 09:00:05 -06:00
b1e941cab9
Return all instances
2018-10-01 07:51:48 -07:00
6db961d256
Correct comment
2018-09-30 00:08:09 -07:00
83409ded59
Correctly deserialize large userdata
2018-09-29 19:39:54 -07:00
396b2e9772
Ignore keep alive for completed games
2018-09-29 19:39:54 -07:00
94459deb94
Disable codecov.io reporting
2018-09-28 19:19:16 -07:00
660af84b8d
Use the same versions of llvm-cov and libprofile
2018-09-28 19:19:16 -07:00
7b31020903
Add back llvm-dev for llvm-cov
2018-09-28 19:19:16 -07:00
9a4143b4d9
Upgrade llvm-dev and boot kcov
...
Need clang-dev, not llvm-dev because cargo-cov looks for libprofile
in a clang installation directory.
2018-09-28 19:19:16 -07:00
aebc47ad55
Attempt coverage reporting
2018-09-28 19:19:16 -07:00
b6b5455917
Fix test in coverage build
2018-09-28 19:19:16 -07:00
5bc01cd51a
Revive code coverage
2018-09-28 19:19:16 -07:00
c79acac37b
Add tic-tac-toe dashboard program
2018-09-28 18:48:34 -07:00
a5f2aa6777
s/grid/board/g
2018-09-28 18:48:34 -07:00
4169e5c510
Simplify game setup messaging
2018-09-28 18:48:34 -07:00
0727c440b3
Add KeepAlive message so players can detect abandoned games
2018-09-28 18:48:34 -07:00
19a7ff0c43
Pin down nightly in benchmark build
2018-09-28 19:29:50 -06:00
5f18403199
Upgrade nightly
2018-09-28 19:29:50 -06:00
9f325fca09
Re-enable cargo audit
2018-09-28 17:53:41 -06:00
10d08acefa
Reenable cargo audit
2018-09-28 17:53:41 -06:00
52d50e6bc4
Update for new solana-jsonrpc
2018-09-28 17:53:41 -06:00
e7de7c32db
Transactions with multiple programs. ( #1381 )
...
Transactions contain a vector of instructions that are executed atomically.
Bench shows a 2.3x speed up when using 5 instructions per tx.
2018-09-28 16:16:35 -07:00
a5f07638ec
Use static str define for ledger files
2018-09-28 14:23:37 -07:00
aa2a3fe201
Add chacha module to encrypt ledger files
2018-09-28 14:23:37 -07:00
abd13ba4ca
move program tests to integration
2018-09-28 11:30:10 -07:00
485ba093b3
Install kcov to CI environment
2018-09-28 11:20:27 -06:00
36b18e4fb5
Create new wallet on each run of wallet-sanity
2018-09-28 07:39:31 -07:00
8d92232949
Specify zone
2018-09-28 07:32:49 -07:00
e4d8c094a4
Include -z when deleting network
2018-09-27 21:27:09 -07:00
d26e1c51a9
0.10.0
2018-09-27 16:38:53 -07:00
675ff64094
Fail CI on clippy warnings
2018-09-27 16:21:12 -06:00
423e7ebc3f
Pacify clippy
2018-09-27 16:21:12 -06:00
f9fe6a0f72
Move clippy to Rust stable
2018-09-27 16:21:12 -06:00
8d007bd7f7
Upgrade rustc and add clippy to stable
2018-09-27 16:21:12 -06:00
6cdbdfbbcb
Enable bench and fix upload-perf
2018-09-27 14:16:56 -07:00
35e6343d61
Update testnet-deploy script to configure GPUs for leader node ( #1379 )
2018-09-27 13:42:24 -07:00
7fb7839c8f
Configure GPU type/count from command line in GCE scripts ( #1376 )
...
* Configure GPU type/count from command line in GCE scripts
* Change CLI to input full leader machine type information with GPU
2018-09-27 11:55:56 -07:00
dbc1ffc75e
Use jsonrpc fork
2018-09-27 12:50:38 -06:00
1fdbe893c5
Improve game setup experience: X now shares game key and accepts O
2018-09-27 10:44:13 -07:00
55a542bff0
Fix erasure and cuda related compilation errors
2018-09-27 10:42:37 -06:00
e10574c64d
Remove recycler and it's usage
...
- The memory usage due to recycler was high, and incrementing with
time.
2018-09-27 10:42:37 -06:00
2e00be262e
Remove data from BankError.
...
This reduces how much memory is written to last_id_sigs table on very TX, and has a 40% impact on
`cargo +nightly watch -x 'bench bench_banking_stage'`
2018-09-27 09:07:56 -06:00
4172bde081
Only send a vote once a second
2018-09-27 09:06:41 -06:00
9c47e022dc
break dependency of programs on solana core ( #1371 )
...
* break dependency of programs on Solana core
2018-09-27 07:49:26 -07:00
874addc51a
Move KeyedAccount into Account
...
Now programs don't need to depend on dynamic_program and its
dependencies.
2018-09-26 20:40:40 -06:00
b7ae5b712a
Move Pubkey into its own module
2018-09-26 20:40:40 -06:00
c6d7cd2d33
Move Account into its own module
...
Also use default Default generator, since system program ID is
[0; 32]. Bank should probably be the one to set this anyway.
2018-09-26 20:40:40 -06:00
386a96b7e0
capture multinode logs by default ( #1367 )
2018-09-26 19:30:40 -07:00
b238c57179
Add trace! when an error is mapped to GenericFailure
2018-09-26 19:30:20 -07:00
1821e72812
Add getSignatureStatus
2018-09-26 19:00:34 -07:00
a23c230603
fix reverse loop in write_stage, simplify banking_stage, add tooling to help find this ( #1366 )
2018-09-26 18:37:24 -07:00
4e01fd5458
Update test to show when we should collect tx fees
...
See #1157 for details. The `from` account should be cloned
before execute_transaction(), and that's the only one that should
be stored if there's an error executing the program.
2018-09-26 19:30:27 -06:00
e416cf7adf
Let clients know when transactions failed
2018-09-26 19:30:27 -06:00
25edb9e447
fix benches
2018-09-26 19:29:46 -06:00
93c4f6c9b8
Synchronize PoH, bank last_id queue and ledger entry channel.
...
PoH, bank's last_id queue and the Entry channel need to have a synchronized order of ids.
2018-09-26 16:19:03 -07:00
718031ec35
Ignore the test_leader_to_validator_transition until it can handle PoH entries
2018-09-26 16:59:57 -06:00
d546614936
Handle deserialize failure with error
2018-09-26 15:17:07 -07:00
ac8d738045
Don't call unwrap() in StorageProgram::process_tx
2018-09-26 15:17:07 -07:00
ca962371b8
Fix build
...
Two PRs crossed in flight.
2018-09-26 14:40:48 -06:00
e6f8922e35
fix issue #1347 ( #1355 )
2018-09-26 13:31:39 -07:00
7292ece7ad
Free up term instruction for new multi-instruction feature
2018-09-26 14:17:15 -06:00
df3b78c18c
Move BudgetTransaction into its own module
2018-09-26 14:17:15 -06:00
c83dcea87d
Move SystemTransaction into its own module
2018-09-26 14:17:15 -06:00
be20c99758
Promote the one true transaction constructor
2018-09-26 14:17:15 -06:00
694add9919
Move budget-specific and system-specific tx constructors into traits
...
These functions pull in budget-specific and system-specific
dependencies that aren't needed by the runtime.
2018-09-26 14:17:15 -06:00
afc764752c
Permit testnets without a GPU
2018-09-26 10:37:41 -07:00
113c8b5880
Rollback jsonrpc SendTransaction pool for signature; ignore flaky tests
2018-09-26 10:25:29 -07:00
a5b28349ed
Add max entry height to download for replicator
2018-09-26 09:57:22 -07:00
bb7ecc7cd9
Migrate to solana-labs fork of jsonrpc
...
This changes aims to be a no-op. Future changes to rev should be
along the new solana-0.1 branch.
2018-09-26 10:08:37 -06:00
14bc160674
Clean up test and add signature return to rpc send tx
2018-09-25 16:38:51 -07:00
d438c22618
Update RFC
2018-09-25 16:38:51 -07:00
bcbae0a64f
Fix witness functionality
2018-09-25 16:38:51 -07:00
f636408647
Fix timestamp and cancel functionality
...
- Also serialize and send helper fn
2018-09-25 16:38:51 -07:00
3ffc7aa5bc
Add helper fn to get last id
2018-09-25 16:38:51 -07:00
7b7e8c0d3f
Clippy
2018-09-25 16:38:51 -07:00
11ea9e7c4b
Add cancelable handling
2018-09-25 16:38:51 -07:00
2b82121325
Fix wallet-sanity to reflect new wallet arg syntax
2018-09-25 16:38:51 -07:00
5038e5ccd7
Preliminary Wallet-Budget functionality
2018-09-25 16:38:51 -07:00
e943ed8caf
Expand parse_command and add tests
2018-09-25 16:38:51 -07:00
c196952afd
Flesh out Wallet CLI & add placeholder WalletCommands
2018-09-25 16:38:51 -07:00
e7383a7e66
Validator to leader ( #1303 )
...
* Add check in window_service to exit in checks for leader rotation, and propagate that service exit up to fullnode
* Added logic to shutdown Tvu once ReplicateStage finishes
* Added test for successfully shutting down validator and starting up leader
* Add test for leader validator interaction
* fix streamer to check for exit signal before checking socket again to prevent busy leaders from never returning
* PR comments - Rewrite make_consecutive_blobs() function, revert genesis function change
2018-09-25 15:41:29 -07:00
8a7545197f
move tick generation back to banking_stage, add unit tests ( #1332 )
...
* move tick generation back to banking_stage, add unit tests
fixes #1217
* remove channel() stuff for synchronous comm; use a mutex
2018-09-25 15:01:51 -07:00
680072e5e2
No need to special case vote failures
2018-09-25 13:43:35 -06:00
4ca377a655
Delete dead code
2018-09-25 13:43:35 -06:00
751dd7eebb
Move vote into ReplicateStage after process_entries
2018-09-25 13:43:35 -06:00
8f0e0c4440
Add tic-tac-toe program
2018-09-25 12:07:41 -07:00
50cf73500e
Remove rfc 004
2018-09-25 12:07:41 -07:00
db310a044c
Add Budget::And element, and supporting functions ( #1329 )
2018-09-25 12:38:13 -06:00
88a609ade5
groom write_stage
2018-09-25 00:18:35 -07:00
304d63623f
give replication some time to happen
...
fixes #1307
2018-09-24 23:57:09 -07:00
407b2682e8
remove dead code
2018-09-24 23:12:09 -07:00
0f4fd8367d
Add counters for channel pressure and time spent in TPU pipeline ( #1324 )
...
* Add counters for channel pressure and time spent in TPU pipeline
* Fixed failing tests
* Fix rust format issue
2018-09-24 17:13:49 -07:00
747ba6a8d3
Boot BudgetState::last_error
2018-09-24 17:14:23 -06:00
bb99fd40de
Update transaction status in the bank
...
This will allow jsonrpc to query the system to find out if a
recent transaction failed.
2018-09-24 17:14:23 -06:00
e972d6639d
Return errors from BudgetProgram::process_transaction
2018-09-24 17:14:23 -06:00
22e77c9485
Add a way of getting transaction errors out of the bank
2018-09-24 17:14:23 -06:00
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
95677a81c5
Pacify clippy
2018-09-24 13:36:31 -06:00
ea37d29d3a
Pass Bank::process_transactions() a reference to the txs instead of moving them
2018-09-24 13:36:31 -06:00
e030673c9d
Do a recv on join to prevent channel destruction ( #1320 )
...
before window thread join
2018-09-24 11:50:37 -07:00
3e76efe97e
Fix bench compilation ( #1311 )
2018-09-24 10:40:42 -07:00
f5a30615c1
Ignore replicator startup for now
2018-09-24 09:43:58 -06:00
e5e325154b
Add --shell argument
2018-09-24 08:05:47 -07:00
9e3d2956d8
remove last recycle?
2018-09-24 08:09:41 -06:00
26b1466ef6
Initial integration of dynamic contracts and native module loading ( #1256 )
...
* Integration of native dynamic programs
2018-09-23 22:13:44 -07:00
a1f01fb8f8
revert is_some to not is_none, causes test failure
2018-09-23 17:09:18 -06:00
b2be0e2e5e
fix clippy warning
2018-09-23 17:09:18 -06:00
1a45587c08
fix clippy warnings
2018-09-23 17:09:18 -06:00
3199f174a3
Add option to pass boot disk type to gce create ( #1308 )
2018-09-22 16:43:47 -07:00
a51c2f193e
fix Rob and Carl crossing wires
2018-09-21 21:37:25 -07:00
be31da3dce
lastidnotfound step 2: ( #1300 )
...
lastidnotfound step 2:
* move "record stage", aka poh_service into banking stage
* remove Entry.has_more, is incompatible with leader rotation
* rewrite entry_next_hash in terms of Poh
* simplify and unify transaction hashing (no embedded nulls)
* register_last_entry from banking stage, fixes #1171 (w00t!)
* new PoH doesn't generate empty ledger entries, so some fixes necessary in
multinode tests that rely on that (e.g. giving validators airdrops)
* make window repair less patient, if we've been waiting for an answer,
don't be shy about most recent blobs
* delete recorder and record stage
* make more verbost thin_client error reporting
* more tracing in window (sigh)
2018-09-21 21:01:13 -07:00
54b407b4ca
Wait on blob fetch before window, Seems to fix instability ( #1304 )
...
also cleanup ledger.
2018-09-21 18:56:20 -07:00
e87cac06da
Request/reqwest improvements
...
- Use json macro to simplify request builds
- Add proxy option for reqwest to use TLS
- Add rpc port options for configured nodes
2018-09-21 18:06:20 -06:00
ad4fef4f09
Doc for rpc_port configuration
2018-09-21 18:06:20 -06:00
e3b3701e13
Add RPC port option to fullnode
2018-09-21 18:06:20 -06:00
9228fe11c9
Port Wallet to jsonrpc and fix tests
2018-09-21 18:06:20 -06:00
5ab38afa51
Changed the window_service in Replicator to send entries instead of blobs ( #1302 )
2018-09-21 16:50:58 -07:00
e49b8f0ce7
Update poh_service.rs
2018-09-21 16:03:54 -07:00
c50ac96f75
Moved deserialization of blobs to entries from replicate_stage to window_service ( #1287 )
2018-09-21 16:01:24 -07:00
a9355c33b2
Placeholder storage contract and replicator client ( #1286 )
...
* Add hooks for executing the storage contract
* Add store_ledger stage
Similar to replicate_stage but no voting/banking stuff, just convert
blobs to entries and write the ledger out
* Add storage_addr to tests and add new NodeInfo constructor
to reduce duplication...
2018-09-21 15:32:15 -07:00
3dcee9f79e
Update poh_service.rs
2018-09-21 08:01:24 -07:00
2614189157
cargo fmt
2018-09-20 19:46:20 -07:00
beeb09646a
suppress warning: unused variable: recycler
2018-09-20 19:46:20 -07:00
67f1fbab5f
Treat rustc warnings as errors in CI
2018-09-20 19:46:20 -07:00
c0e7e43e96
fixup! s/contract/program
2018-09-20 19:33:54 -07:00
9bfead2e01
s/contract/program
2018-09-20 19:33:54 -07:00
6073cd57fa
Boot Recycler::recycle()
2018-09-20 17:08:51 -06:00
5174be5fe7
Rename getAccount to getAccountInfo
2018-09-20 15:18:56 -07:00
62a18d4c02
step one of lastidnotfound: record_stage->record_service, trim recorder to hashes ( #1281 )
...
step one of lastidnotfound
* record_stage->record_service, trim recorder to hashes
* doc updates, hash multiple without alloc()
cc #1171
2018-09-20 15:02:24 -07:00
a6c15684c9
Avoid panicking invalid instructions
2018-09-20 14:08:39 -07:00
5691bf557c
Handle bad account userdata better
2018-09-20 14:08:39 -07:00
8f01f7cf21
Trace syscalls for more helpful logs
2018-09-20 14:08:39 -07:00
bb8c94ad2c
Add getAccount JSON RPC request
2018-09-20 13:58:15 -07:00
d98e35e095
Delete no longer used PaymentPlan trait
2018-09-20 14:22:45 -06:00
3163fbad0e
Remove 'Plan' indirection since it's implied by BUDGET_CONTRACT_ID
2018-09-20 14:22:45 -06:00
0172422961
Require a self-assigned account ID
2018-09-20 14:16:14 -06:00
8ccfb26923
tests for my IP picker
2018-09-20 09:21:09 -07:00
12a474b6ee
sort local interfaces before selecting one
2018-09-20 09:21:09 -07:00
270fd6d61c
Fix compiler warnings
2018-09-20 09:47:36 -06:00
7b9c7d4150
Cleaned up find_leader_rotation function. Added testing for WriteStage find_leader_rotation_index() function ( #1276 )
2018-09-19 18:16:00 -07:00
55126f5fb6
Marked Tvu functionality in Fullnode as unused for now
2018-09-19 16:05:31 -07:00
431692d9d0
Use a Drop trait to keep track of lifetimes for recycled objects.
...
* Move recycler instances to the point of allocation
* sinks no longer need to call `recycle`
* Remove the recycler arguments from all the apis that no longer need them
2018-09-19 16:59:42 -06:00
6732a9078d
Clarify AfterTimestamp wire format
2018-09-19 13:28:35 -07:00
2981076a14
Add solana-upload-perf to parse json from bench and upload to influx ( #1166 )
2018-09-19 13:16:55 -07:00
5740ea3807
RFC 006: Wallet CLI
2018-09-19 12:10:53 -06:00
cd2d50e06c
Changed transition to restart Rpu rather than modify bank to prevent lock contention
2018-09-19 10:48:05 -06:00
8c8a4ba705
debugging commit
2018-09-19 10:48:05 -06:00
b10de40506
Made LEADER_ROTATION_INTERVAL settable so that integration tests don't time out
2018-09-19 10:48:05 -06:00
2030dfa435
Implement PR comments, tidy up
2018-09-19 10:48:05 -06:00
bfe64f5f6e
Added integration test for transitioning leader to validator to see that tpu pipeline can exit and restart a tvu. Fixed Tpu and broadcast stage so that exiting later stages in the pipeline also causes earlier stages to exit.
2018-09-19 10:48:05 -06:00
6d27751365
give fullnode ownership of state needed to dynamically start up a tpu or tvu for role transition
2018-09-19 10:48:05 -06:00
1fb1c0a681
added jointypes to the stages in the tpu involved in leader rotation
2018-09-19 10:48:05 -06:00
062f654fe0
formatted code
2018-09-19 10:48:05 -06:00
d3cb161c36
Added broadcast stage test for leader rotation exit
2018-09-19 10:48:05 -06:00
98b47d2540
Added check in broadcast stage to exit after transmitting last blob before leader rotation. Also added tests
2018-09-19 10:48:05 -06:00
f28ba3937b
Added check in write stage to exit when scheduled entry_height for leader rotation is detected
2018-09-19 10:48:05 -06:00
91cf14e641
Rewrote service trait join() method to allow thread join handles to return values other than ()
2018-09-19 10:48:05 -06:00
7601a8001c
Update reqwest requirement from 0.8.6 to 0.9.0
...
Updates the requirements on [reqwest](https://github.com/seanmonstar/reqwest ) to permit the latest version.
- [Release notes](https://github.com/seanmonstar/reqwest/releases )
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/reqwest/commits/v0.9.0 )
Signed-off-by: dependabot[bot] <support@dependabot.com >
2018-09-19 10:47:02 -06:00
0ee6c5bf9d
Read multiple entries in write stage ( #1259 )
...
- Also use rayon to parallelize to_blobs() to maximize CPU usage
2018-09-18 21:45:49 -07:00
6dee632d67
Remove Signature from ApplySignature
2018-09-18 20:00:42 -07:00
51e5de4d97
Log specific send_transaction error messages
2018-09-18 16:17:08 -07:00
1f08b22c8e
Tweak log messages
2018-09-18 16:17:08 -07:00
83ae5bcee2
Detect binary changes in serialized contract userdata
2018-09-18 16:17:08 -07:00
339a570b26
Update comment
2018-09-18 16:17:08 -07:00
5310b6e5a2
Move entry->blob creation out of write stage ( #1257 )
...
- The write stage will output vector of entries
- Broadcast stage will create blobs out of the entries
- Helps reduce MIPS requirements for write stage
2018-09-18 13:49:10 -07:00
7d14f44a7c
Move register_entry_id() call out of write stage ( #1253 )
...
* Move register_entry_id() call out of write stage
- Write stage is MIPS intensive and has become a bottleneck for
TPU pipeline
- This will reduce the MIPS requirements for the stage
* Fix rust format issues
2018-09-18 11:42:25 -07:00
c830eeeae4
Update RELEASE.md
2018-09-18 10:31:26 -07:00
157fcf1de5
initial RELEASE.md ( #1244 )
...
initial RELEASE.md and RELEASE_TEMPLATE.md
2018-09-18 10:23:15 -07:00
e050160ce5
Use tagged perf-libs to enable controlled updates
2018-09-18 09:21:44 -07:00
f273351789
Add missing port number
2018-09-18 09:36:54 -06:00
aebf7f88e5
Various spelling fixes
2018-09-17 19:37:59 -07:00
aac1571670
mint now uses the SystemContract instead of Budget
2018-09-17 18:02:40 -07:00
8bae75a8a6
system contract tests
2018-09-17 14:34:55 -07:00
c2f7ca9d8f
Change process_command return type and improve test
2018-09-17 13:45:47 -07:00
6ec0e42220
budget as separate contract and system call contract ( #1189 )
...
* budget and system contracts and verification
* contract check_id methods
* system call contract
* verify contract execution rules
* move system into its own file
* allocate before transfer for budget
* store error in budget context
* budget contract and tests without bank
* moved budget of of bank
2018-09-17 13:36:31 -07:00
072b244575
Add perf counters for record/write stages ( #1240 )
2018-09-17 11:07:04 -07:00
7ac9d6c604
Create keygen helper function for use in Wallet CLI, print keypair statement
2018-09-17 11:53:33 -06:00
0125163190
Remove wallet.sh, update entrypoint syntax for wallet network argument
2018-09-17 11:53:33 -06:00
a06f4b1d44
Update wallet to trigger keygen if no keypair provided and no keypair found in default location
2018-09-17 11:53:33 -06:00
10daa015c4
Simplify timeout arg
2018-09-17 11:53:33 -06:00
0babee39a4
Update wallet to take network arg
2018-09-17 11:53:33 -06:00
7c08b397eb
Update testnet documentation
2018-09-17 09:26:25 -07:00
155ee8792f
Add GPU support to ec2-provider
2018-09-17 09:26:25 -07:00
f89f121d2b
Add AWS EC2 support
2018-09-17 09:26:25 -07:00
27986d7abb
Standardize CLI help text
2018-09-16 15:17:10 -06:00
8b7edc6d64
Alphabetize
2018-09-16 15:17:10 -06:00
7dfab867fe
Mark --outfile parameter as required
2018-09-16 10:49:02 -07:00
fd36954477
clippy
2018-09-15 05:12:53 -06:00
fd51599fa8
Replace replace(..., None) with take()
...
This is strictly for simplicity, since Option::take() is imlemented with replace().
2018-09-15 05:12:09 -06:00
3ca80c676c
Disable large-network until it's fixed
2018-09-14 20:13:17 -07:00
be7cce1fd2
Tweak GCE scripts for higher node count ( #1229 )
...
* Tweak GCE scripts for higher node count
- Some validators were unable to rsync config from leader when
the node count was high (e.g. 25). Looks like the leader node was
getting more rsync requests in parallel than it count handle.
- This change staggers the validators bootup, and rsync time
* Address review comments
2018-09-14 17:17:08 -07:00
e142aafca9
Use multiple sockets for receiving blobs on validators ( #1228 )
...
* Use multiple sockets for receiving blobs on validators
- The blobs that are broadcasted by leader or retransmitted by peer
validators are received on replicate_port
- Using reuse_addr/reuse_port, multiple sockets can be opened for
the same port
- This allows the kernel to queue data to user space app on multiple
socket queues, preventing over-running one queue
- This helps with reducing packets dropped due to queue over-runs
Fixes #1224
* Fixed failing tests
2018-09-14 16:56:06 -07:00
4196cf43e8
cargo fmt
2018-09-14 16:37:49 -07:00
a344eb7dd0
Upgrade rust stable to 1.29
2018-09-14 16:37:49 -07:00
d12537bdb7
Include UDP sent statistics in net stats ( #1225 )
2018-09-14 13:32:13 -07:00
bcb3b3c21f
Add integration tests to wallet module
2018-09-14 08:21:33 -06:00
d8c9a1aae9
Add method to run local drone for tests
2018-09-14 08:21:33 -06:00
9ca2f5b3f7
Move all handling except network/gossip from /bin to wallet module
2018-09-14 08:21:33 -06:00
9e24775051
update README with v0.8 and update demo scripts to match
2018-09-13 18:37:37 -07:00
4dc30ea104
Add recycler stats ( #1187 )
2018-09-13 14:49:48 -07:00
90df6237c6
Implements recvmmsg() for UDP packets ( #1161 )
...
* Implemented recvmmsg() for UDP packets
- This change implements binding between libc API for recvmmsg()
- The function can receive multiple packets using one system call
Fixes #1141
* Added unit tests for recvmmsg()
* Added recv_mmsg() wrapper for non Linux OS
* Address review comments for recvmmsg()
* Remove unnecessary imports
* Moved target specific dependencies to the function
2018-09-13 14:41:28 -07:00
80caa8fdce
add back some defaults for client.sh
2018-09-13 14:05:53 -07:00
8706774ea7
Rewrote service trait join() method to allow thread join handles to return values other than () ( #1213 )
2018-09-13 14:00:17 -07:00
1d7e87d430
Increase number of sockets for transaction processing
2018-09-13 14:22:07 -06:00
1a4cd763f8
Fix missing recycle in recv_from ( #1205 )
...
In the error case that i>0 (we have blobs to send)
we break out of the loop and do not push the allocated r
to the v array. We should recycle this blob, otherwise it
will be dropped.
2018-09-13 08:29:18 -07:00
ee74b367ce
Add docker install script
2018-09-12 17:09:37 -07:00
f06113500d
bench-tps/net sanity: add ability to check for unexpected extra nodes
2018-09-12 15:38:57 -07:00
9ab5692acf
fix "leak" in Blob::recv_from ( #1198 )
...
* fix "leak" in Blob::recv_from
fixes #1199
2018-09-12 14:45:43 -07:00
e7a910b664
v0.9
2018-09-12 10:27:33 -07:00
b52230097e
groom Fullnode's new_with_bank() to match new() more
2018-09-12 09:24:42 -07:00
a8fdb8a5a7
use a single BlobRecycler per fullnode
2018-09-11 16:56:54 -07:00
297f859631
Change '>=' back to '>' to fix recycling of blobs/packets ( #1192 )
...
Recycler will have a strong ref to the item so it will be at
least 1, >= will always prevent recycling.
2018-09-11 16:52:45 -07:00
5d19b799af
Fix snap configuration for netstat daemon ( #1190 )
...
- Also increased the frequency at which the stats are sent
- Fixed file permissions for snapcraft.yaml
2018-09-11 14:49:05 -07:00
af3eb5a16c
.sh
2018-09-11 11:29:49 -07:00
b313b7f6f9
Revert "move rpc_server to drop() semantics instead of having its own thread"
...
This reverts commit 40aa0654fa
.
2018-09-10 22:48:33 -07:00
016ee36808
remove -x
2018-09-10 21:40:14 -07:00
c3fc98c48f
use gossip to find the leader for every airdrop request
2018-09-10 21:29:45 -07:00
40aa0654fa
move rpc_server to drop() semantics instead of having its own thread
2018-09-10 20:25:53 -07:00
bace2880d0
Correct spelling
2018-09-10 19:58:21 -07:00
9d80eefb81
Log the number of accounts each 250k txes ( #1178 )
2018-09-10 17:40:00 -07:00
1c17c6dd2b
Report UDP network statistics ( #1176 )
...
* Report UDP network statistics
Fixes #1093
* Address review comments
* Address additional review comments
* Fix shellcheck errors
2018-09-10 15:52:08 -07:00
2be0dbddbb
Correct spelling
2018-09-10 13:48:43 -07:00
a91b785ba5
move fullnode trace generation into crdt
2018-09-10 13:47:57 -07:00
0ef05de889
Add sleep to prevent spinning thread
2018-09-10 12:50:28 -07:00
a093d5c809
Fix erasure build
2018-09-10 11:40:26 -06:00
fc64e1853c
Initialize Window, not SharedWindow
...
Wrap with Arc<RwLock>> when/if needed, no earlier.
2018-09-10 11:40:26 -06:00
7f669094de
Split window into two modules
2018-09-10 11:40:26 -06:00
5025d89c88
Inline window method implementations
2018-09-10 11:40:26 -06:00
2b44c4504a
Use WindowUtil for more idiomatic code
2018-09-10 11:40:26 -06:00
d2c9beb843
Add a trait to pretend Window is an object
2018-09-10 11:40:26 -06:00
9e6d3bf532
Correct spelling
2018-09-10 09:29:01 -07:00
a89b611e9e
comments ( #1165 )
2018-09-09 07:07:38 -07:00
ebcac3c2d1
Use a common solana user on all testnet instances
2018-09-08 22:34:26 -07:00
7029e4395c
Fix OOM reporting
2018-09-08 18:57:31 -07:00
5afcdcbbe6
More log grooming
2018-09-08 14:16:34 -07:00
3840b4b516
Groom log output
2018-09-08 14:10:18 -07:00
7aeb6d642b
Display log file
2018-09-08 13:59:45 -07:00
1d6c4aacae
Retry rsync a couple times before failing
2018-09-08 13:59:45 -07:00
9f5c86e60c
Install earlyoom at gce instance startup
2018-09-08 13:59:45 -07:00
9f413fd656
Establish net/scripts/... for better scoping
2018-09-08 13:59:45 -07:00
97c3125a78
improve localnet-sanity's robustness ( #1160 )
...
* fix poll_gossip_for_leader() loop to actually wait
for 30 seconds
* reduce reuseaddr use to only when necessary,
try to avoid already bound sockets
* move nat.rs to netutil.rs
* add gossip tracing to thin_client and bench-tps
2018-09-09 04:50:43 +09:00
a77aca75b2
Add NO_VALIDATOR_SANITY back
2018-09-07 22:37:05 -07:00
96bfd9478b
make all the nodes have a pretty seq id ( #1159 )
2018-09-08 14:18:18 +09:00
e8206cb2d4
Echo the network address before entering a quiet polling loop
2018-09-07 21:20:00 -07:00
c3af0d9d25
Improve client.log
2018-09-07 21:20:00 -07:00
932c994dc9
Use new bench-tps command-line args
2018-09-07 21:20:00 -07:00
c34d911eaf
Migrate Budget DSL to use the Account state ( #979 )
...
* Migrate Budget DSL to use the Account state instead of global bank data structures.
* Serialize Instruction into Transaction::userdata.
* Store the pending set in the Account::userdata
* Enforce the token balance rules on contract execution. This becomes the entry point for generic contracts.
* This pr will have a performance impact on the bank. The next set of changes will fix this by locking each account during multi threaded execution of all the contracts.
* With this change a contract transaction needs to store its state under an address. That address could be the destination of the tokens, or any random address. For the latter, an extra step would be needed to claim the tokens which isn't implemented by budget_dsl at the moment.
* test tracking issue 1157
2018-09-07 20:18:36 -07:00
ddd1871840
Install libssl1.1 for solanalabs/rust docker image compat
2018-09-07 19:57:41 -07:00
db825788fa
Document how to get ssh access into CD testnets
2018-09-07 19:41:13 -07:00
b1b03ec13b
Refine docker image tagging to avoid breaking stabilization branches on updates
2018-09-07 18:42:25 -07:00
73a8441add
/var/snap is not writable by most users
2018-09-07 17:41:20 -07:00
bf29590f41
WSL needs ReuseAddr in addition to ReusePort (which it doesn't honor) ( #1149 )
2018-09-08 07:28:22 +09:00
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
5169c8d08f
Add method to return hash of bank state
2018-09-07 15:38:53 -06:00
0d945e6a92
Groom testnet-sanity logging
2018-09-07 12:45:48 -07:00
1090254ba5
Add datapoints for leader/validator start
2018-09-07 12:45:48 -07:00
e51445d857
🙃
2018-09-07 12:24:34 -07:00
4b47abd3bf
Fix --num-nodes argument parsing
2018-09-07 12:20:42 -07:00
71a617b4dc
Fix erasure build
2018-09-07 13:18:19 -06:00
a722802c95
Window write lock to read lock
2018-09-07 13:18:19 -06:00
e9f44b6661
window -> window_service
2018-09-07 13:18:19 -06:00
9693de1867
Reposition parameters
2018-09-07 13:18:19 -06:00
f7ea95aed1
Hoist lock, reposition parameters
2018-09-07 13:18:19 -06:00
f07ce59be8
Toggle parameters
2018-09-07 13:18:19 -06:00
da423b6cf0
Hoist read lock
2018-09-07 13:18:19 -06:00
d5f60b68e4
Hoist window write lock
2018-09-07 13:18:19 -06:00
78b3a8f7f9
Hoist repair_window() branches
...
This probably would have been done if repair_window() was unit-tested.
2018-09-07 13:18:19 -06:00
d77699c126
Do the easy check first
...
All functions above operate on immutable values, so this shouldn't
change functionality, but no repair_window() tests to be certain.hI
2018-09-07 13:18:19 -06:00
09ba0dae15
Remove redundant clone()
2018-09-07 13:18:19 -06:00
a5c7575207
Rewrite find_next_missing, call it clear_slots
2018-09-07 13:18:19 -06:00
50f040530b
Remove redundant cast
2018-09-07 13:18:19 -06:00
7f99c90539
Simplify using early return and Result::ok()
2018-09-07 13:18:19 -06:00
d8564b725c
Don't reference window to get each slot
2018-09-07 13:18:19 -06:00
e4de25442a
Hoist write lock
...
It needed to be passed the lock before, because it contained a
branch where one side didn't require locking. Now that that
defensive programming was hoisted, we can hoist the write lock
as well, leaving a simpler function for unit testing.
2018-09-07 13:18:19 -06:00
3b2ea8fd40
Hoist untested branch in window
...
If there were unit tests for this function, the author would have
written it this way to make their own life easier.
2018-09-07 13:18:19 -06:00
9a1832ed61
Bump ping timeout
2018-09-07 12:01:43 -07:00
9e45f1f5e2
Doc fixup
2018-09-07 12:01:43 -07:00
ee682d5bc3
Move wallet-sanity.sh out of multinode-demo/
2018-09-07 12:01:43 -07:00
05decc863f
Make set -x more buildkite friendly
2018-09-07 12:01:43 -07:00
506a81e8cc
Assume -y
2018-09-07 12:01:43 -07:00
dcb30a8489
Delete leader node first
2018-09-07 12:01:43 -07:00
a2631e89f6
Use consistent style
2018-09-07 12:01:43 -07:00
ab208ddb77
Clean up arg handling
2018-09-07 12:01:43 -07:00
09a48d773a
Run bench-tps in a tmux
2018-09-07 12:01:43 -07:00
88298bf321
Add -n option
2018-09-07 12:01:43 -07:00
d252f7f687
Revert "Default to 10 validators"
...
This reverts commit ed5fbaef06
.
2018-09-07 12:01:43 -07:00
533ebc17f2
Install multilog automatically on a CI machine
2018-09-07 11:56:23 -07:00
f4947236dc
Keep cargo-target-cache size under 6GB-ish
2018-09-07 11:45:27 -07:00
e088833b81
s/create/start/
2018-09-06 21:07:11 -07:00
53e16f68d9
Improve error handling
2018-09-06 20:57:05 -07:00
ed5fbaef06
Default to 10 validators
2018-09-06 20:46:49 -07:00
b1bacf12a6
Add some log sections
2018-09-06 20:38:11 -07:00
66ff602659
Rewrite ci/testnet-{deploy,sanity}.sh in terms of net/ primitives
2018-09-06 19:54:39 -07:00
e175c9dea9
Remove ip address hardcode. Fixes #959
2018-09-06 19:54:39 -07:00
5a57d9b5d9
de-y
2018-09-06 19:54:39 -07:00
03e87e4169
Add more metrics
2018-09-06 19:54:39 -07:00
abfff66d53
Retry ssh a couple times before giving up
2018-09-06 19:54:39 -07:00
31dee553d5
Split start/version reporting
2018-09-06 19:54:39 -07:00
9ca6a2d25b
Configure boot disk size
2018-09-06 19:54:39 -07:00
a3178c3bc7
Remove unused name tag
2018-09-06 19:54:39 -07:00
aa07bdfbaa
Optionally suppress delete confirmation
2018-09-06 19:54:39 -07:00
eaef9be710
Clarify -f
2018-09-06 19:54:39 -07:00
cae345b416
Allow - in prefix
2018-09-06 19:54:39 -07:00
acb1171422
Add -e option
2018-09-06 19:54:39 -07:00
52d8f293b6
Add links to citations
...
And fix hyphens in quote.
2018-09-06 20:41:05 -06:00
636eb8d058
Add Leslie Lamport quote to README
2018-09-06 20:41:05 -06:00
0fa27f65bb
Use the default Pubkey formatter instead of debug_id()
2018-09-06 16:31:47 -06:00
8f94e3f7ae
Buffer tokens when switching directions to prevent errors ( #1126 )
...
Even if transactions are dropped, accounts will have buffer
of tokens. Should reduce or eliminate AccountNotFound errors seen in the
leader while bench-tps is running.
2018-09-06 14:20:01 -07:00
05460eec0d
Open multiple sockets for transaction UDP port ( #1128 )
...
* Reuse UDP port and open multiple sockets for transaction address
* Fixed failing crdt tests
* Add tests for reusing UDP ports
* Address review comments
* Updated bench-streamer to use multiple receive sockets
* Fix minimum number of recv sockets for bench-streamer
* Address review comments
Fixes #1132
* Moved bind_to function to nat.rs
2018-09-06 14:13:40 -07:00
072d0b67e4
Send deploy metrics to the testnet-specific database
2018-09-06 08:30:03 -07:00
fdc48d521c
use USER instead of whoami ( #1134 )
...
* use USER instead of whoami
make gcloud_FigureRemoteUsername robust against unsolicited output
(that I get on login ;) )
validate --prefix argument
* Update gcloud.sh
2018-09-07 00:18:05 +09:00
6560b0e2cc
s/whoami/id -un/
2018-09-05 14:26:21 -07:00
ec38dba209
GCE leader nodes can now be provisioned with a static IP address
2018-09-05 14:26:21 -07:00
d9e4bce6ad
Add drop stats to bench-tps ( #1127 )
...
See how many transactions made it through
2018-09-05 11:58:41 -07:00
1fd4343621
Add total count to stat ( #1124 )
2018-09-05 09:28:18 -07:00
8d87627a49
t
2018-09-05 09:09:50 -07:00
aacf27fb76
Add convienience link to current Snap log files
2018-09-05 09:02:02 -07:00
a51536d107
Add log tail hint
2018-09-05 09:02:02 -07:00
1c874fbc1b
Make This is little more hacky
2018-09-05 09:02:02 -07:00
0362169671
Better scope leader and validator setup
2018-09-05 09:02:02 -07:00
e2e569cb43
Set rsync url for local deployments
2018-09-05 09:02:02 -07:00
8c51b47e85
Preserve existing ssh config
2018-09-05 09:02:02 -07:00
017eb10e76
Add file header doc
2018-09-05 09:02:02 -07:00
f50aeb0e58
Always add perf-libs to LD_LIBRARY_PATH
2018-09-05 09:02:02 -07:00
48c19d3100
Enable cargo features to be specified
2018-09-05 09:02:02 -07:00
aaf0a23134
Add Tips section
2018-09-05 09:02:02 -07:00
89db85dbf9
Work around concurrent |gcloud compute ssh| terminal issue
2018-09-05 09:02:02 -07:00
e677cda027
Private IP networks now work, and are the default
2018-09-05 09:02:02 -07:00
db9219ccc8
Improve error monitoring
2018-09-05 09:02:02 -07:00
06fd945f85
Set node config correctly
2018-09-05 09:02:02 -07:00
6ad4a81123
s/_/-/g in filenames
2018-09-05 09:02:02 -07:00
bcaa0fdcb1
net/ can now deploy Snaps
2018-09-05 09:02:02 -07:00
2cb1375217
Run gcloud_PrepInstancesForSsh in parallel
2018-09-05 09:02:02 -07:00
9365a47d42
Employ a startup script
2018-09-05 09:02:02 -07:00
6ffe205447
Add -g option
2018-09-05 09:02:02 -07:00
ec3e62dd58
Add net/ sanity
2018-09-05 09:02:02 -07:00
fa07c49cc9
net/ can now deploy Snaps
2018-09-05 09:02:02 -07:00
449d7042f0
Configure metrics correctly
2018-09-05 09:02:02 -07:00
7e2b65374d
gce instance types are now configurable
2018-09-05 09:02:02 -07:00
8e39465700
Drop .sh extension to hide from shellcheck
2018-09-05 09:02:02 -07:00
43b4207101
Run oom-monitor in net/ testnets
2018-09-05 09:02:02 -07:00
ff991b87da
Add support for deploying from non-Linux machines
2018-09-05 09:02:02 -07:00
c81c19234f
Improve incremental speed of docker cargo builds outside of CI
2018-09-05 09:02:02 -07:00
399caf343c
Morph gce_multinode-based scripts into net/
2018-09-05 09:02:02 -07:00
ffb72136c8
Remove account from balances table after error seen ( #1120 )
...
If balance goes to 0, then bank removes the account
from it's account table and returns no account error. Thin client
should also update the account to this state or it will
still have the cached balance from the last successful get_balance().
2018-09-04 21:33:19 -07:00
1a615bde2b
Update README.md ( #1117 )
...
* Update README.md
* Fix spelling
* Improved punctuation
2018-09-04 20:41:11 -07:00
cf2626a1c5
Update instructions to upgrade nightly docker image
2018-09-04 20:56:40 -06:00
68c72d6f34
Fix nightly build
2018-09-04 20:56:40 -06:00
65f78905cd
Install cargo-cov on latest nightly
2018-09-04 20:56:40 -06:00
70a8ae4612
Fixed private IP variable in gcloud script ( #1119 )
2018-09-04 16:24:19 -07:00
d82ec2634c
Fix is_leader boolean ( #1115 )
...
A node is the leader if the address is none
2018-09-04 13:38:24 -07:00
b4a7a18334
Update README.md
2018-09-04 13:29:00 -07:00
c44c5f0b09
take into account size of an Entry ( #1116 )
2018-09-05 05:07:58 +09:00
226d3b9471
Trace recycle() calls ( #968 )
...
* trace recycle() calls fixes #810
2018-09-05 05:07:02 +09:00
2752bde683
Print to indicate what drone is doing while waiting for gossip
2018-09-04 13:45:08 -06:00
b8816d722c
Fix Block::to_blobs() benchmark
...
16% speedup, w00t!
name control ns/iter variable ns/iter diff ns/iter diff % speedup
bench_block_to_blobs_to_block 29,897 25,807 -4,090 -13.68% x 1.16
2018-09-04 07:50:23 -10:00
2aa72cc72e
Return a Vec from to_blobs() instead of using a mut parameter
2018-09-04 07:50:23 -10:00
8cc030ef84
Use Vec instead of VecDeque for SharedBlobs
2018-09-04 07:50:23 -10:00
9a9f89293a
Better error handling messages for airdrops
2018-09-04 06:46:43 -10:00
501deeef56
accounts should never be negative ( #1083 )
2018-09-04 06:43:18 -10:00
05f921d544
Don't call println in the test suite
2018-09-04 06:01:32 -10:00
ab7a2960b1
Don't use product name in solana library
2018-09-04 06:01:32 -10:00
4e2deaa33b
Less mut
2018-09-04 06:01:32 -10:00
d5ef18337c
Remove redundant return value
...
And don't log the same error twice.
2018-09-04 06:01:32 -10:00
d18ea501b7
Minimize unsafe code
2018-09-04 06:01:32 -10:00
c9a1ac9b8c
Don't propogate errors we'll never handle
2018-09-04 06:01:32 -10:00
c2a4cb544e
Borrow, don't clone entries
2018-09-04 06:01:32 -10:00
3ab12076e8
Convert voting functions to methods
...
More idiomatic Rust.
2018-09-04 05:53:58 -10:00
6a383c45fc
Update sendTransaction example to reflect new array size
2018-09-04 05:44:10 -10:00
7cc27e7bd1
Doc requestAirdrop rpc method
2018-09-04 05:44:10 -10:00
0464087327
Add api definitions
2018-09-04 05:44:10 -10:00
c193c7de12
Add JSON-RPC API Documentation
2018-09-04 05:44:10 -10:00
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
a99dbb2a0c
set -x in client.sh
2018-09-04 11:55:04 +09:00
e834c76b40
--count => --num-nodes
2018-09-04 07:07:25 +09:00
7b3c7f148b
supply leader and leader_address
2018-09-02 02:27:05 +09:00
fb4b33b81b
make the repair_backoff test more robust ( #1095 )
...
* more the repair_backoff test more robust
* fix names and magic numbers
2018-08-31 12:40:56 -10:00
25d7dc7b96
fixups
2018-09-01 04:38:18 +09:00
d1f1cbe88f
leader-address=>leader-ip
2018-09-01 04:38:18 +09:00
a4e7b6e90c
more fixups for client.sh changes
2018-09-01 03:33:21 +09:00
fbc7c9c431
fix client_start to deal with new client.sh
2018-09-01 03:23:05 +09:00
8b248dcf09
specify port
2018-09-01 02:56:24 +09:00
4938aad939
fixups
2018-09-01 02:21:46 +09:00
7e882dfe62
inform all snaps where the network is
2018-09-01 02:21:46 +09:00
5c8cb96f88
rebase fixup
2018-08-31 23:21:07 +09:00
9d1eb4f9ea
remove 'localhost' leader (redundant, un-dig-friendly)
2018-08-31 23:21:07 +09:00
210a4d0640
fixup
2018-08-31 23:21:07 +09:00
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
eb4e5a7bd0
fixups
2018-08-31 23:21:07 +09:00
ba27596076
fixups
2018-08-31 23:21:07 +09:00
63e44dcc35
continue rendezvous refactor for gossip and repair
...
* remove trailing whitespace in ci/audit.sh
* code review fixups
* rename GOSSIP_PORT_RANGE => SOLANA_PORT_RANGE
* remove out-of-date TODO in localnet-sanity.sh
* remove features=test and code that was using it (localhost prohibitions in
crdt) added TODO in crdt.rs, maybe we should boot localhost in production
networks?
* boot tvu_window from NodeInfo: instead, send repair requests from the repair
socket (to gossip on peer) and answer repair requests via the sockaddr
from the repair request
* remove various unused pub functions
* banish SocketAddr parse().unwrap() to a macro that can also accept simpler stuff
2018-08-31 23:21:07 +09:00
c0ba676658
fixup
2018-08-31 23:21:07 +09:00
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
cb52a335bd
re-enable localnet-sanity
2018-08-31 23:21:07 +09:00
e308a4279e
Update RPC requestAirdrop endpoint to return airdrop tx signature
2018-08-28 18:27:41 -06:00
513a934ff6
Update request_airdrop utility function to pass along airdrop tx signature
2018-08-28 18:27:41 -06:00
77d820c842
Update drone module to return airdrop tx signature
2018-08-28 18:27:41 -06:00
30cbe7c6a9
Update jsonrpc crate version
2018-08-28 18:27:24 -06:00
18ef643dc7
Keep locals local
2018-08-28 08:11:44 -07:00
73a0bf8d30
Avoid unbounded /var/tmp growth
2018-08-28 08:11:44 -07:00
9d53208d68
Use gcloud_DeleteInstances
2018-08-28 08:11:44 -07:00
d26f135159
Find metrics-write-datapoint.sh again
2018-08-27 22:41:58 -07:00
c8e3ce26a9
Start of scripts/gcloud.sh
2018-08-27 22:35:14 -07:00
f88970a964
source oom-score-adj.sh from validator.sh
2018-08-28 10:01:41 +09:00
51d911e3f4
Update testnet-sanity.sh
2018-08-27 15:44:10 -07:00
bd5c6158ae
Move some common scripts from multinode-demo/ to scripts/
2018-08-27 13:52:38 -07:00
cd0db7842c
Remove unused _config.yml
2018-08-27 13:52:38 -07:00
31d1087103
Documentation
2018-08-27 13:52:38 -07:00
0efd64df6f
no need for sudo, move ledger copy out of SNAP_DATA
2018-08-28 05:42:05 +09:00
28bdf346f6
clean up after ledger sanity
2018-08-28 05:42:05 +09:00
48762834d9
Randomize repair requests ( #1059 )
...
* randomize packet repair requests
* exponential random repair requests
* use gen_range to get a uniform distribution
2018-08-27 07:05:48 -07:00
8d0d429acd
update
2018-08-26 23:34:25 -07:00
e5408368f7
fmt
2018-08-26 22:35:26 -07:00
61492fd27e
exit if no leader
2018-08-26 22:35:26 -07:00
bbce08a67b
bench needs to discover leader as well
2018-08-26 22:35:26 -07:00
a002148098
retry transfer and poll
2018-08-26 16:10:46 -07:00
90ae662e4d
Fix packet header offset
...
And update transaction offsets to use the same approach as packet.rs.
Maybe this should be serialized_size(), but thanks to this
GenericArray update, those values are the same.
2018-08-26 14:27:19 -06:00
60d8f5489f
Update transaction layout offsets
...
24 less bytes in minimal transactions. 10% TPS boost?
2018-08-26 14:27:19 -06:00
59dd8b650d
Update generic-array requirement from 0.11.1 to 0.12.0
...
Updates the requirements on [generic-array](https://github.com/fizyk20/generic-array ) to permit the latest version.
- [Release notes](https://github.com/fizyk20/generic-array/releases )
- [Changelog](https://github.com/fizyk20/generic-array/blob/master/CHANGELOG.md )
- [Commits](https://github.com/fizyk20/generic-array/commits )
Signed-off-by: dependabot[bot] <support@dependabot.com >
2018-08-26 14:27:19 -06:00
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
5b0bb7e607
Skip invalid nodes for finality ( #1068 )
...
* skip invalid nodes for finality
* check valid last_ids only
* fixup!
* fixup!
2018-08-25 23:12:41 -07:00
f7c0d30167
Disallow localhost in deployment ( #1064 )
...
* disallow localhost in deployment
* tests
* fmt
* integration tests do not have a flag to check
* fmt
2018-08-25 21:09:18 -07:00
8e98c7c9d6
fix purge test
2018-08-25 19:56:09 -07:00
50661e7b8d
Added poll_balance_with_timeout method ( #1062 )
...
* Added poll_balance_with_timeout method
- updated bench-tps, fullnode and wallet to use this method instead
of repeatedly calling poll_get_balance()
* Address review comments
- Revert some changes to use wrapper poll_get_balance()
* Reverting bench-tps to use poll_get_balance
- The original code is checking if the balance has been updated,
instead of just retrieving the balance. The logic is different
than poll_balance_with_timeout()
* Reverting wallet to use poll_get_balance
- The break condition in the loop is different than poll_balance_with_timeout().
It's checking if the balance has been updated.
2018-08-25 18:24:25 -07:00
ad159e0906
Fix crash in fullnode when poll_get_balance() returns error ( #1058 )
2018-08-25 15:25:13 -07:00
d3fac8a06f
Dynamically bind to available UDP ports in Fullnode ( #920 )
...
* Dynamically bind to available UDP ports in Fullnode
* Added tests for dynamic port binding
- Also removed hard coding of port range from CRDT
2018-08-25 10:24:16 -07:00
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
de379ed915
Fix sig verify counters to be unique and tweak perf counters ( #1056 )
...
print events and add current events to old value to report
2018-08-24 16:05:32 -07:00
d4554c6b78
RFC Branches, Channels, and Tags
2018-08-23 21:28:05 -07:00
6fc21a4223
Don't hang in transaction_count ( #1052 )
...
Situation is there can be that there can be bad entries in
the bench-tps CRDT table until they get purged later. Threads however
are created for those bad entries and then will hang on trying
to get the transaction_count from those bad addresses and never end.
2018-08-23 20:57:13 -07:00
71319978df
Up drone request amount ( #1051 )
...
Multiple clients will request 500k each so up this to support them.
2018-08-23 15:30:35 -07:00
6147e54686
Cap repair requests timeout ( #958 )
2018-08-23 15:30:21 -07:00
0c8eec2563
Cleanup Fullnode construction
...
leader_id was already set by Fullnode constructor. And cleanup the
rest of that code while in the neighborhood.
Thanks @CriesofCarrots!
2018-08-23 13:42:54 -07:00
4ab58f069a
Add back JsonRpcService changes
2018-08-23 13:42:54 -07:00
85f96d926a
Pacify clippy
2018-08-23 13:42:54 -07:00
816de4f8ec
Hoist shared code between leaders and validators
2018-08-23 13:42:54 -07:00
42229a1105
Hoist thread_hdls
2018-08-23 13:42:54 -07:00
d8820053af
Inline create_leader_threads and create_validator_threads
2018-08-23 13:42:54 -07:00
731f8512c6
Hoist Arc<Bank>
2018-08-23 13:42:54 -07:00
a133784706
Rename mode-specific constructors and return only thread handles
2018-08-23 13:42:54 -07:00
be58fdf1bb
Less constructors
2018-08-23 13:42:54 -07:00
57daeb35d2
Drop all references to new_leader and new_validator
2018-08-23 13:42:54 -07:00
9c5e69bf3d
Don't offer two ways to specify a leader
2018-08-23 13:42:54 -07:00
cfac127e4c
Extract lower-level constructor
...
Passing in the bank is useful for unit-tests since Fullnode doesn't
store it in a member variable.
2018-08-23 13:42:54 -07:00
fda4523cbf
Fix broken doc
2018-08-23 13:42:54 -07:00
cabe80b129
Increment counter by number of packets received ( #1049 )
...
So that we can see the total packets/s
2018-08-23 12:32:50 -07:00
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
4fdd9fbfca
Wallet: use gossip to identify leader's port config
2018-08-23 13:08:59 -06:00
bdf5ac9c1a
Drone: use gossip to identify leader's port config
2018-08-23 13:08:59 -06:00
f1785c76a4
Rework counter increment outside apply_debits loop ( #1046 )
...
Reduces prints/atomics work inside the process_transactions loop
2018-08-23 09:42:59 -07:00
2de8fe9c5f
Pass bank to rpc as reference
2018-08-23 09:06:17 -06:00
d910ed68a3
Use balance to verify requestAirdrop success
2018-08-23 09:06:17 -06:00
f7f7ecd4c6
Add json-rpc requestAirdrop endpoint
2018-08-23 09:06:17 -06:00
a9c3a28a3b
Add json-rpc sendTransaction endpoint
2018-08-23 09:06:17 -06:00
96787ff4ac
Use builtin sum
2018-08-22 16:24:19 -06:00
c3ed4d28de
Change average TPS to max average tps seen for any node and...
...
add script to collect perf stats
2018-08-22 14:55:04 -07:00
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
db3fb3a27c
Boot criterion ( #1032 )
...
* Revert benchmarks back to libtest
Criterion has too many dependencies, it's execution as slower, and
we didn't see the kind of precision we had hoped for to use it to
block CI builds.
* Ignore benchmarks that take more than a few milliseconds per iteration
* Revert "Ignore benchmarks that take more than a few milliseconds per iteration"
This reverts commit b87cdf6ef4
.
* Don't run benchmarks in CI
They are already built in the nightly build. Executing them in CI
doesn't add much value until the results are precise enough to act
on.
2018-08-22 08:57:07 -06:00
8282442956
fixes #927
2018-08-22 17:47:59 +09:00
a355d9f46c
Add error catch for rpc server builder
2018-08-21 14:04:52 -06:00
be4824c955
Add custom panic hook for RPC port bind
2018-08-21 14:04:52 -06:00
86c1d97c13
Fix validator rpc addr to match leader
2018-08-20 22:35:06 -07:00
0b48aea937
echo commands, use PID (good form)
2018-08-21 11:41:00 +09:00
cdec0cead2
files have to appear in the snap
2018-08-21 11:41:00 +09:00
831709ce7e
fixups
2018-08-21 10:36:03 +09:00
b7b8a31532
make a copy of the ledger for sanity check
...
we can't verify a live ledger, unfortunately, fixes #985
2018-08-21 10:36:03 +09:00
15406545d8
Document how to adjust the number of clients or validators on the testnet
2018-08-20 18:35:01 -07:00
5aced8224f
Revert "make a copy of the ledger for sanity check"
...
This reverts commit af20a43b77
.
2018-08-21 10:34:52 +09:00
af20a43b77
make a copy of the ledger for sanity check
...
we can't verify a live ledger, unfortunately, fixes #985
2018-08-21 09:45:52 +09:00
39c3280860
Don't block on large network test
2018-08-20 16:48:37 -06:00
2d35345c50
Boot unused creates
2018-08-20 16:48:37 -06:00
a02910be32
Remove pubkey from getBalance response
2018-08-20 15:02:48 -07:00
b9ec97a30b
Add counter for bank transaction errors ( #1015 )
2018-08-20 14:56:01 -07:00
2e89999d88
# This is a combination of 4 commits.
...
# This is the 1st commit message:
Fix tesetment readme
# This is the commit message #2 :
updte
# This is the commit message #3 :
typo
# This is the commit message #4 :
cleanup
2018-08-20 13:49:56 -07:00
24b0031925
Reduce number of nodes in multinode test ( #1003 )
2018-08-20 13:40:42 -07:00
9eeaf2d502
Bind RPC port on all interfaces
2018-08-20 12:45:50 -07:00
c9e6fb36c3
Avoid unncessary cargo rebuilds in non-perf configuration
2018-08-20 12:03:44 -07:00
8de317113c
clippy: remove identity conversion
2018-08-20 10:55:55 -07:00
a1ec549630
Pin nightly rust for more controlled updating
2018-08-20 10:55:55 -07:00
ecddff98f5
Add --nopull argument
2018-08-20 10:55:55 -07:00
10066d67bf
Add llvm deb repository
2018-08-19 09:01:36 -07:00
a07f7435c6
\
2018-08-19 08:49:29 -07:00
d3523ebbe5
Nightly image now derives from stable image
2018-08-19 08:47:59 -07:00
133ddb11ff
typo in README
2018-08-18 18:24:42 -07:00
1bf15ae907
Temporarily disable cargo audit CI failure
2018-08-18 12:29:49 -06:00
f73f3941cd
Revert ill-advised jsonrpc marker, and handle jsonrpc server close
2018-08-18 12:29:49 -06:00
d69d79612b
Simplify Rpc request processing
2018-08-18 12:29:49 -06:00
64ea5126e0
Fix early return for invalid parameter
2018-08-18 12:29:49 -06:00
9df3aa50d5
Remove unnecessary solana_ prefixes
2018-08-18 12:29:49 -06:00
cab75b7829
Handle potential panics
2018-08-18 12:29:49 -06:00
d9fac86015
Use jsonrpc git repo, allowing removal of Default bound for Metadata
2018-08-18 12:29:49 -06:00
1eb8724a89
Disable Rpc module for other tests to prevent port conflicts
2018-08-18 12:29:49 -06:00
c6662a4512
Implement Rpc in Fullnode
2018-08-18 12:29:49 -06:00
d3c09b4e96
Update jsonrpc dependency syntax
2018-08-18 12:29:49 -06:00
124f6e83d2
Rpc get last id endpoint
2018-08-18 12:29:49 -06:00
569ff73b39
Rpc tests
2018-08-18 12:29:49 -06:00
fc1dbddd93
Implement json-rpc functionality
2018-08-18 12:29:49 -06:00
3ae867bdd6
fixups
2018-08-18 02:22:52 -07:00
bc5f29150b
fix erasure, remove Entry "pad"
...
* fixes #997
* Entry pad is no longer required since erasure coding aligns data length
2018-08-18 02:22:52 -07:00
46016b8c7e
crashes generate_coding()
2018-08-18 02:22:52 -07:00
5dbecd6b6b
add logging, more conservative reset
2018-08-18 02:22:52 -07:00
877920e61b
Compute snap channel using ci/channel-info.sh
2018-08-17 23:15:48 -07:00
3d1e908dad
Add script to fetch latest channel info
2018-08-17 23:15:48 -07:00
6880c2bef0
Exclude ci/semver_bash/; don't want to diverge from upstream
2018-08-17 23:15:48 -07:00
78872ffb4b
Vendor https://github.com/cloudflare/semver_bash/tree/c1133faf0e
2018-08-17 23:15:48 -07:00
229d825fe0
Fix master-perf basename
2018-08-17 21:59:36 -07:00
edc5fc098e
Make SNAP_CHANNEL more visible in build log
2018-08-17 21:39:54 -07:00
bbe815468d
Add instructions on how to run the demo against testnet.solana.com and watch it on the dashboard
2018-08-17 21:26:06 -07:00
82e7725a42
Invert logic
2018-08-17 21:16:35 -07:00
dc61cf1c8d
Keep v0.7 snap off the edge channel
2018-08-17 21:12:10 -07:00
aba63e2c6c
Log expansion directive must be on its own line
2018-08-17 20:58:14 -07:00
c2ddd056e2
Add option to skip ledger verification
2018-08-17 20:41:30 -07:00
c9508e84f2
0.8.0
2018-08-17 17:56:35 -07:00
f6f0900506
Large network test to not poll validator for sigs ( #998 )
...
- The finality is already reached. The test will check the signature
in validators once, instead of polling. This will help speed up the test.
2018-08-17 14:38:19 -07:00
7aeef27b99
not quite banishing build.rs, but better
2018-08-16 22:33:31 -07:00
98d0ef6df5
Add some wget retries
2018-08-16 20:22:49 -07:00
208a7f16cb
Fix bench-tps nokey error
2018-08-16 19:38:26 -06:00
16cf31c3a3
fix #990
2018-08-16 15:52:30 -07:00
2b48daaeba
accept multiple expected outputs
2018-08-16 14:44:51 -07:00
79d24ee227
fixed test according to @rob-solana
2018-08-16 14:44:51 -07:00
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
fc0d7f5982
updated nightly versions
2018-08-16 13:17:29 -07:00
f697632edb
update clippy install instructions, from here:
...
https://github.com/rust-lang-nursery/rust-clippy
fixes #947 ?
2018-08-16 13:17:29 -07:00
73797c789b
back to 4 TX threads
2018-08-16 12:02:11 -07:00
036fcced31
test -t nproc
2018-08-16 12:02:11 -07:00
1d3157fb80
fixups
2018-08-16 12:02:11 -07:00
0b11c2e119
restart testnet clients in case airdrop fails
2018-08-16 12:02:11 -07:00
96af892d95
Add docs about the testnet
2018-08-16 07:39:17 -07:00
c2983f824e
Refactored large network test to use finality to assert success ( #978 )
2018-08-15 20:05:43 -07:00
88d6fea999
Revert "Accounts with state ( #954 )"
...
This reverts commit c23fa289c3
.
2018-08-15 19:44:39 -07:00
c23fa289c3
Accounts with state ( #954 )
...
* Account type with state
* fixed test according to @rob-solana
2018-08-15 14:32:11 -07:00
db35f220f7
Run multinode test for enough iterations for a small node count test ( #971 )
2018-08-15 10:44:14 -07:00
982afa87a6
Retransmit blobs from leader from window ( #975 )
...
- Some nodes don't have leader information while leader is broadcasting
blobs to those nodes. Such blobs are not retransmitted. This change
rertansmits the blobs once the leader's identity is know.
2018-08-14 21:51:37 -07:00
dccae18b53
cfg=erasure fixes, use return value of align!()
2018-08-14 12:14:59 -07:00
53e86f2fa2
use align!
2018-08-14 12:14:59 -07:00
757dfd36a3
Report errors better in build log
2018-08-14 11:44:26 -07:00
708add0e64
fixups
2018-08-14 10:16:34 -07:00
d8991ae2ca
fix UPnP backout, fixes #969
2018-08-14 10:16:34 -07:00
5f6cbe0cf8
fixups
2018-08-13 21:07:26 -07:00
f167b0c2c5
fixups
2018-08-13 21:07:26 -07:00
f784500fbb
fixups
...
fixes #907
2018-08-13 21:07:26 -07:00
83df47323a
initialize recycled data
2018-08-13 21:07:26 -07:00
c75d4abb0b
Tuck away PoH duration
2018-08-13 20:17:16 -06:00
5216a723b1
Pacify clippy
2018-08-13 20:17:16 -06:00
b801ca477d
Declare fullnode a word
2018-08-13 20:17:16 -06:00
c830c604f4
Make BroadcastStage an actual stage
...
TODO: Why isn't BroadcastStage/RetransmitStage managed by the NCP?
2018-08-13 20:17:16 -06:00
0e66606c7f
Rename broadcaster to broadcast_stage
...
And move retransmitter code into retransmit_stage.
TODO: Add a BroadcastStage service
2018-08-13 20:17:16 -06:00
8707abe091
Fix erasure build
2018-08-13 20:17:16 -06:00
dc2a840985
Move FullNode::new_window into window module
2018-08-13 20:17:16 -06:00
2727067b94
Move winow into its own module
2018-08-13 20:17:16 -06:00
6a8a494f5d
Rename WindowStage to RetransmitStage
...
The window is used for both broadcasting from leader to validator
and retransmitting between validators.
2018-08-13 20:17:16 -06:00
a09d2e252a
Move window dependencies out of streamer
...
No tests!?
2018-08-13 20:17:16 -06:00
3e9c463ff1
Offer only 1 way to create a fullnode with an empty window
2018-08-13 20:17:16 -06:00
46d50f5bde
Remove p2p crate (and uPnP support)
2018-08-13 18:22:58 -07:00
e8da903c6c
move tmp_ledger back to target dir
2018-08-13 16:52:53 -07:00
ab10b7676a
use stable cache
2018-08-13 16:23:30 -07:00
fa44a71d3e
move bench to a seprate, parallel step
2018-08-13 16:23:30 -07:00
c86e9e8568
pad max_data_size to jerasure's alignment requirements
2018-08-13 16:10:51 -07:00
9e22e23ce6
increase stable timeout until tomorrow
2018-08-13 15:45:50 -07:00
835f29a178
off by 2
2018-08-13 15:12:12 -07:00
9688f8fb64
Update IP address
2018-08-13 12:32:09 -07:00
df5cde74b0
Back out pre-0.7.1 workaround
2018-08-13 12:13:00 -07:00
231d5e5968
0.7.1
2018-08-13 12:12:27 -07:00
c2ba72fe1f
Fix up validator sanity
2018-08-13 10:23:35 -07:00
d93786c86a
Revert "turn off validator sanity while I work on it"
...
This reverts commit d4304eea28
.
2018-08-13 10:23:35 -07:00
bf15cad36b
Add get_finality request and use it from multinode test ( #941 )
2018-08-13 08:55:13 -07:00
288ed7a8ea
Vote should be valid ( #945 )
...
* test that fails
* fix for test
* rename
2018-08-12 18:19:54 -07:00
f07c038266
Fix bank coalescing ( #949 )
...
* fix bank coalescing
* comments
* fix bench
* fix bench
* backout banking stage coalescing
* 120 nodes
* 100
2018-08-12 10:04:21 -07:00
8eed120c38
add missing backslash
2018-08-10 23:45:08 -07:00
5dbcb43abd
more enhancements
2018-08-10 19:53:58 -07:00
dd1eefaf62
change verify-internal to precheck
...
update to new ledger API
2018-08-10 19:53:58 -07:00
35de159d00
better error messages
2018-08-10 19:53:58 -07:00
546a1e90d5
clippy fixups
2018-08-10 19:53:58 -07:00
b033e1d904
enhance ledger-tool
...
* add json, which does the thing with json, move print to Rust's {:?}
* add --head NUM, to limit how much work gets done for print, json, verify
* add verify-internal, which very carefully checks ledger format without
trying first to "recover" it
* exit with errors on mis-usage
2018-08-10 19:53:58 -07:00
96d6985895
rework read_ledger, LedgerWriter, and LedgerWindow for recover()
...
fixes #910
2018-08-10 18:07:23 -07:00
58f220a3b7
Add tic-tac-toe program flow concept
2018-08-10 17:39:54 -07:00
a206f2570d
Add hostname to metrics on panic
2018-08-10 17:08:40 -07:00
2318ffc704
Use a different counter for validator account not found errors. ( #931 )
...
* Use a different counter for validator account not found errors. This is a usefull signal of something going wrong with the ledger
2018-08-10 15:18:44 -07:00
d4304eea28
turn off validator sanity while I work on it
2018-08-10 14:56:46 -07:00
06af9de753
fixups
2018-08-10 11:41:31 -07:00
7f71e1e09f
fixups
2018-08-10 11:41:31 -07:00
bb7eccd542
check validator startup in testnet-sanity.sh
2018-08-10 11:41:31 -07:00
b04c71acd9
check issue 910 in testnet-sanity
2018-08-10 11:41:31 -07:00
bbf9ea89c5
add some flushing to ledger
2018-08-10 11:41:31 -07:00
846ad61941
use ~/.solana instead of PWD to keep cargo happy, don't rsync --append
2018-08-10 11:41:31 -07:00
8b41c415b7
add equal sign
2018-08-10 08:05:48 -07:00
197ba8b395
Fixed punctuation
2018-08-09 16:39:04 -07:00
8d2a61a0c9
Alphabetize bins
2018-08-09 16:23:05 -06:00
7512317243
Alphabetize dependencies
2018-08-09 16:23:05 -06:00
bca2294655
cargo fmt
2018-08-09 13:41:37 -06:00
abd55e4159
Add coding guidelines document
2018-08-09 13:41:37 -06:00
4a980568ac
Rename sig variables to signature
...
We'll avoid introducing three-letter terms to free up the namespace
for three-letter acronyms.
But recognize the term "sigverify", a verb, to verify a digital
signature.
2018-08-09 13:41:37 -06:00
9d436fc5f8
Rename pk variables to pubkey
2018-08-09 13:41:37 -06:00
ad331e6d56
Rename PublicKey type to Pubkey
...
Recognize pubkey as a noun meaning the public key of a keypair.
2018-08-09 13:41:37 -06:00
d7e4e57548
Rename public_key variables to pubkey
2018-08-09 13:41:37 -06:00
b2067d2721
Rename kp variables to keypair
2018-08-09 13:41:37 -06:00
c2bbe4344e
Rename KeyPair to Keypair
2018-08-09 13:41:37 -06:00
8567253833
Ignore flaky test
2018-08-09 10:15:10 -06:00
ca7d4c42dd
Rename cur_hashes to num_hashes
2018-08-09 10:15:10 -06:00
8ca514a5ca
Remove unnecessary :
2018-08-08 22:45:39 -07:00
b605552079
Record network version in testnet-deploy start datapoint
2018-08-08 22:41:02 -07:00
74f5538bd3
Verify the ledger as a part of sanity
2018-08-08 16:10:54 -07:00
ff57c7b7df
Include ledger tool
2018-08-08 15:12:40 -07:00
ce8a4fa831
allow received to outpace window, we're already constraining repair
...
correctly identify sender in ledger_window repair responses, enabling re-transmission
2018-08-08 15:10:44 -07:00
8331aab26a
Enable Crdt debug messages to debug validators
2018-08-08 14:22:20 -07:00
a6857dbaaa
Updated node count to 230. Increased wmem on CI large
2018-08-08 13:13:18 -07:00
054298d957
Retry snap install 3 times, sometimes the snap server 503s
2018-08-08 08:56:05 -07:00
cca240c279
Add SOLANA_NET_NAME, rename SOLANA_NET_URL to SOLANA_NET_ENTRYPOINT
2018-08-08 08:49:30 -07:00
89f17ceecf
Route setup-args
2018-08-08 08:32:23 -07:00
fe97857c62
Add 'setup-args' snap configuration parameter, to override -p
2018-08-08 08:10:56 -07:00
75854cc234
Update dynamic network test with more nodes ( #904 )
...
- Check for correct OS params in test-large-network.sh
2018-08-08 06:52:57 -07:00
9783d47fd1
write a "unit" test for WindowLedger (it was working ;)
...
clear flags on fresh blobs, lest they sometimes impersonate coding blobs...
fix bug: advance *received whether the blob_index is in the window or not,
failure to do so results in a stalled repair request pipeline
2018-08-08 04:28:09 -07:00
38be61bd22
Check for log level before doing perf counter work
...
Perf counters, especially when running the dynamic test can cause
functions like crdt::apply_updates to be really slow (>500ms).
2018-08-08 00:16:53 -07:00
c64e2acf8b
set destination address when for ledger window repair responses
2018-08-07 23:31:01 -07:00
a200cedb4b
Lower UDP data size to 64k - 128 bytes
...
rust API gives errors for packets larger than ~65500 and
wikipedia says 65507 is the max size, lowering this avoids the errors.
2018-08-07 18:39:36 -07:00
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
999534248b
fixups
2018-08-07 17:27:53 -07:00
fbc754ea25
plug in LedgerWindow
...
fixes #872
2018-08-07 17:27:53 -07:00
ecea41a0ab
Install EarlyOOM on testnet nodes
2018-08-07 16:58:46 -07:00
1b6d472cb2
Fixed counters for coalescing and broadcast index ( #900 )
2018-08-07 16:46:48 -07:00
f0446c7e88
Package curl in Snap for metrics_write_datapoint.sh
2018-08-07 22:41:26 +00:00
2a0025bb57
get buffered IO back for ledger
2018-08-07 15:34:15 -07:00
64d6d3015a
Counters for broadcasted blob idx and coalesced packets ( #897 )
2018-08-07 14:54:26 -07:00
90550c5b58
Switch to slice arguments and remove clippy exceptions
2018-08-07 14:43:44 -07:00
53cd2cdd9f
Only monitor for OOM kills when a leader, validator or drone is enabled
2018-08-07 14:20:52 -07:00
1ac5d300a4
Rearrange start hash for process_ledger and add a unit test
2018-08-07 14:10:36 -07:00
642c25bd3b
Update path
2018-08-07 13:40:49 -07:00
df808dedd1
Add simple OOM Killer monitor
2018-08-07 13:35:01 -07:00
02f9cb415b
Ignore failure to write oom_score_adj
2018-08-07 13:35:01 -07:00
e3cf1e6598
Bundle metrics_write_datapoint.sh in Snap
2018-08-07 13:35:01 -07:00
7681211c02
Pacify shellcheck
2018-08-07 13:35:01 -07:00
0ee935dd72
Adjust fullnode/drone oom_score_adj to goad the kernel into killing it first
2018-08-07 10:42:53 -07:00
16772d3d51
Coalesce multiple blobs if received close together ( #869 )
...
- This helps reduce unnecessary growth of window if small blobs
are received in small space of time
2018-08-07 10:29:57 -07:00
1c38e40dee
Validate ledger once all the tests complete
2018-08-07 10:00:52 -07:00
ceb5a76609
Refactor validator windowing
...
- a unit test for windowing functions
- issue #857
2018-08-07 08:17:32 -07:00
db2392a691
Use last_id from the entries stream instead of last_id from bank
...
bank will only register ids when has_more is not set because those are
the only ids it has advertised, so it will not register all ids,
however the entry stream will contain unbroken last_id chain, so we
need to track that to get the correct start hash.
2018-08-07 08:14:06 -07:00
9c1b6288a4
Use ? instead of unwrap()
...
This change addresses #833 , while there are still some unwrap() though.
2018-08-07 08:10:22 -07:00
575179be8e
y
2018-08-06 23:55:00 -07:00
5b6ffaecc0
s/r$/f/
2018-08-06 23:36:09 -07:00
efc72b9572
Support -V/--version on all CLI apps
...
All CLI apps that use clap (in other words, except for bench-streamer)
can use crate_version! to take the version from Cargo.toml.
This change addresses #700 .
2018-08-06 22:03:58 -07:00
5dc7177540
Remove manually created help text, use clap's text instead.
2018-08-06 19:15:52 -07:00
78a4b1287d
Initialize logger
2018-08-06 19:04:04 -07:00
c5001869f1
Add verify subcommand
2018-08-06 19:04:04 -07:00
7c31f217d5
Add voting metric even when there are not enough validators
2018-08-06 15:58:10 -07:00
1152457691
avoid normal validator port a little better for sanity
2018-08-06 15:06:16 -07:00
3beb38ac8a
/tmp/farf no good on multi-user machine
2018-08-06 14:53:40 -07:00
8cbaa19d2e
Report the address that failed to bind
2018-08-06 11:21:25 -07:00
63d2b2eb42
adjust bank notion of entry_count to aid debugging
2018-08-06 11:20:52 -07:00
e02da9a15a
Clean up tx_count usage
2018-08-06 11:00:25 -07:00
ae111a131c
Condense stdout
2018-08-06 11:00:25 -07:00
4402e1128f
Cleanup
2018-08-06 11:00:25 -07:00
f55bb6d95c
Send/confirm a loopback payment after each batch of transactions
2018-08-06 11:00:25 -07:00
91741e20fa
Add rustc/cargo version check
2018-08-06 09:32:08 -07:00
0514f5e573
sync() apparently imposes a serious performance penalty
2018-08-06 08:51:41 -07:00
637d403415
move bank.process_entries() to firsties
2018-08-06 08:51:41 -07:00
9fabd34156
remove trace! calls, re-arrange replicate_requests to have the bank earlier
2018-08-06 08:51:41 -07:00
039ed01abf
on 2nd thought: do not copy_ledger() for this test
2018-08-06 08:51:41 -07:00
ead0eb2754
move copy_ledger() back into ledger.rs
...
Don't recover() for copy(), as copy() is already tolerant of things
recover() guards against. Note: recover() is problematic if the ledger is
"live", i.e. is currently being written to.
2018-08-06 08:51:41 -07:00
c3db2df7eb
tweak random access ledger
...
* add recover_ledger() to deal with expected common ledger corruptions
* add verify_ledger() for future use cases (ledger-tool)
* increase ledger testing
* allow replicate stage to run without a ledger
* ledger-tool to output valid json
2018-08-06 08:51:41 -07:00
ee6c15d2db
start on ledger recovery with a description of what that might mean
2018-08-06 08:51:41 -07:00
715a3d50fe
Revert "Revert "clippy fixup""
...
This reverts commit d173e6ef87
.
2018-08-06 08:51:41 -07:00
692b125391
Revert "Revert "fixups""
...
This reverts commit e2c68d8775
.
2018-08-06 08:51:41 -07:00
5193819d8e
Revert "Revert "plug in new ledger""
...
This reverts commit 57e928d1d0
.
2018-08-06 08:51:41 -07:00
210b9d346f
Add voting metrics and -h/--help to get usage for client.sh script
2018-08-05 14:21:49 -07:00
4c4b0f551e
clippy fixups
2018-08-05 13:30:45 -07:00
6800ff1882
solana-ledger-tool initial commit
...
does nothing but convert from random-access ledger to json
2018-08-05 13:30:45 -07:00
399a3852b1
Add sigverify_stage-total_verify_time datapoint
2018-08-04 21:45:58 -07:00
e7d3069f58
macOS: Adjust maxdgram to allow for large UDP packets
2018-08-04 21:42:59 -07:00
40ea3e3e61
tweak multinode-demo to work better in snap, validator-x be more stand-alone
2018-08-04 01:04:06 -07:00
dc9a11bae0
remove rsync size limit for validator's ledger
2018-08-03 23:31:25 -07:00
906d18a709
move VOTE to trace, info too verbose
2018-08-03 23:04:54 -07:00
a13058b6c4
Look for 3 nodes (1 leader, 2 validators)
2018-08-03 20:30:29 -07:00
98ee4b4672
fix up some nits in multinode-demo
2018-08-03 20:19:41 -07:00
7fd7310b96
Prevent a node from overrunning it's receive window ( #846 )
...
- The node drops blobs that will cause it to overrun window
- The node does not ask to repair a blob that overruns the window
2018-08-03 20:15:14 -07:00
28fa43d2a9
Use env_logger@0.5.12
2018-08-03 20:08:30 -07:00
1a9e6ffdd7
Try multiple times to confirm a non-zero balance
2018-08-03 19:57:38 -07:00
c998199954
fixups, add validator-x to sanity
2018-08-03 15:34:11 -07:00
19792192a7
support any number of self-setup validators on a single host
2018-08-03 15:34:11 -07:00
4aab413154
recycle the skipped, outside-window blob, fixes #843
2018-08-03 15:02:55 -07:00
15a6179b97
Stop installing rustfmt-preview, it's already present
2018-08-03 14:27:11 -07:00
83b308983f
Include rustfmt-preview
2018-08-03 14:11:42 -07:00
f2b1a04bca
cargo fmt fixups
2018-08-03 11:59:25 -07:00
3e36e6dcf8
Upgrade to rust 1.28
2018-08-03 11:30:40 -07:00
6feb6a27be
Run localnet-sanity in test-stable-perf
2018-08-03 10:46:48 -07:00
c5ceb15e02
Skip network tuning on CI machines
2018-08-03 10:46:48 -07:00
57e928d1d0
Revert "plug in new ledger"
...
This reverts commit 46d9ba5ca0
.
2018-08-03 10:24:51 -07:00
e2c68d8775
Revert "fixups"
...
This reverts commit b72e91f681
.
2018-08-03 10:24:51 -07:00
d173e6ef87
Revert "clippy fixup"
...
This reverts commit 384b486b29
.
2018-08-03 10:24:51 -07:00
c230360f4c
Wait until recycled machines are reachable before provisioning them
2018-08-02 22:13:17 -07:00
384b486b29
clippy fixup
2018-08-02 21:50:47 -07:00
b72e91f681
fixups
2018-08-02 21:50:47 -07:00
46d9ba5ca0
plug in new ledger
2018-08-02 21:50:47 -07:00
a9240a42bf
Delete unreachable validators to cause a fresh one to be spawned
2018-08-02 20:45:29 -07:00
a7204d5353
Use a local user to avoid GCP login quota limits
2018-08-02 19:43:35 -07:00
f570ef1c66
Defer repair request for blobs that may still be in avalanche transit ( #814 )
2018-08-02 19:12:57 -07:00
ee0195d588
Try to measure finality from time seen to when 2/3 of validator..
...
..set has voted. Add a timestamp to last_ids and use that to
see how long from when 2/3s validator set has voted on them.
2018-08-02 13:21:29 -07:00
448b8b1c17
Add Hash wrapper and supporting traits
2018-08-01 17:00:51 -07:00
4d77fa900b
Add Signature wrapper and supporting traits
2018-08-01 17:00:51 -07:00
7ccd771ccc
Only send sigverify to GPU if batch size is >64
...
Seems to be a decent crossover point for Xeon E5-2620 v4 8c,16t vs. nvidia 1080ti
2018-08-01 16:38:15 -07:00
e9f8b5b9db
Fix bench
2018-08-01 16:24:47 -07:00
2366c1ebaf
Enable cargo audit in CI
...
Fixes #772
2018-08-01 16:24:47 -07:00
c5de237276
Upgrade ring and untrusted
2018-08-01 16:24:47 -07:00
aa9bc57b4d
Implement GenKeys without SecureRandom
2018-08-01 16:24:47 -07:00
11df477b20
Make GenKey functions mut
...
We hide the mutability to implement SecureRandom, but that's going
away.
2018-08-01 16:24:47 -07:00
7141750668
new_key -> gen_keypair
2018-08-01 16:24:47 -07:00
68675bd1ab
Less pub
2018-08-01 16:24:47 -07:00
19b3cacd60
Generate a fixed-size array instead of a vector
2018-08-01 16:24:47 -07:00
bcfaf5d994
Rebase ledger change
2018-08-01 16:15:14 -07:00
e9499ac5b8
Update PublicKey AsRef to slice
2018-08-01 16:15:14 -07:00
7ff721e563
Replace pub field with AsRef impl
2018-08-01 16:15:14 -07:00
fda3b9bbd4
Use new PublicKey format instead of hex
2018-08-01 16:15:14 -07:00
cf70e5ff2f
Handle wrapped PublicKey struct
2018-08-01 16:15:14 -07:00
a86618faf3
Add PublicKey wrapper
...
Add custom formatting for PublicKey display and debug
2018-08-01 16:15:14 -07:00
6693386bc5
Lower errors to warnings so they don't print during tests
...
Negative tests should trigger the warnings, but errors look like
something is wrong.
2018-08-01 16:56:12 -06:00
4a8a0d03a3
Correct localhost address
2018-08-01 15:49:48 -07:00
2c9d288ca9
Add a CI metric data point upload timeout to prevent CI build stalls
...
5 seconds is somewhat arbitrary, seems like enough
2018-08-01 15:49:48 -07:00
bb0aabae75
Add cmake, which is needed to build cargo-audit
2018-08-01 16:43:49 -06:00
5cda0ed964
Airdrop from the leader
2018-08-01 15:21:20 -07:00
0aba74935b
fixups
2018-08-01 14:42:58 -07:00
4eb666d4f9
provide ledger::copy()
2018-08-01 14:42:58 -07:00
d5e0cf81ff
fixups
2018-08-01 14:42:58 -07:00
3ea784aff7
clippy fixups
2018-08-01 14:42:58 -07:00
fef93958c8
fixups, tests
2018-08-01 14:42:58 -07:00
cae88c90b1
add a persistent ledger of index and data files
2018-08-01 14:42:58 -07:00
1a8da769b6
...
2018-08-01 14:42:58 -07:00
2b259aeb41
testnet now deploys successfully on days of the month < 10
2018-08-01 14:10:52 -07:00
de7e9b4b4c
Remove retry
...
This was introduced to mask the occasional failure of racy tests. But this is misguided as it helps hid the true problem, the racy test, and it causes tries builds that fail deterministically to retry only to fail once again.
2018-08-01 12:02:39 -07:00
0f95031b99
CI builds no longer turn red if a metrics write fails
2018-08-01 11:35:19 -07:00
d622742b84
Mark test-multinode-basic as ignore
2018-08-01 10:13:05 -06:00
ff254fbe5f
re-instate traces
2018-08-01 09:08:38 -07:00
05153e4884
de-trace this function, new blob is not a dup
2018-08-01 09:08:38 -07:00
2ece27ee3a
fix leak
2018-08-01 09:08:38 -07:00
a58df52205
Fix build
...
Last two PRs crossed in flight. A keypair is now required for all
types of FullNode, not just validators.
2018-08-01 08:53:21 -07:00
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
7c5172a65e
Converted sigverify disable flag to runtime check instead of "cfg" ( #799 )
2018-07-31 16:54:24 -07:00
821e3bc3ca
Avoid race between test_lograte and test_lograte_env
2018-07-31 16:08:01 -07:00
5dd2f737a3
clear out old blobs in find_next_missing
2018-07-31 15:54:32 -07:00
c9bb5c1f5b
Update snap log file documentation
2018-07-31 13:13:27 -07:00
5d936e5c8a
Trap SIGINT for clean ^C shutdown
2018-07-30 17:15:50 -07:00
e985c2e7d5
.gitignore more generated files
2018-07-30 17:15:50 -07:00
308b6c3371
Follow Shared prefix convention for Window alias ( #798 )
...
Follow Shared prefix convention for Window alias.
2018-07-30 16:56:01 -07:00
ea7fa11b3e
use size_of() instead of serialized_size() and magic number 8
2018-07-30 16:48:58 -07:00
5a40ea3fd7
Only map HOME when in CI
2018-07-30 16:36:26 -07:00
102510ac0e
Clear apt cache to reduce image size
2018-07-30 16:36:26 -07:00
2158329058
Switch to docker-rust image
2018-07-30 16:36:26 -07:00
bc484ffe5f
Add docker-rust image
2018-07-30 16:36:26 -07:00
6fcf4584d5
Propagate more BUILDKITE environment variables into containers
2018-07-30 16:36:26 -07:00
1adc83d148
Add localnet-sanity.sh
2018-07-30 16:36:26 -07:00
647053e973
Terminate child process when main script is interrupted
2018-07-30 16:36:26 -07:00
95b98b3845
Fix --addr option
2018-07-30 16:36:26 -07:00
f27613754a
Report number of nodes found on failure too
2018-07-30 16:36:26 -07:00
3e351b0b13
Drop -t
2018-07-30 16:13:51 -07:00
79ece53e3c
Don't panic the tokio worker thread when deserialize() fails
2018-07-30 14:56:53 -07:00
f341b2ec10
fixups
2018-07-30 14:26:44 -07:00
167b079e29
fixups
2018-07-30 14:26:44 -07:00
7ded5a70be
fixups
2018-07-30 14:26:44 -07:00
fc476ff979
implement iterator for parsing length + data ledger
2018-07-30 14:26:44 -07:00
c3279c8a00
chugga
2018-07-30 14:26:44 -07:00
e471ea41da
fixups
2018-07-30 14:26:44 -07:00
552d4adff5
use a binary ledger: newline-separated, newline-escaped entries instead of json
2018-07-30 14:26:44 -07:00
0c33c9e0d7
Dynamic network test changes ( #795 )
...
- No sigverify if feature sigverify_cpu_disable is used
- Purge validators in the test if lag count increases beyond
SOLANA_DYNAMIC_NODES_PURGE_LAG environment variable
- Other useful log messages in the test
2018-07-30 13:57:10 -07:00
fae9fff24c
Unify logging initialization
2018-07-29 19:08:27 -07:00
79924e407c
Include nanoseconds in log timestamp
2018-07-29 19:08:27 -07:00
18d4da0076
Fetch env_logger from github until 0.5.12 is available
2018-07-29 19:08:27 -07:00
416c141775
export SKIP_INSTALL=1
to reset the network without reinstalling the snap
2018-07-28 18:04:13 -07:00
af1a2e83bc
Don't panic again when waiting for a panicked validator thread
2018-07-28 16:35:35 -07:00
4cdb9a73f8
Skip testnet-sanity on manual deploy
2018-07-28 12:37:29 -07:00
4433730610
Add support for deploying a locally built snap
2018-07-28 12:37:29 -07:00
71eb5bdecc
Factor out vm_foreach
2018-07-28 12:37:29 -07:00
029e2db2cf
Improve assert message
2018-07-28 10:40:50 -07:00
81db333490
Guard against rsyncing TBs of ledger
2018-07-27 23:53:20 -07:00
c68ee0040d
No need to support migrating from the old ledger format anymore
2018-07-27 23:53:20 -07:00
d96e267624
Keep around 3GB of logs, 160MB is just not enough
2018-07-27 22:40:21 -07:00
0b47404ba6
Check for default leader and use cmp::max for a bit nicer code ( #779 )
2018-07-27 15:53:31 -07:00
7f4844f426
More stats in dynamic multinode test
2018-07-27 11:55:09 -07:00
50e1e0ae47
use rust's rotate (in place, yay!)
2018-07-27 11:44:02 -07:00
538c3b63e1
Log the last_id being voted on
2018-07-27 11:27:51 -07:00
678b2870ff
i
2018-07-27 11:11:37 -07:00
308d8c254d
poll_get_balance no longer fails intermittently for zero balance accounts
...
While polling for a non-zero balance, it's not uncommon for one of the
get_balance requests to fail with EWOULDBLOCK. Previously when a get_balance
request failure occurred on the last iteration of the polling loop,
poll_get_balance returned an error even though the N-1 iterations may have
successfully retrieved a balance of 0.
2018-07-26 21:41:07 -07:00
f11aa4a57b
Ensure non-zero exit code if 'balance' command fails
2018-07-26 21:41:07 -07:00
c52d4eca0b
Stop validator first to stop voting before the leader stops
2018-07-26 17:29:32 -07:00
7672506b45
Validators now vote once a second regardless
2018-07-26 17:07:42 -07:00
80a02359f7
Add script to audit for security vulnerabilities
2018-07-26 13:42:12 -07:00
ab3968e3bf
Dedup
2018-07-26 11:45:58 -07:00
42ebf9502a
Agent cleaning is now performed in a separate pipeline
2018-07-26 11:37:36 -07:00
bd4fcf4ac6
Clean out stale buildkite agent build directories
2018-07-26 11:37:36 -07:00
4dceb73909
Reinstall client nodes in the background to speed up deploys
2018-07-26 09:49:00 -07:00
dd819cec3d
fix off by one in packet.rs
2018-07-26 09:24:44 -07:00
5115cd7798
large network back to erasure
2018-07-25 20:45:16 -07:00
cbb8dee360
rework broadcast to understand a separate transmit index for coding blobs
2018-07-25 20:45:16 -07:00
e0cdcb0973
employ the simple choice for broadcast table of coding blobs: round-robin
2018-07-25 20:45:16 -07:00
a6a2a745ae
fix broadcast of erasure coding blobs
...
erasure coding blobs were being counted as window slots, skewing transmit_index
erasure coding blobs were being skipped over for broadcast, because they're
only generated when the last data blob in an erasure block is added to the
window.... rewind the index to pick up and broadcast those coding blobs
2018-07-25 20:45:16 -07:00
297896bc49
honor environment variable SOLANA_DYNAMIC_NODES, obviating need to edit+compile for re-test
2018-07-25 20:45:16 -07:00
f372840354
Collect some datapoints while bench-tps is running
2018-07-25 20:15:43 -07:00
4c4659be13
Add more stdout
2018-07-25 16:38:21 -07:00
1b79fe73a1
Emit a metrics datapoint if bench-tps terminates
2018-07-25 15:55:02 -07:00
5fa072cf16
Avoid quotes around net name
2018-07-25 15:55:02 -07:00
212874e155
Use BlobError for get_size return
2018-07-25 15:54:04 -07:00
75212f40e7
fix off by one for send_to() of blob
2018-07-25 15:16:56 -07:00
6fde65577e
fixes #756
2018-07-25 11:07:03 -07:00
80ecef2832
Add --sustained to ci testnet deploy script
2018-07-25 10:16:46 -07:00
edf2ffaf4e
Reduce complexity of main for clippy
...
...and readability
2018-07-25 10:16:46 -07:00
6c275ea5ef
More knobs. Arg for tx count per batch and also sustained mode
...
sustained mode overlaps tx generation with transfer. This mode seems
to have lower peak performance but higher average performance
2018-07-25 10:16:46 -07:00
23ed65b339
Transfer and sign at the same time in bench-tps
2018-07-25 10:16:46 -07:00
9c7913ac9e
trying to raise an error
2018-07-25 08:12:20 -07:00
8b01e6ac0b
implement Blob::get_size(), the counterpart of Blob::set_size()
2018-07-25 08:12:20 -07:00
ff5854396a
deserialize using get_data_size(), which refers to blob.data()'s length,
...
instead of using msg.meta.size, which refers to the entire blob's length
fixes #752
2018-07-25 08:12:20 -07:00
f0725b4900
Avoid panicking if poll_get_balance() fails while in the transaction loop
2018-07-24 23:31:28 -07:00
327ba5301d
Log token balance throughout the transfer loop
2018-07-24 22:40:12 -07:00
dcce475f0b
Progagate logging configuration to client nodes
2018-07-24 21:40:02 -07:00
aa2104a21b
Reclaim tokens before exiting to avoid leaking tokens
2018-07-24 21:40:02 -07:00
0206020104
Make airdrops more robust
2018-07-24 21:40:02 -07:00
33bd1229d9
make next_entries() smarter about fitting Transactions into a Blob
2018-07-24 21:38:06 -07:00
195098ca2b
Failure test case
2018-07-24 21:38:06 -07:00
9daa7bdbe2
Replace rayon with threads for dynamic network test ( #745 )
2018-07-24 17:54:29 -07:00
6bd18e18ea
Add error messages to ledger verify
2018-07-24 17:35:41 -07:00
8f046cb1f8
disable erasure for large network testing
2018-07-24 16:54:52 -07:00
735a0ee16d
Switch back to running bench-tps in 10 minute iterations
2018-07-24 15:43:25 -07:00
537be6a29d
export SOLANA_DEFAULT_METRICS_RATE
2018-07-24 15:43:25 -07:00
2b528e2225
fixups
2018-07-24 13:04:34 -07:00
75505bbd72
fixups
2018-07-24 13:04:34 -07:00
e1fc7444f9
fixups
2018-07-24 13:04:34 -07:00
940caf7876
test large network with erasure
2018-07-24 13:04:34 -07:00
fcdb0403ba
eliminate unused parameter received, this branch fixes #636
2018-07-24 13:04:34 -07:00
caeb55d066
placate clippy and reduce replicode
2018-07-24 13:04:34 -07:00
f11e60b801
fix major bug: re-used blobs need to have their flags cleared
...
plus: lots of additional debug-ability
2018-07-24 13:04:34 -07:00
54f2146429
fixups
2018-07-24 13:04:34 -07:00
f60ee87a52
zero the tails of data blobs during generate() and recover() to enable blob reuse
2018-07-24 13:04:34 -07:00
9c06fe25df
enhance unit test to fail when erasure encodes stray bytes of data blobs
2018-07-24 13:04:34 -07:00
1eec8bf57f
fixups
2018-07-24 13:04:34 -07:00
ddb24ebb61
fixups
2018-07-24 13:04:34 -07:00
a58c83d999
prevent infinite loop on window wraparound
2018-07-24 13:04:34 -07:00
6656ec816c
protect generate and recover from u64->usize casting issues
2018-07-24 13:04:34 -07:00
8d2bd43100
fixups
2018-07-24 13:04:34 -07:00
429ea98ace
mutable-coding-blocks
2018-07-24 13:04:34 -07:00
3d80926508
fixups
2018-07-24 13:04:34 -07:00
d713e3c2cf
send coding in broadcast(), fixups
2018-07-24 13:04:34 -07:00
5d20d1ddbf
get test_window_recover_basic() passing
2018-07-24 13:04:34 -07:00
257acdcda1
building now
2018-07-24 13:04:34 -07:00
dab98dcd81
coded => coding
2018-07-24 13:04:34 -07:00
99653a4d04
rework erasure to have data and coding blobs side-by-side in window
2018-07-24 13:04:34 -07:00
dda563a169
document process_blob()
2018-07-24 13:04:34 -07:00
782aa7b23b
Cap at 4 threads
2018-07-24 11:35:03 -07:00
813e438d18
Improve panic message
2018-07-24 11:20:13 -07:00
7a71adaa8c
Adjust threads by the number of cpus
2018-07-23 21:17:36 -07:00
ce8796bc2e
Correctly calculate the expected number of full nodes
2018-07-23 19:55:09 -07:00
c7e1409f7b
Not so much |set -x|
2018-07-23 19:55:09 -07:00
9de9379925
Add support more more than 1 client node
2018-07-23 19:34:34 -07:00
7d68b6edc8
Fixup arg processing
2018-07-23 16:51:39 -07:00
48b5344586
Check for 0 TPS explicitly
2018-07-23 16:51:39 -07:00
686b7d3737
Report panics if metrics are setup
2018-07-23 16:51:39 -07:00
7c65e2fbfc
Rename variable to improve readability
2018-07-23 16:51:39 -07:00
96a6e09050
Enable metrics in the TPS client
2018-07-23 16:51:39 -07:00
b3f823d544
Alternate between token reclaim and distribution
2018-07-23 13:17:52 -07:00
ea21c7a43e
Limit bench-tps last_id poll to prevent infinite loop
2018-07-23 13:17:52 -07:00
437fb1a8d7
Add -a argument to client in case you want to override the address
...
advertised by the client
2018-07-23 13:17:52 -07:00
166099b9d9
Start validators in parallel in multinode test ( #727 )
2018-07-23 09:27:06 -07:00
c707b3d2e7
Display the total number of transactions for each node once complete
2018-07-22 23:19:33 -07:00
f7d294de90
Don't rsync leader.json on every iteration
2018-07-22 17:25:00 -07:00
4ecd0a0e45
Improve bench-tps logging
2018-07-22 16:26:49 -07:00
7ebbaaeb2d
Use bench-tps default duration
2018-07-22 16:26:49 -07:00
cdcf59ede0
Display a list of all discovered nodes
2018-07-22 11:32:44 -07:00
5d065133ef
Add data point for testnet startup and shutdown
2018-07-21 23:27:24 -07:00
d403808564
Restart solana.bench-tps
every 10 minutes to work around memory leak
...
cc: #728
2018-07-21 19:48:13 -07:00
3ffdca193d
Rename client-demo to bench-tps catchup
2018-07-21 15:46:03 -07:00
69688a18c7
Fix clippy warnings
...
Seems clippy is not linting any of the benches.
2018-07-21 11:36:20 -04:00
7193bf28b6
Move streamer bench into standalone executable
...
It doesn't make use of criterion (or libtest)
2018-07-21 11:36:20 -04:00
637f890b91
Rename client-demo to bench-tps
2018-07-21 11:36:20 -04:00
009d5adcba
Tell the client to transact for 1 hour blocks
2018-07-20 17:52:19 -07:00
52c55a0335
Log to /tmp/solana.log for easy runtime inspection of client activity
2018-07-20 17:45:13 -07:00
23428b0381
Migrate drone to poll_for_signature
2018-07-20 20:33:55 -04:00
0e305bd7dd
Add poll_for_signature
2018-07-20 20:33:55 -04:00
c068ca4cb7
Return Signature from transfer_signed and send_airdrop
2018-07-20 20:33:55 -04:00
6a8379109d
Sleep between retries
...
Don't congest a congested network.
2018-07-20 20:33:55 -04:00
120add0e82
Add support for a client node running continuous transactions on the net
2018-07-20 17:07:36 -07:00
b92ee51c2d
Add --loop flag to easily send transactions continuously
2018-07-20 17:07:36 -07:00
cba3b35ac9
Change not_enough_peers to the default log rate
2018-07-20 11:37:12 -07:00
313fed375c
Add counter for tx count and limit error messages
2018-07-20 11:37:12 -07:00
1e63702c36
cargo fmt
2018-07-20 13:09:01 -04:00
478ee9a1c4
move tests for 'is_valid_address()' into its own test
2018-07-20 13:09:01 -04:00
eb1e5dcce4
add test for 'is_valid_address()'
2018-07-20 13:09:01 -04:00
84225beeef
replace 'daddr' checks with 'is_valid_address()'
2018-07-20 13:09:01 -04:00
9cf0bd9b88
Adjust variable name
2018-07-20 09:50:24 -07:00
9d25d7611a
Protect against unsupported configurations to prevent non-obvious errors later
2018-07-20 09:47:01 -07:00
1abefb2c7a
Pass expected node count to testnet-sanity
2018-07-20 09:47:01 -07:00
bcc247f25f
Clarify code comment
2018-07-20 12:31:23 -04:00
68ca9b2cb8
Generalize testnet deployment scripts
2018-07-20 09:10:28 -07:00
686e61d50c
Display max TPS from all nodes at end of client demo ( #716 )
...
- Also lists node with 0 TPS and overall average TPS
2018-07-19 20:09:57 -07:00
17d927ac74
Count testnet nodes as a part of sanity
2018-07-19 12:05:21 -07:00
966c55f58e
Trim CUDA runtime
2018-07-19 11:47:31 -07:00
d76d3162e5
Slow down deployment more
2018-07-19 10:11:04 -07:00
d0a2d46923
Don't shellcheck in target/
2018-07-19 09:41:09 -07:00
a67f58e9a5
Add -c option to easily interrogate the number of nodes
2018-07-19 09:41:09 -07:00
fece91c4d1
Test multi node dynamic network ci ( #696 )
...
Buildkite automation for multinode test. This test is ignored by default because it requires a large cpu machine to run.
2018-07-19 07:50:44 -07:00
9d2d9a0189
Update Cargo.toml
2018-07-19 09:02:54 -04:00
6d3afc774a
Version bump
...
And authors update
2018-07-19 09:01:06 -04:00
88646bf27d
Version bump
2018-07-19 08:41:18 -04:00
0696f9f497
flush writer, makes partial deserialization a bit less likely
2018-07-18 22:53:33 -07:00
b2ea2455e2
Disable rolling updates
2018-07-18 21:16:03 -07:00
3f659a69fd
Prevent nodes from gossiping with themselves with different ids
2018-07-18 19:38:38 -07:00
2c62be951f
boot invalid height ( #688 )
2018-07-18 18:10:53 -07:00
2348733d6c
remove drone port magic number
2018-07-19 02:01:23 +02:00
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
7f810a29ff
Purge leader ( #687 )
...
* purge leader
* fixup!
* fixup!
2018-07-18 14:39:43 -07:00
fc1dfd86d2
Disable coverage again :-/
2018-07-18 12:54:50 -07:00
5deb34e5bd
Little more trace! logging
2018-07-18 12:54:50 -07:00
39df087902
Permit more than the requested amount of nodes
2018-07-18 12:07:50 -07:00
6ff46540b6
Install llvm-cov on nightly to revive coverage
...
Towards #433
2018-07-18 12:52:13 -04:00
dbab8792e4
Use real default value
2018-07-18 08:23:59 -07:00
4eb676afaa
Tunnel SOLANA_DEFAULT_METRICS_RATE into Snap nodes
2018-07-18 08:23:59 -07:00
a6cb2f1bcf
Version bump
2018-07-18 09:07:25 -04:00
28af9a39b4
Don't clone before borrowing
...
Clippy told us to change function parameters to references, but
wasn't able to then tell us that the clone() before borrowing
was superfluous. This patch removes those by hand.
No expectation of a performance improvement here, since we were
just cloning reference counts. Just removes a bunch of noise.
2018-07-18 08:04:31 -04:00
8cf5620b87
crdt_insert_new_entry_counter ( #680 )
2018-07-17 22:55:53 -07:00
85d6627ee6
Deploy in one ssh login in a further attempt to avoid hitting GCP login quota
2018-07-17 20:45:52 -07:00
611a005ec9
Avoid |wait| as it masks failures
2018-07-17 19:52:39 -07:00
90b3b90391
-p
2018-07-17 19:42:00 -07:00
fd4f294fd3
Rotate logs at 16MB
2018-07-17 19:42:00 -07:00
145274c001
Ensure log directories are go+r
2018-07-17 18:16:40 -07:00
df5d6693f6
Don't cache leader.json to make it easier to switch between nets
2018-07-17 18:16:40 -07:00
05c5603879
error counter
2018-07-17 17:28:23 -07:00
c2c48a5c3c
write stage broadcast counters
2018-07-17 17:28:23 -07:00
4af556f70e
Added tests for bad gossip address ( #672 )
2018-07-17 16:27:46 -07:00
8bad411962
env variable for default metrics rate that gets set for counters ( #670 )
...
* env variable for default metrics rate that gets set for counters
* ignore if env rate is set to 0
* use a slow rate by default
* fixed test
2018-07-17 15:26:10 -07:00
5b0418793e
Keep Snap fullnode/drone logs out of syslog, we're too spammy
2018-07-17 15:08:35 -07:00
4423ee6902
Renamed start_nodes.sh to remote_nodes.sh ( #669 )
2018-07-17 15:01:53 -07:00
f0c39cc84d
Remote multinode scripts cleanup ( #666 )
...
- Also added support for stop nodes
2018-07-17 13:48:25 -07:00
3d45b04da8
review comments
2018-07-17 15:51:32 -04:00
9e2f26a5d2
review comments
2018-07-17 15:51:32 -04:00
a016f6e82e
bulds
2018-07-17 15:51:32 -04:00
eb3e5fd204
server too
2018-07-17 15:51:32 -04:00
72282dc493
fast exit dynamic test
2018-07-17 15:51:32 -04:00
47a22c66b4
Include program name in panic metric
2018-07-17 12:13:22 -07:00
fb11d8a909
Install panic hook
2018-07-17 12:13:22 -07:00
7d872f52f4
Add set_panic_hook
2018-07-17 12:13:22 -07:00
d882bfe65c
Ignore/log RequestWindowIndex from self
2018-07-17 12:12:54 -07:00
103584ef27
Use public IP for client gossip, if UPnP fails ( #665 )
2018-07-17 11:23:32 -07:00
1fb537deb9
Do not generate gossip requests to unspecified addresses ( #657 )
...
* Do not generate gossip requests to unspecified addresses
* review comments
2018-07-17 09:44:48 -07:00
2bd48b4207
Display better deploy logs
2018-07-17 09:10:55 -07:00
f5a6db3dc0
Add daemon plugs
2018-07-17 08:24:37 -07:00
dd0c1ac5b2
Error counters for streamer ( #658 )
...
* error counters for streamer
* more counters
2018-07-17 08:20:35 -07:00
d8c9655128
Dynamic test assert ( #643 )
...
* log responder error to warn
* log responder error to warn
* fixup!
* fixed assert
* fixed bad ports issue
* comments
* test for dummy address in Crdt::new instaad of NodeInfo::new
* return error if ContactInfo supplied to Crdt::new cannot be used to connect to network
* comments
2018-07-16 19:31:52 -07:00
09f2d273c5
less intrusive counters ( #655 )
...
* less intrusive counters
* fixed arg
* tests
* comments
2018-07-16 18:33:50 -07:00
f6eb85e7a3
Permit Snap RUST_LOG to be overridden
2018-07-16 17:44:54 -07:00
0d85b43901
Fix input parameter processing for client num nodes ( #653 )
2018-07-16 17:23:35 -07:00
fdf94a77b4
CUDA is now configurable
2018-07-16 16:23:45 -07:00
af40ab0c04
Split start_nodes script ssh commands to individual scripts ( #642 )
2018-07-16 16:21:32 -07:00
015b7a1ddb
dash for namespaces ( #649 )
2018-07-16 15:55:54 -07:00
ab3e460e64
insert votes as they are observed
2018-07-16 13:39:20 -07:00
194a84c8dd
Add testnet-sanity.sh
2018-07-16 12:17:39 -07:00
51d932dad1
Connect validators to the right leader
2018-07-16 11:05:01 -07:00
561d31cc13
Add support for master.testnet.s.c
2018-07-16 10:08:58 -07:00
d6a8e437bb
Temporarily disable erasure
2018-07-16 08:15:47 -07:00
4631af5011
counters for vote not found
2018-07-15 20:31:23 -06:00
5d28729b2a
Use ed25519_init() for faster failures
2018-07-15 20:30:32 -06:00
8c08e614b7
Start validator nodes in parallel
...
- This speeds up overall network startup time
2018-07-15 19:11:52 -06:00
e76bf1438b
A validator and leader running from the same workspace no longer share an identity
2018-07-15 13:34:48 -07:00
4e177877c9
Add more error checking, better logging, avoid hitting GCP login quota
2018-07-15 09:27:25 -07:00
60848b9d95
Testnet sanity test failures will now turn the build red
2018-07-14 21:27:27 -07:00
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
1e8c36c555
Be less noisy
2018-07-14 20:42:00 -07:00
94d015b089
Demote log level
2018-07-14 20:42:00 -07:00
cfb3736372
Update buildkite-snap.yml
2018-07-14 17:55:03 -07:00
2b77f62233
Poll longer while waiting for an airdrop
2018-07-14 17:10:44 -07:00
e8d23c17ca
timeout++
2018-07-14 15:51:32 -07:00
a7ed2a304a
Add CUDA libraries
2018-07-14 15:27:24 -07:00
0025b42c26
Locate perf libs
2018-07-14 10:24:20 -07:00
3f7f492cc0
Fix snap client-demo fixes
2018-07-14 00:18:54 -07:00
490d7875dd
Snap client-demo fixes
2018-07-13 23:51:33 -07:00
4240edf710
solana.client-demo now runs client.sh for the bash extras
2018-07-13 22:57:38 -07:00
30e50d0f70
Log airdrop amount and client public key
2018-07-13 22:41:52 -07:00
751c1eba32
Run wallet-sanity against the new testnet
2018-07-13 22:21:41 -07:00
d349d6aa98
USE_SNAP=1 is now supported
2018-07-13 22:21:41 -07:00
1f9152dc72
Detect and report airdrop failures
2018-07-13 18:08:28 -07:00
1b9d50172b
Correct log message
2018-07-13 18:08:28 -07:00
084dbd7f58
Fail gracefully when leader.json is missing
2018-07-13 17:24:25 -07:00
58c0508f94
add drone information to multinode demo instructions
2018-07-13 17:16:55 -07:00
dcf82c024f
Surface hidden call to solana-keygen
2018-07-13 16:16:46 -07:00
b253ed0c46
Version bump
2018-07-13 15:10:45 -06:00
61db53fc19
Version bump
2018-07-13 15:04:10 -06:00
b0ead086a1
Fix bad copy'n'paste
2018-07-13 13:04:38 -07:00
a3b22d0d33
Faster benchmarking for CI
...
Increase that sample size manually when you're doing performance
work.
2018-07-13 14:03:50 -06:00
28d24497a3
Wait for the leader to initialize before starting the validators
2018-07-13 12:32:24 -07:00
05cea4c1da
dedup
2018-07-13 11:48:17 -07:00
260f5edfd6
Use correct leader.json
2018-07-13 11:48:17 -07:00
7105136595
Enable CUDA for the leader node
2018-07-13 11:36:12 -07:00
54db379bf2
Refresh in parallel
2018-07-13 11:19:31 -07:00
effbf0b978
Add script to refresh testnet nodes
2018-07-13 11:19:31 -07:00
8e7a2a9587
Validators now request an airdrop of 1 token before starting up
2018-07-13 10:02:19 -07:00
18e6ff4167
Fail gracefully when keypair file is unreadable
2018-07-13 10:00:55 -07:00
fa1cdaa91a
Add home plugs to enable Snap access to ~/.config/solana/id.json
2018-07-13 09:32:37 -07:00
b538b67524
Bump timeout for stable build
...
When the CI build machine caches are empty stable occasionally needs more than 20m
2018-07-13 09:17:45 -07:00
2b0f6355af
Tagged snap builds now correctly publish to the beta channel
2018-07-12 23:43:59 -07:00
11b9a0323d
fixups
2018-07-12 22:51:55 -07:00
710fa822a0
fixups
2018-07-12 22:51:55 -07:00
aaf6ce5aea
fixups
2018-07-12 22:51:55 -07:00
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
a3ff40476e
Banish stdin/stdout for ledger
...
step one: accept a "ledger file" argument instead of "outfile"
2018-07-12 22:51:55 -07:00
4cca3ff454
Fix keypair option in scripts
...
Thanks @CriesofCarrots!
2018-07-12 21:50:28 -06:00
3d9acdd970
Fix nightly
2018-07-12 21:50:28 -06:00
428f220b88
Battle shellcheck
2018-07-12 21:50:28 -06:00
10add6a8ac
Cleanup setup.sh
2018-07-12 21:50:28 -06:00
f06a8dceda
Fix keygen docs
...
Thanks @rob-solana
2018-07-12 21:50:28 -06:00
545f4f1c87
Pass the owner's keypair to fullnode-config
2018-07-12 21:50:28 -06:00
77543d83ff
Fix default keypair paths
2018-07-12 21:50:28 -06:00
eb6a30cb7c
In Wallet, make --tokens required and --to optional
2018-07-12 21:50:28 -06:00
97372b8e63
Add --outfile option to solana-keygen
2018-07-12 21:50:28 -06:00
cea29ed772
More keygen
2018-07-12 21:50:28 -06:00
b5006b8f2b
Migrate to solana-keygen
...
Most of #593
2018-07-12 21:50:28 -06:00
81c44c605b
Add solana-keygen
...
Same as solana-mint, but without a tokens field.
2018-07-12 14:06:43 -06:00
0b66a6626a
Use docker image's clippy
2018-07-12 09:40:40 -06:00
e8be4d7eae
Add clippy to CI
2018-07-12 09:40:40 -06:00
30f0c25b65
Fix all remaining clippy warnings
...
Fixes #586
2018-07-12 09:40:40 -06:00
73ae3c3301
Apply most of clippy's feedback
2018-07-12 09:40:40 -06:00
f98e9aba48
Apply clippy feedback to CLI apps
2018-07-12 09:40:40 -06:00
84c28a077a
Use custom rust nightly image with cargo-cov and clippy pre-installed
2018-07-12 07:25:56 -06:00
350cf62b90
Sequence client outgoing and incoming txs
2018-07-12 07:24:15 -06:00
aa4f30c491
Repay transactions from test accounts to client
2018-07-12 07:24:15 -06:00
3de979aa7c
Check client balance and only airdrop if less than TPS quota
2018-07-12 07:24:15 -06:00
5bc133985b
Start drone on remote leader node
...
- Also, enables CUDA for leader node
2018-07-11 20:08:18 -06:00
87156e1364
Fix flaky test
...
The test would fail any time the original value was coincidently
the same as the new bogus value.
2018-07-11 14:16:21 -07:00
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
2710ff271e
cargo fmt
2018-07-11 11:38:41 -06:00
468ac9facd
Refactor the "ReplicatedData" struct
...
Rename the "ReplicatedData" struct to the "NodeInfo" struct.
Also refactors and renames the members in this struct.
2018-07-11 11:38:41 -06:00
705720f086
fixups
2018-07-11 10:37:47 -07:00
a219e78f00
fixups
2018-07-11 10:37:47 -07:00
7a41868173
fixups
2018-07-11 10:37:47 -07:00
e16acec901
fixups
2018-07-11 10:37:47 -07:00
de44d7475e
fixups
2018-07-11 10:37:47 -07:00
c2dd009e0b
fixups
2018-07-11 10:37:47 -07:00
5a8da75d06
optimize process_ledger()
2018-07-11 10:37:47 -07:00
848c6e2371
Reduce sample size to restore number of transactions
2018-07-11 11:18:18 -06:00
e3882950cf
Run benchmarks from Rust stable CI
2018-07-11 11:18:18 -06:00
28f6fbee23
Port all benchmarks to Criterion
2018-07-11 11:18:18 -06:00
3144a70b18
Move all benchmarks to benches/
2018-07-11 11:18:18 -06:00
bed5438831
Improved streamer debug messages
...
distinguish between threads
2018-07-11 18:26:16 +02:00
6f991b3c11
Send keypair args for validators instead of leaders
2018-07-11 07:54:38 -06:00
03a8a5ed55
only submit to influx when we log
...
test accumilated value logging
lots of counters
higher influx rate
fix counter name
replicate-transactions
2018-07-11 07:53:39 -06:00
0c6d2ef1f4
Fix typo
2018-07-10 19:38:29 -06:00
d2be79f38c
Use iter_with_setup() to improve precision
2018-07-10 19:38:29 -06:00
cc89801b12
Port bank benchmark to Criterion
2018-07-10 19:38:29 -06:00
dfa05a8742
Move bank benchmark outside src
...
This will make it available to third party benchmarking tools.
2018-07-10 19:38:29 -06:00
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
0d4e4b18c2
Quiet counter ( #574 )
...
* only submit to influx when we log
* test accumulated value logging
2018-07-10 15:14:59 -07:00
7687436bef
some cleanup on messages
2018-07-10 13:32:31 -06:00
d531b9645d
review comments
2018-07-10 13:32:31 -06:00
6a1b5a222a
rebase builds
2018-07-10 13:32:31 -06:00
be2bf69c93
initial vote stage
...
wip
voting
wip
move voting into the replicate stage
update
fixup!
fixup!
fixup!
fixup!
fixup!
fixup!
fixup!
fixup!
fixup!
fixup!
update
fixup!
fixup!
fixup!
tpu processing votes in entries before write stage
fixup!
fixup!
txs
make sure validators have an account
fixup!
fixup!
fixup!
exit fullnode correctly
exit on exit not err
try 50
add delay for voting
300
300
startup logs
par start
100
no rayon
retry longer
log leader drop
fix distance
50 nodes
100
handle deserialize error
update
fix broadcast
new table every time
tweaks
table
update
try shuffle table
skip kill
skip add
purge test
fixed tests
rebase 2
fixed tests
fixed rebase
cleanup
ok for blobs to be longer then window
fix init window
60 nodes
2018-07-10 13:32:31 -06:00
0672794692
Cleanup leader restarts
...
Try to avoid adding a runtime codepath when all paths are
statically known.
2018-07-10 11:11:36 -06:00
c65c0d9b23
Expose fewer exit variables
2018-07-10 11:11:36 -06:00
0ee86ff313
Map counters to metrics
2018-07-10 11:11:21 -06:00
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
0a34cb8023
Include hh:mm in image name
2018-07-09 23:07:07 -06:00
227aa38c8a
Add image --family arg
2018-07-09 23:02:46 -06:00
1dd467ed7d
fix issue #568
2018-07-09 22:27:11 -06:00
922dffb122
fix erasure
2018-07-09 20:40:14 -06:00
63985d4595
renamed to contact_info
2018-07-09 20:40:14 -06:00
97dd1834d7
fix tests, more logs
2018-07-09 20:40:14 -06:00
2ea030be48
stick all the addrs into one struct
2018-07-09 20:40:14 -06:00
606cfbfe1e
Migrate fullnode and fullnode-config to clap for CLI arguments
2018-07-09 20:38:32 -06:00
90a4ab7e57
fixes issue #299
2018-07-09 14:50:14 -07:00
412e15fbdc
add test for populated window
2018-07-09 14:50:14 -07:00
ed0a590549
support an initial window filled with last up-to-WINDOW_SIZE blobs
2018-07-09 14:50:14 -07:00
71f05cb23e
Vet timestamp source from contract, not leader
...
Per @aeyakovenko, contracts shouldn't trust the network for
timestamps. Instead, pass the verified public key to the
contract and let it decide if that's a public key it wants
to trust the timestamp from.
Fixes #405
2018-07-09 08:40:07 -06:00
5f99657523
Remove last_time from bank
...
We had a test for this, but without `Bank::time_sources` (removed in the last
commit), there's no last_time that can be trusted.
2018-07-09 08:40:07 -06:00
587ae1bf3c
Remove time_sources from bank
...
I wrote this, but per
https://github.com/solana-labs/solana#code-coverage , if it doesn't
break a test, it's fair game to delete.
2018-07-09 08:40:07 -06:00
461dea69d9
Add SOLANA_METRICS_CONFIG environment variable
2018-07-07 19:40:09 -07:00
22c0e3cd54
Metrics v0.1
2018-07-07 19:40:09 -07:00
3ed9567f96
Remove exit variable from RequestStage
2018-07-05 17:32:41 -06:00
c4fa841aa9
Remove exit variable from respond [stage]
...
And drop the sender that feeds input to the responder.
2018-07-05 17:32:41 -06:00
f284af1c3d
Remove exit variable from WindowStage and retransmit [stage]
2018-07-05 17:32:41 -06:00
46602ba9c3
Remove exit variable from ReplicateStage
2018-07-05 17:32:41 -06:00
81477246be
Remove exit variable from VerifyStage
2018-07-05 17:32:41 -06:00
9bd63867aa
No longer need to ignore downstream send errors
...
By removing the exit variables, the downstream stages wait for
upstream stages to drop their senders before exiting.
2018-07-05 17:32:41 -06:00
d1c317fd5f
Remove exit variable from broadcast [stage]
2018-07-05 17:32:41 -06:00
cbd664ba4b
Remove exit variable from BankingStage
2018-07-05 17:32:41 -06:00
4bb7cefa15
Remove exit variable from WriteStage
2018-07-05 17:32:41 -06:00
82c86daa78
Exit write_stage on channel errors
2018-07-05 17:32:41 -06:00
b95db62be3
Handle errors consistently
...
Error handling is still clumsy. We should switch to something like
`error-chain` or `Result<T, Box<Error>>`, but until then, we can
at least be consistent across modules.
2018-07-05 17:32:41 -06:00
0f7fdd71cc
Remove executable bit from nat.rs
2018-07-05 17:32:41 -06:00
af1a7da0d5
Fix code comments
2018-07-05 17:32:41 -06:00
d698b3da3a
Revert tps_demo marker
2018-07-05 15:15:23 -06:00
6d275d571c
Clean up commented code
2018-07-05 15:15:23 -06:00
63acb82c87
Update drone airdrop test for tps_demo functionality
2018-07-05 15:15:23 -06:00
4d05b74314
Port solana-client-demo to clap crate for CLI arguments
2018-07-05 15:15:23 -06:00
37dd511356
Pass client.json location as argument
2018-07-05 15:15:23 -06:00
96c321da76
Update drone to allow TPS-sized airdrops
2018-07-05 15:15:23 -06:00
4701540cc9
Migrate solana-client-demo to use drone
2018-07-05 15:15:23 -06:00
f54615b4e3
UDP port for client demo in range
...
* This change will allow clients to run behind a firewall
with only certain port range opened for access
2018-07-05 10:17:35 -06:00
9c456b2fb0
Fixup the integration tests
2018-07-04 16:40:34 -06:00
77bf17064a
Add Service trait
...
Added a consistent interface to all the microservices.
2018-07-04 16:40:34 -06:00
44150b2e85
Remove unused crate from wallet CLI
2018-07-04 16:39:26 -06:00
8ec2fe15f3
Port solana-drone to clap crate for CLI arguments
2018-07-04 16:39:26 -06:00
687af3e3a4
Document source of magic net.core.rmem_max value
2018-07-04 14:24:01 -07:00
72ab83cd45
Collect timing metrics for CI jobs
2018-07-04 11:00:56 -07:00
4b07772e22
Add helper functions for reading entries
...
```rust
let entries = entry_writer::read_entries_from_str(entries_str).unwrap();
let entries_len = entries.len();
assert_eq!(entries_len, 7);
let bank = Bank::default();
bank.process_ledger(entries).unwrap();
assert_eq!(bank.transaction_count(), entries_len - 2);
```
2018-07-03 19:32:01 -06:00
22d2c962b2
ignore
2018-07-03 18:10:16 -06:00
e771d36278
Better logs
2018-07-03 18:10:16 -06:00
800c2dd370
make the leader append to the ledger file
2018-07-03 17:17:52 -06:00
f38842822f
Cleanup code duplication
2018-07-03 16:33:36 -06:00
88a6fb86bf
Clean up read_entries() and its usage
2018-07-03 16:33:36 -06:00
f6fe998ed4
Revert 1dd8c5ed36
...
Per @sakridge, this might cause a performance degradation. Need
to benchmark it.
2018-07-03 14:00:53 -06:00
16337d7c1e
unstable test
2018-07-03 14:00:39 -06:00
ae309f80f7
boot from file test
2018-07-03 14:00:39 -06:00
fa70b3bf70
split out files, fixed a bug @garious!
2018-07-03 14:00:39 -06:00
3a90f138b2
dynamit network test
...
* cleaned up fullnode api
* added debug_id to ReplicatedData and crdt for debugging
2018-07-03 14:00:39 -06:00
033f6dcbcb
Demote 'sorted leader' log
2018-07-03 08:24:28 -07:00
5d8b2f899a
Fix wallet doc
2018-07-02 19:21:03 -07:00
490205ab84
Fix sanity check
...
...that my last PR broke
2018-07-02 19:21:03 -07:00
2c0e704c82
Confirm the payment
2018-07-02 17:59:50 -07:00
253048f72d
Only tune networking for leader/validator
2018-07-02 17:59:50 -07:00
e09b8430ce
Add |wallet reset| command
2018-07-02 17:59:50 -07:00
9ae283dc3a
Expose wallet.sh as a Snap program temporarily
2018-07-02 17:59:50 -07:00
f95a79d145
Default to using testnet.s.c when running as a Snap
2018-07-02 17:59:50 -07:00
0dabdfd48e
Use zero to represent a nonexistent account
...
This also fixes a bug in the thin client where a nonexistent account
would have triggered a panic because we were using `balances[k]` instead
of `balances.get(key)`.
Fixes #534
2018-07-02 18:48:40 -06:00
d2bb4dc14a
Purge empty accounts
2018-07-02 18:48:40 -06:00
b4dc180592
More quotes to pacify shellcheck
2018-07-02 16:41:22 -07:00
263577773f
Set client config directory correctly in a Snap
2018-07-02 16:41:22 -07:00
7d708be121
Drone now grabs mint.json locally
2018-07-02 16:41:22 -07:00
feb1669d39
Correct locate rsync when running as a Snap
2018-07-02 15:57:30 -07:00
2cbfe41422
Abort nicer on drone connection failure
2018-07-02 15:57:30 -07:00
b7653865b1
Support testnet.solana.com as first argument
2018-07-02 15:57:30 -07:00
c72dced8fa
Report error when an invalid confirmation signature or public key is provided
2018-07-02 15:57:30 -07:00
6feed5fd56
rebased
2018-07-02 16:34:49 -06:00
b8fe5ae076
rename server to fullnode
2018-07-02 16:34:49 -06:00
7e657d65f3
merged f2ab08c65e
2018-07-02 16:34:49 -06:00
a166bb816e
wtfr
2018-07-02 16:34:49 -06:00
2952027d04
wtfr
2018-07-02 16:34:49 -06:00
430d9d9314
fixup!
2018-07-02 16:34:49 -06:00
fa247196c0
fullnode lib
2018-07-02 16:34:49 -06:00
5d17c2b58f
Return output receivers from each stage
...
Reaching into the stages' structs for their receivers is, in hindsight,
more awkward than returning multiple values from constructors. By
returning the receiver, the caller can name the receiver whatever it
wants (as you would with any return value), and doesn't need to
reach into the struct for the field (which is super awkward in
combination with move semantics).
2018-07-02 16:18:32 -06:00
6ee45d282e
some auto-detect of wallet commands
2018-07-02 15:51:12 -06:00
cfc3bd0696
Add manual wallet sanity test
2018-07-02 14:38:01 -07:00
3e0e09555a
Undo UPnP UDP port binding
2018-07-02 14:38:01 -07:00
1d8bb5144e
Drop -demo suffix
2018-07-02 14:38:01 -07:00
67e0100866
Bind to 0.0.0.0
2018-07-02 14:38:01 -07:00
f2ab08c65e
Reuse request UDP port for responses
2018-07-02 14:38:01 -07:00
04a93050e7
No need to share a write lock across single-threaded methods
2018-07-02 15:25:16 -06:00
03401041db
Correct signature argument name
2018-07-02 11:24:13 -07:00
6eac744a05
Only rsync leader.json once
2018-07-02 10:59:09 -07:00
ae29e2085f
Init env_logger
2018-07-02 10:59:09 -07:00
7ce0b58af8
Document pkg-config dependency
2018-07-02 10:42:56 -07:00
ea5663c0da
Demote log
2018-07-02 10:28:43 -07:00
a61bfae8a4
Document libssl-dev dependency
2018-07-02 10:28:43 -07:00
5716898216
setup.sh can now be more picky about the kind of config it creates
2018-07-02 09:22:26 -07:00
c0f9e452f2
mint.json is now private
2018-07-02 09:22:26 -07:00
4e3526394e
Use IntoInterator to simplify write_entries() usage
2018-07-02 09:51:39 -06:00
6806a14a3f
Use Cursor instead of tempfile.
...
Faster and one less dependency.
2018-07-02 09:51:39 -06:00
ec7e50b37d
Consolidate ledger serialization code
...
The new read_entries() works, but is overly-contrained. Not
using that function yet, but adding it here in the hopes some
Rust guru will tell us how to get that lifetime constraint out
of there.
Fixes #517
2018-07-02 09:51:39 -06:00
e7b7dfebf5
Add tests for process_ledger()
2018-07-02 09:51:39 -06:00
a9e0b27772
Speed up snap build
...
1. Use pre-installed host rust toolchain
2. Build reference/performance fullnode in same part to avoid rebuilding libraries
3. Merge scripts into same part
2018-07-01 17:47:51 -07:00
669164bada
Boot EntryWriter's Mutex
...
Finally!
2018-07-01 17:29:24 -06:00
4f3a291391
Move the writer into EntryWriter
2018-07-01 17:29:24 -06:00
56e37ad2f4
Limit sticky mutex to WriteStage
2018-07-01 17:29:24 -06:00
17de79a83a
Remove dead code
2018-07-01 17:29:24 -06:00
09e9139855
Move channel code to write stage
2018-07-01 17:29:24 -06:00
76fc5822c9
Send Vec<Entry> between stages instead of Entry
...
Might see a performance boost here.
2018-07-01 17:29:24 -06:00
c767a854ed
Remove useless Arc
2018-07-01 11:35:32 -07:00
b60802ddff
Refactor such that genesis can use entry_writer
2018-07-01 11:35:32 -07:00
1c35d59f26
Receive entries first, then write
2018-07-01 11:35:32 -07:00
adcaf715c6
Cleanup write_entries
2018-07-01 11:35:32 -07:00
1f9494221b
Make space for a write_entry() that only writes entries
2018-07-01 11:35:32 -07:00
466d6f76b9
Don't hide error in write_entry()
2018-07-01 11:35:32 -07:00
b05e6ce3db
Cleanup solana-genesis
2018-07-01 11:35:32 -07:00
1d812e78d5
Use hard linking to speed up target cache save/restore
2018-07-01 08:59:42 -07:00
fba494343f
Save/restore target/ directory between builds
2018-06-30 22:30:57 -07:00
0b878eccf8
Map HOME to grant docker containers access to the ~/.cargo registry cache
2018-06-30 21:50:15 -07:00
98772b16d6
Generalize solana-snap build trigger
2018-06-30 21:50:15 -07:00
bb82ff0c80
Don't wanna wait
2018-06-30 20:05:27 -07:00
71af03dc98
Skip snap build for PRs if nothing under snap/ is modified
...
Additionally relegate push snap build to a secondary CI pipeline
2018-06-30 20:05:27 -07:00
5671da4a0a
Generate a client-specific mint.json
2018-06-30 15:28:17 -07:00
d63493a852
Grant the snap build more time
2018-06-30 12:20:22 -07:00
c06582ba40
Wallet no longer uses global mint.json
2018-06-29 22:26:42 -07:00
450f271cf7
Move public IP address detection out of bash
2018-06-29 21:12:05 -07:00
a31889f129
Readme version bump
2018-06-29 21:39:41 -06:00
ba6a6f5227
Use clap crate for wallet CLI subcommands and arguments
2018-06-29 21:30:20 -06:00
9a38d61048
Version bump
2018-06-29 21:23:50 -06:00
903ec27754
Add BROKEN_NAT env variable to select Udp sender port workaround
2018-06-29 20:02:28 -07:00
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
4ffb5d157a
Disable coverage until issue #433 is resolved
2018-06-29 17:36:26 -07:00
816246ebee
Add doc
2018-06-29 17:28:12 -06:00
a9881aee05
Add base58-encoded addresses
2018-06-29 17:28:12 -06:00
7b5b989cfe
Print usage is a command is not provided
2018-06-29 17:28:12 -06:00
c4b62e19f2
Do Proof of History verification before appending entries to the bank
...
Note: replicate_stage is still using `process_entries()` because
changing it to `process_blocks()` causes the `test_replicate` test to
fail.
2018-06-29 15:35:39 -06:00
79a97ada04
Fix more shellchecks
...
Also, stops current nodes before pushing updates
2018-06-29 15:19:28 -06:00
da215d1a21
Fix failed shellchecks
2018-06-29 15:19:28 -06:00
9ffc50bead
Address review comments
2018-06-29 15:19:28 -06:00
f8352bac2f
Address review comments
...
* Only public IP address in the list
* formatting and other comments
2018-06-29 15:19:28 -06:00
27c1410fdc
Script to deploy multiple nodes (one as leader, others as validators)
...
* The built code is loaded to the nodes
* ssh_keys can be copied to the nodes for internode comm
* The nodes are started with their respective roles
* The client demo is started on the last node
2018-06-29 15:19:28 -06:00
9a4733bde7
Remove interactive behavior from wallet
2018-06-29 13:22:20 -06:00
f3df5df52c
add validator catchup to multi-node test
2018-06-29 10:39:41 -07:00
517d08c637
Cleanup
2018-06-29 09:51:13 -07:00
90dd794ae5
cargo fmt
...
rustfmt 0.6.1-stable (49279d71 2018-05-08)
2018-06-29 09:51:13 -07:00
e0dbbba8a3
fmt
2018-06-29 09:51:13 -07:00
705df55a7f
Fix program name
2018-06-29 09:51:13 -07:00
d354e85a9a
Return bool on signature check
2018-06-29 09:51:13 -07:00
e4e1f8ec1e
Missing -m parameter handling
2018-06-29 09:51:13 -07:00
0112a24179
Add confirm command to wallet, and update RPU to check bank for a signature
2018-06-29 09:51:13 -07:00
d680f6b3a5
Fix bash scripts:
...
* Use wallet name everywhere
* Update drone to use mint.json
2018-06-29 09:51:13 -07:00
47e732717f
more notes
2018-06-29 10:18:36 -06:00
ec56abfccb
Correct setup.sh args
2018-06-29 07:59:16 -07:00
e7cdb402fb
highlight
2018-06-29 07:16:03 -06:00
a3fe1965fb
spelling
2018-06-29 07:16:03 -06:00
5256e6833e
update
2018-06-29 07:16:03 -06:00
051cd2e1ff
more examples
2018-06-29 07:16:03 -06:00
51929e7df8
rfcs
2018-06-29 07:16:03 -06:00
a094507bb8
Lower default benchmarking numbers to make CI timeout
2018-06-29 07:14:47 -06:00
8effa4e3e0
Clear old blobs before putting in the new one
...
Otherwise we will just warn about overrun and not insert new blob
Also, break if the index we find is less than consumed otherwise
we can infinite loop
2018-06-29 07:14:47 -06:00
1c9e7dbc45
Don't recycle in the replicate stage
...
Windowing stage owns all the blobs now
2018-06-29 07:14:47 -06:00
799b249f02
Don't null blob window until we have to
2018-06-29 07:14:47 -06:00
7b4a378c92
Add public-ip option to snap validator with cuda
2018-06-28 21:14:29 -06:00
47917d00d1
Always bind to 0.0.0.0 regardless of what's being advertised to other nodes
2018-06-28 19:13:36 -07:00
a4c49af859
Add public-ip argument to setup.sh
2018-06-28 19:13:36 -07:00
1c1d7d1e0e
Log get_last_id errors
2018-06-28 19:13:36 -07:00
d28536d76e
Fix spelling of signature
2018-06-28 16:31:33 -07:00
63cfbb9497
Only register last entry after a split
2018-06-28 16:54:06 -06:00
231040b93e
Add tests
2018-06-28 12:28:43 -07:00
7c74afc35a
Relax recycler
...
Instead of asserting ref count is 1 before recycling, allow users
to recycle items early. If it turns out that was too early, and
allocate() wants to return it, then boot it and take a memory
allocation performance hit instead.
2018-06-28 12:28:43 -07:00
7878a011eb
Use a Mint to configure the wallet
...
* Send transactions from the mint's private key
* By default, send full balance to oneself
* By default, request the mint's number of tokens for airdrops
2018-06-27 17:35:50 -06:00
c05416e27d
Turn simple-client-demo into a simpler wallet
2018-06-27 17:35:50 -06:00
ee200d8fa0
Add DEBUG= flag to select debug binaries
2018-06-27 15:34:31 -07:00
2f42658cd4
...
2018-06-27 14:51:18 -07:00
d95e8030fc
...
2018-06-27 14:51:18 -07:00
4aedd3f1b6
Cleanup type aliases and imports
2018-06-27 15:06:18 -06:00
bb89d6f54d
Get back to 500k transactions
2018-06-27 13:50:27 -07:00
ed10841e3d
No longer spin up accounts for client-demo
...
Now that the Bank is single-threaded again, we can spin up new
accounts on the fly without concern of thread contention. Likewise,
we can send all transactions from a single account, which was also
problematic in the multi-threaded bank. Sending from one account will
also make client-demo straightforward to port to solana-drone.
2018-06-27 13:50:27 -07:00
6dac87f2a7
Add entry to snapscraft yaml; cleanup bash header
2018-06-27 13:01:29 -06:00
a167d0d331
CI cleanup
2018-06-27 13:01:29 -06:00
eed37820b5
Comments
2018-06-27 13:01:29 -06:00
124e1fa350
Bash scripts to go with simple-client-demo
2018-06-27 13:01:29 -06:00
ac40434cdf
Initial simple client demo commit
2018-06-27 13:01:29 -06:00
39354c06f8
take multiple log files, allow restart of leader, validator
2018-06-27 11:41:25 -07:00
faedb88de0
s/local/declare/g
2018-06-26 19:11:31 -07:00
5cd1fb486f
Automatically add rsync:// prefix to URLs that need it
2018-06-26 17:45:53 -07:00
5b5df49e6c
make client.sh behave like the others, i.e. no tee to a log
2018-06-26 17:02:24 -07:00
86f9277e2d
Add USE_SNAP flag
2018-06-26 16:32:55 -07:00
56b09bf0ac
cargo fmt
2018-06-26 16:51:07 -06:00
f4c4b9df9c
Only free in replicate if we did not hold the reference in window stage
...
And then free when we are consuming blobs
2018-06-26 16:51:07 -06:00
6e568c69a7
Preemptive strike
...
Should that blob have been passed to a recycler, it would have
had too high a reference count.
2018-06-26 16:51:07 -06:00
14d624ee40
Fix benchmarks too
...
This change will make these benchmarks way slower, because its now
cloning the transaction vector each iteration instead of the ref
counts. We need to rethink these.
2018-06-26 16:51:07 -06:00
d5c0557891
Fix test_replicate too
2018-06-26 16:51:07 -06:00
1691060a22
Assert recycler is given last reference to data
...
This patch likely fixes the sporadic failures in the following tests:
```
test server::tests::validator_exit ... FAILED
test streamer::test::streamer_send_test ... FAILED
test thin_client::tests::test_bad_sig ... FAILED
test drone::tests::test_send_airdrop ... FAILED
test thin_client::tests::test_thin_client ... FAILED
```
2018-06-26 16:51:07 -06:00
a5ce578c72
...
2018-06-26 16:23:41 -06:00
05edfad13a
Fix compiler warnings
2018-06-26 15:03:15 -07:00
136b43f461
Fix whitespace
...
TODO: Why didn't "cargo fmt" fail the build.
2018-06-26 15:03:15 -07:00
ac40c1818f
..
2018-06-26 13:57:10 -07:00
eb63dbcd2a
an Entry needs to be multiple of 4 bytes long
2018-06-26 13:57:10 -07:00
4e2f1a519e
whack next_entries_batched
2018-06-26 13:57:10 -07:00
55ec7f9fe9
add entry.has_more
...
* quick fix for really big genesis
* longer term fix for possible parallel verification over multiple
Blobs/Entries
2018-06-26 13:57:10 -07:00
b7ddefdbf9
Empty plug array is not accepted by the snap store
2018-06-26 12:49:40 -07:00
ce361c2cdc
Add Snap fullnode daemon
2018-06-26 12:32:33 -07:00
ed6ba55261
Add snap/ README
2018-06-26 12:32:33 -07:00
ec333d2bd6
Revert "-v was renamed to -t"
...
This reverts commit 8f4ce1e8d0
.
2018-06-26 12:32:33 -07:00
551f639259
Some pull request fixes(linting + documentation)
2018-06-26 12:31:04 -06:00
da3bb6fb93
ran linter
2018-06-26 12:31:04 -06:00
08bcb62016
added remote table to update respones
2018-06-26 12:31:04 -06:00
8f4ce1e8d0
-v was renamed to -t
2018-06-25 20:48:26 -07:00
4a534d6abb
Don't clone() Arc before recycling
...
This might fix an awful bug where the streamer reuses a Blob
before the current user is done with it. Recycler should probably
assert ref count is one?
* Also don't collect() an iterator before iterating over it.
2018-06-25 17:33:07 -06:00
b48a8c0555
Chunk blobs into window size to avoid window overrun
...
Fixes #447
2018-06-25 17:33:07 -06:00
1919ec247b
add a clock to validator windows (part 3 of #309 ) ( #448 )
...
* count entries processed by Bank
* initialize windows with initial height of Entries
2018-06-25 15:07:48 -07:00
3966eb5374
support MacOS bash and ifconfig properly
2018-06-25 13:14:36 -06:00
c22ef50cae
Client fixes, poll for unique last id and cache clients
...
So we don't keep running up the port range
2018-06-25 10:02:29 -06:00
be5f2ef9b9
Consolidate CI jobs
2018-06-24 22:28:24 -07:00
adfcb79387
Force install cargo-cov
2018-06-24 15:34:30 -06:00
73c4c0ac5f
Revert "cargo-cov installed by default in nightly?"
...
This reverts commit 6fc601f696
.
2018-06-24 15:34:30 -06:00
6fc601f696
cargo-cov installed by default in nightly?
2018-06-24 12:17:42 -06:00
07111fb7bb
Use llvm-cov instead of gcov
...
@marco-c called this a hack, but since grcov isn't working
out-of-the-box (panics on call to gcov), we'll take a stab at using
llvm-cov.
2018-06-24 12:17:42 -06:00
a06d2170b0
No need for rustfmt on nightly
2018-06-24 12:17:42 -06:00
7f53ea3bf3
Generate coverage with Rust nightly
...
Fixes #177
Thanks @marco-c!
2018-06-24 12:17:42 -06:00
b2accd1c2a
Run snap build sooner to better mask the delay
2018-06-24 10:24:32 -07:00
8ef8a8dea7
borrow checker
2018-06-24 11:17:55 -06:00
e929404676
comments
2018-06-24 11:17:55 -06:00
c2258bedae
fixed!
2018-06-24 11:17:55 -06:00
215fdbb7ed
nits
2018-06-24 11:17:55 -06:00
ee998f6882
fix docs
2018-06-24 11:17:55 -06:00
826e95afca
fix logs
2018-06-24 11:17:55 -06:00
47583d48e7
get rid of dummy test
2018-06-24 11:17:55 -06:00
e759cdf061
tests
2018-06-24 11:17:55 -06:00
88503c2a09
generic array fail case
2018-06-24 11:17:55 -06:00
d5be23dffe
fmt
2018-06-24 10:44:17 -06:00
80c01dc085
Use leader.json or ReplicatedData to get ports for drone
2018-06-24 10:44:17 -06:00
45b2549fa9
Reset bad TestNode edit
2018-06-24 10:44:17 -06:00
c7ce454188
Use pnet_datalink instead of all of pnet
...
pnet_transport takes a long time to build. It's been especially
painful from within a docker container for reasons I don't care
to understand. pnet_datalink is the only part of pnet we're using
so booting the rest.
2018-06-24 10:39:59 -06:00
7059ea42d6
comments
2018-06-24 09:19:05 -06:00
8ea1c29c9b
more notes
2018-06-24 09:19:05 -06:00
33bbfdbc9b
Retry flaky coverage/cuda builds on initial failure
2018-06-23 16:17:25 -07:00
5de54f8853
Make cuda/erasure build logs public
2018-06-23 16:17:25 -07:00
a1ac41218a
Document CUDA version
2018-06-23 16:17:25 -07:00
55fc647568
fix more shellcheck
2018-06-23 16:00:17 -07:00
e83e898eed
fix shellcheck's concerns
2018-06-23 16:00:17 -07:00
eb07e4588b
remove IPADDR, which was making Rob feel ill
...
IPADDR is simple, but not exactly what we need for testnet, where NAT'd
folks need to join in, need to advertize themselves as on the interweb.
myip() helps, but there's some TODOs: fullnode-config probably needs to
be told where it lives in the real world (machine interfaces tell us dick),
or incorporate something like the "ifconfig.co" code in myip.sh
2018-06-23 16:00:17 -07:00
563f834c96
Document how to update the snap
2018-06-23 15:29:22 -07:00
183178681d
Simply fetching perf libs
2018-06-23 12:54:38 -07:00
8dba53e494
debit undo ( #423 )
2018-06-23 06:14:52 -07:00
e4782b19a3
Document GCP setup
2018-06-23 02:12:20 -07:00
ec86b1dffa
Adapt to GCP-based CI
2018-06-23 02:12:20 -07:00
6cb8266c7b
cleanup ( #419 )
2018-06-22 23:26:42 -07:00
9c50302a39
Update rfc-001-smart-contracts-engine.md
2018-06-22 22:45:22 -07:00
3313c69898
remove ccal
2018-06-22 22:43:54 -07:00
530c6ca7ec
a bunch of updates
2018-06-22 22:43:54 -07:00
07ed2fb523
cleanup
2018-06-22 22:43:54 -07:00
d9ec380a15
cleanup
2018-06-22 22:43:54 -07:00
b60eb3a899
edits
2018-06-22 22:43:54 -07:00
b4df69791b
cleanup
2018-06-22 22:43:54 -07:00
c21b8a22b9
update
2018-06-22 22:43:54 -07:00
475a76e656
wip
2018-06-22 22:43:54 -07:00
7ba5d5ef86
first!
2018-06-22 22:43:54 -07:00
737dc1ddde
Per rustc 1.27.0, we can ensure nested results are used
2018-06-22 22:42:47 -07:00
164bf19b36
Update LICENSE
2018-06-22 22:41:04 -07:00
25976771d9
Version bump
2018-06-22 22:38:18 -07:00
f2198c2e9a
cargo fmt
...
rustc 1.27.0
```
$ cargo fmt --version
rustfmt 0.6.1-stable (49279d71 2018-05-08)
```
2018-06-22 22:23:55 -07:00
eec19c6d2c
move genesis to new Entry generation
2018-06-22 17:46:45 -07:00
30e03feb5f
Add initial CI subsystem documentation
2018-06-22 15:30:29 -07:00
58cd3bde9f
Add drone to snap package
2018-06-22 15:27:25 -07:00
662bfb7b88
fmt
2018-06-22 14:52:36 -07:00
5f3e3a17d3
Fix test_send_airdrop cap; add helpful panic msgs
2018-06-22 14:52:36 -07:00
feba2d9975
Set request cap to a reasonable number, based on 30min reset noted in issue #341
2018-06-22 14:52:36 -07:00
e3e3a1c457
Better drone request cap handling
2018-06-22 14:52:36 -07:00
90628f3c8d
Edit TestNode port logic to be consistent with new_leader (fixes hanging test_send_airdrop)
2018-06-22 14:52:36 -07:00
f6bcadb79d
Make airdrop amount variable
2018-06-22 14:52:36 -07:00
d4ac16773c
fmt
2018-06-22 14:52:36 -07:00
96f044d2bf
Clean up; add new_from_server_addr routine
2018-06-22 14:52:36 -07:00
f31868b913
Rename drone bin; fix usage statement
2018-06-22 14:52:36 -07:00
73b0ff5b55
Add request-count check and tests; fmt
2018-06-22 14:52:36 -07:00
64cf69045a
Add request-count check; Clean up solana-drone and fmt
2018-06-22 14:52:36 -07:00
e57dae0f31
Update config and dependencies for solana-drone
2018-06-22 14:52:36 -07:00
6386e7d5cf
Leave some tokens in the mint for solana-drone
2018-06-22 14:52:36 -07:00
4bad103da9
Add solana-drone CLI
2018-06-22 14:52:36 -07:00
30a26adb7c
Add solana-drone module to library
2018-06-22 14:52:36 -07:00
8be4adfc0a
Rename tr => tx and add back comments
2018-06-22 14:34:46 -07:00
fed4cc3965
Remove commented code/imports
2018-06-22 14:34:46 -07:00
7d1e074683
bump last_ids
2018-06-22 14:34:46 -07:00
00516e50a1
last_ids opt
2018-06-22 14:34:46 -07:00
e83d76fbd9
Remove mutexes
2018-06-22 14:34:46 -07:00
304f152315
rwlock balances table
2018-06-22 14:34:46 -07:00
3a82ebf7fd
Add multiple source accounts for benchmark
2018-06-22 14:34:46 -07:00
0253d34467
Address review comments
2018-06-22 14:18:45 -07:00
9209f9acde
Run multiple instances from same workspace
...
* Support running leader and validators from multiple machines
using the same NFS mounted workspace.
* Changes to setup, leader and validator scripts
2018-06-22 14:18:45 -07:00
3dbbb398df
use next_entries() in recorder, recycle blobs in reconstruct_from_blobs
2018-06-22 14:17:36 -07:00
17e8ad110f
Temporarily disable failing CI to get back to green
2018-06-22 11:29:31 -07:00
5e91d31ed3
issue 309 part 1
...
* limit the number of Tntries per Blob to at most one
* limit the number of Transactions per Entry such that an Entry will
always fit in a Blob
With a one-to-one map of Entries to Blobs, recovery of a validator
is a simple fast-forward from the end of the initial genesis.log
and tx-*.logs Entries.
TODO: initialize validators' blob index with initial # of Entries.
2018-06-22 09:58:51 -07:00
fad9d20820
Add assertion for now next_entry must be called
2018-06-21 21:24:32 -07:00
fe9a1c8580
Fix comment
2018-06-21 21:24:32 -07:00
cd6d7d5198
Remove redundant clones
2018-06-21 21:24:32 -07:00
771478bc68
Add simple CUDA version check, warn on mismatch
2018-06-21 13:42:06 -07:00
c4a59896f8
Run test-erasure in a container
2018-06-21 13:00:40 -07:00
3eb1608403
Skip --user if SOLANA_DOCKER_RUN_NOSETUID is set
2018-06-21 12:24:52 -07:00
8fde70d4dc
Erasure tests do not require a CUDA agent
2018-06-21 11:42:37 -07:00
5a047833ed
Run snap publishing directly on CUDA agent
...
This is necessary until we build a docker image that also contains a CUDA
installation
2018-06-21 11:42:37 -07:00
f6c28e6be1
Update snapcraft docker image contain snapcraft 2.42.1
2018-06-21 11:42:37 -07:00
0ebf10d19d
Snap cuda fullnode
2018-06-21 11:42:37 -07:00
d3005d3ef3
Updated setup and leader scripts
...
* Setup will us -b to set validator ports
* Leader script fixed to append .log to the log file
* Updated readme file
2018-06-20 19:05:38 -07:00
effcef2184
fixed sleep bug
2018-06-20 16:58:10 -07:00
89fc0ad7a9
Add convenience script to download performance libraries
2018-06-20 16:48:32 -07:00
410272ee1d
Update generic_array
...
Warning: this may have performance implications.
2018-06-20 11:41:54 -07:00
1c97bf50b6
Fix nightly
...
No longer ignore failures in the nightly build.
2018-06-19 17:38:04 -07:00
4ecd2c9d0b
update demo scripts
...
* add setup to combine init steps, configurable initial mint
* bash -e -> bash and be explicit about errors with || exit $?
* feed transaction logs to validator, too
2018-06-19 17:04:44 -07:00
e592243a09
De-double quote
2018-06-19 13:20:47 -07:00
2f4a92e352
Cleanup test
2018-06-19 12:36:02 -07:00
ceafc29040
fix linting errors, add retransmission fix to repair requests
2018-06-19 12:36:02 -07:00
b20efabfd2
added retransmission of repair messages
2018-06-19 12:36:02 -07:00
85b6e7293c
Add cleanup script to manage build agent disk space
2018-06-19 12:22:45 -07:00
6aced927ad
improve ledger initialization for fullnode
...
* use a line iterator on stdin instead of a line iterator on a buffer
* move some unwrap() to expect(), documenting failures
* bind entry type earlier (for kicks)
2018-06-19 09:28:35 -07:00
75997e6c08
Allow BUILDKITE_BRANCH in containers
2018-06-18 22:51:30 -07:00
9040d00110
Package solana as a snap
2018-06-18 17:36:03 -07:00
8ebc5c6b07
Suggest different validator port by default to coexist with leader port on the same machine
2018-06-18 17:36:03 -07:00
d4807790ff
Add snapcraft login credentials
...
This file was created as follows:
$ snapcraft export-login --snaps solana --channels beta,edge snapcraft.credentials
$ openssl aes-256-cbc -e -in snapcraft.credentials -out snapcraft.credentials.enc
2018-06-18 17:36:03 -07:00
0de5e7a285
attempt to understand entry
2018-06-18 16:48:59 -07:00
c40000aeda
Fix compiler warning
2018-06-18 15:49:41 -07:00
31198bc105
Fix cargo bench nightly
2018-06-18 13:20:39 -07:00
92599acfca
Abort when -l is not present or unreadable
2018-06-16 09:55:03 -07:00
f6e70779fe
Don't panic if sent a bad packet
2018-06-16 09:51:45 -06:00
3017bde686
Update README.md
2018-06-16 09:43:23 -06:00
9d84ec4bb3
Delete TODO
...
That comment predates the separation of RPU and TPU.
2018-06-16 08:59:30 -06:00
586141adb2
Cleanup TVU docs
2018-06-15 22:45:35 -06:00
3f763f99e2
Fail fast in CI when |cargo fmt| says no
2018-06-15 17:10:00 -07:00
15c7f36ea3
Improve error reporting
2018-06-15 17:10:00 -07:00
04d1a083fa
Skip |sudo sysctl ...| on macOS
2018-06-15 17:10:00 -07:00
327ee1dae8
Apply feedback from @aeyakovenko
2018-06-15 17:01:38 -06:00
22885c3e64
Add TVU ASCII art
2018-06-15 17:01:38 -06:00
94ededb54c
Add comments and limit digits for tps prints
2018-06-15 11:54:01 -06:00
af6a07697a
Change client-demo to run continuosly for some amount of time
...
Also retry for get_last_id/transaction_count if dropped.
2018-06-15 11:54:01 -06:00
5f1d8c95eb
Fix blob data size
2018-06-15 11:54:01 -06:00
7d9e032407
make sure we test large tables
2018-06-15 06:56:35 -06:00
bc918a5ad5
purger
2018-06-15 06:56:35 -06:00
ee54ce4727
min table size before purge
2018-06-15 06:56:35 -06:00
e85bf2f2d5
tests pass
2018-06-15 06:56:35 -06:00
a7460ffbd1
purge validators we havent seen for a long time
2018-06-15 06:56:35 -06:00
7fe1fd2f95
clean up fullnode cmdline
...
* fix documentation, other opt parameters
* add support for a named output file, remove hardcoded "leader.log"
* resurrect stdout as the default output
2018-06-15 00:41:07 -07:00
d30670e92e
clean up demo bash scripts
...
* allow other level of RUST logging
* avoid "echo" in favor of printf (builtin)
* single quotes for literals, double quotes for variables
2018-06-14 23:12:11 -06:00
9b202c6e1e
No longer flood log with emtpy entries
2018-06-14 18:04:36 -06:00
87946eafd5
Lower processing transaction message to debug by default
2018-06-14 17:08:11 -06:00
7575d3c726
Add timestamp to log messages
...
Upgraded env_logger and now we have timestamps and colorful messages.
Fixes #318
2018-06-14 17:07:58 -06:00
8b9713a934
Skip link_local v4 addresses and v6 address when v6 is not enabled
2018-06-14 16:10:31 -06:00
ec713c18c4
Revert client.sh script to use cargo
2018-06-14 11:56:36 -06:00
c24b0a1a3f
TVU rework ( #352 )
...
Refactored TVU, into stages
* blob fetch stage for blobs
* window stage for maintaining the blob window
* pulled out NCP out of the TVU so they can be separate units
TVU is now just the fetch -> window -> request and bank processing
2018-06-13 21:52:23 -07:00
34e0cb0092
cargo fmt
2018-06-13 19:17:21 -07:00
7b7c7cba21
changed atty library
2018-06-13 19:17:21 -07:00
c45343dd30
comments
2018-06-13 16:11:44 -06:00
b7f6603c1f
fix coverage build
2018-06-13 16:11:44 -06:00
2d3b052dea
allow for insertion of dummy entry points into the local table ( #346 )
...
* Needed for #341 . Create a dummy entry with public key 0..., but with a valid gossip address that we can ask for updates. This will allow validators to discover the full network by just knowing a single node's gossip address without knowing anything else about their identity.
* once we start removing dead validators this entry should get purged since we will never see a message from public key 0, #344
2018-06-13 11:42:30 -07:00
dcb6234771
Fix relative link to client demo
2018-06-12 23:29:04 -06:00
e44d423e83
Make version syntax consistent
...
Using no symbol implies its a symver caret requirement.
https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html
2018-06-11 15:51:25 -06:00
5435bb734c
Upgrade rand
2018-06-11 15:51:25 -06:00
13f59adf61
Update build status badge link to publicly available build log
2018-06-10 22:12:09 -07:00
0fce3368d3
Fix json perf counter print and add script to generate a chart
2018-06-09 10:55:22 -07:00
1ee5c81267
Fix benchmarking banking_stage
2018-06-08 15:50:36 -07:00
3bb9d5eb50
Use timing::timestamp for counters
2018-06-08 15:50:36 -07:00
efb23f7cf9
Ensure stuck builds eventually timeout
2018-06-07 19:08:03 -07:00
013f4674de
Target cuda agents
2018-06-07 19:08:03 -07:00
6966b25d9c
Don't mark a build as failed if line coverage drops
...
It's not always a problem if line coverage drops. For example,
coverage will drop if you make well-tested code more succinct.
It just means the uncovered code is just a larger percentage of
the codebase.
2018-06-07 19:09:25 -06:00
d513f56c8c
Readme version bump
2018-06-07 17:32:07 -06:00
7aa05618a3
data_replicator -> ncp
...
Fixes #327
2018-06-07 17:11:17 -06:00
cdfbbe5e60
Fix diagram typos
2018-06-07 17:11:17 -06:00
fe7d1cb81c
Race -> Or
...
Thanks for the suggestion @FishmanL!
2018-06-07 17:11:03 -06:00
c2a9395a4b
perf counters
2018-06-07 14:59:21 -07:00
586279bcfc
Add server diagrams
2018-06-07 15:24:44 -06:00
8bd10e7c4c
Cleanup top-level lib doc
2018-06-07 15:24:44 -06:00
928e6165bc
Add TPU & RPU diagrams
2018-06-07 15:24:44 -06:00
77c9e801aa
fixed client demo ( #325 )
...
* fixed client demo
2018-06-07 13:51:15 -07:00
c78132417f
fix deadlock
2018-06-07 13:52:33 -06:00
849928887e
undo
2018-06-07 13:52:33 -06:00
ba1163d49f
fix logs
2018-06-07 13:52:33 -06:00
6f9c89af39
fix deadlock
2018-06-07 13:52:33 -06:00
246b8b1242
No longer cat scripts
...
Because we keep changing those scripts and not updating the readme.
Also, this removes the "-b 9000" starting validators. Is that right?
Or should we be passing that to the validator config?
2018-06-07 12:17:43 -06:00
f0db68cb75
Add note about validator.json and -d flag to config generating scripts
2018-06-07 11:15:41 -06:00
f0d1fdfb46
Add missing module descriptions
2018-06-07 09:25:36 -06:00
3b8b2e030a
Better docs for transaction
2018-06-07 09:25:36 -06:00
b4fee677a5
Better docs for payment_plan
2018-06-07 09:25:36 -06:00
fe706583f9
Better docs for sigverify_stage
2018-06-07 09:25:36 -06:00
d0e0c17ece
Better docs for rpu
2018-06-07 09:25:36 -06:00
5aaa38bcaf
Better docs for write_stage
2018-06-07 09:25:36 -06:00
6ff9b27f8e
Better docs for entry
2018-06-07 09:25:36 -06:00
3f4e035506
Better docs for budget
2018-06-07 09:25:36 -06:00
57d9fbb927
Better docs for banking_stage
2018-06-07 09:25:36 -06:00
ee44e51b30
Better docs for the bank
2018-06-07 09:25:36 -06:00
5011f24123
Move more interesting content into first header
...
The first header and its content is the only text displayed on
GitHub's mobile page. Reorder so that the disclaimer is the only
information people see.
Disclaimer: IANAL and assume reordering these doesn't matter. :)
2018-06-07 09:25:36 -06:00
d1eda334f3
gdb
2018-06-07 09:25:08 -06:00
2ae5ce9f2c
Do not use cuda for multinode-demo validator component
2018-06-07 07:04:33 -06:00
4f5ac78b7e
Add readme to crates.io
2018-06-06 15:00:25 -06:00
074c9af020
Shellcheck again
2018-06-05 15:32:25 -06:00
2da2d4e365
More shellcheck
2018-06-05 15:32:25 -06:00
8eb76ab2a5
Fix shellcheck
2018-06-05 15:32:25 -06:00
a710d95243
Fix non-erasure blob nulling
2018-06-05 15:32:25 -06:00
a06535d7ed
cargo fmt
2018-06-05 15:32:25 -06:00
f511ac9be7
Fixes for receiving old blobs and nulling the window with coding
2018-06-05 15:32:25 -06:00
e28ad2177e
Receive fixes
2018-06-05 15:32:25 -06:00
cb16fe84cd
Rework to fix coding blob insertion
2018-06-05 15:32:25 -06:00
ec3569aa39
Move receive_index to correct place
2018-06-05 15:32:25 -06:00
246edecf53
Add receive_index for broadcast blobs and fix blobs_len position
2018-06-05 15:32:25 -06:00
34834c5af9
Store another size in the data block so it is coded as well
2018-06-05 15:32:25 -06:00
b845245614
Restore more of the blob window and add is_coding helper
2018-06-05 15:32:25 -06:00
5711fb9969
Generate coding for the current blob set not just the first coding set
2018-06-05 15:32:25 -06:00
d1eaecde9a
Fix deadlock and only push to contq if it's not a coding blob
2018-06-05 15:32:25 -06:00
00c8505d1e
Handle set_flags error
2018-06-05 15:32:25 -06:00
33f01efe69
Fixes for erasure coding
2018-06-05 15:32:25 -06:00
377d312c81
Revert log levels
2018-06-05 15:32:25 -06:00
badf5d5412
Add window recovery
2018-06-05 15:32:25 -06:00
0339f90b40
Fix gf-complete url and symlinks
2018-06-05 15:32:25 -06:00
5455e8e6a9
Review comments
2018-06-05 15:32:25 -06:00
6843b71a0d
Debug erasure ci script
2018-06-05 15:32:25 -06:00
634408b5e8
Add erasure build to ci
2018-06-05 15:32:25 -06:00
d053f78b74
Erasure refinements, fix generating orders table
2018-06-05 15:32:25 -06:00
93b6fceb2f
generate coding after indexing
2018-06-05 15:32:25 -06:00
ac7860c35d
indexing blobs then coding
2018-06-05 15:32:25 -06:00
b0eab8729f
Add erasure ci script
2018-06-05 15:32:25 -06:00
cb81f80b31
Enable logging for client demo
2018-06-05 15:32:25 -06:00
ea97529185
Fix erasure compilation
2018-06-05 15:32:25 -06:00
f1075191fe
Clean up comments: Event -> Transaction
2018-06-04 21:43:46 -06:00
74c479fbc9
Delete bitrotted docs
2018-06-04 21:43:46 -06:00
7e788d3a17
No longer need explicit refs in rustc 1.26
2018-06-04 21:43:46 -06:00
69b3c75f0d
Power of two chance ( #314 )
...
* fix validator script
* 1/2^30 that we fail due to random returning the same value
2018-06-04 13:32:34 -07:00
b2c2fa40a2
comments
2018-06-03 22:08:25 -06:00
50458d9524
more tests
2018-06-03 22:08:25 -06:00
9679e3e356
more tests
2018-06-03 22:08:25 -06:00
6db9f92b8a
crdt gossip tests
2018-06-03 22:08:25 -06:00
4a44498d45
Fix args in validator script, readme version, client-demo perf print
2018-06-02 21:55:27 -06:00
216510c573
repair socket and receiver thread ( #303 )
...
repair socket and receiver thread
2018-06-02 08:32:51 -07:00