Commit Graph

3887 Commits

Author SHA1 Message Date
anatoly yakovenko 2754ceec60
StatusDeque split into separate objects with their own root checkpoint strategy (#2613)
Split up StatusDeque into different modules

* LastIdQueue tracks last_ids
* StatusCache keeps track of signature statuses
* StatusCache stores success as a bit in a bloom filter
* Overhead for 1m Ok transactions is 4mb in memory
* Less concurrency between the objects, last_id and status_cache are read and written to at different points in the pipeline
* Each object has its own strategy for merging into the root checkpoint
2019-01-31 06:53:52 -08:00
Greg Fitzgerald 609e915169 Fix clippy warning
Always pass Arcs by reference. Then you'll only need to clone()
to cross thread boundaries.
2019-01-30 21:59:05 -07:00
Greg Fitzgerald 11f1c00ca7 Only send pubkey to ReplayStage 2019-01-30 21:59:05 -07:00
Greg Fitzgerald a74b24fdf0 Only store the fullnode's pubkey
Only vote_signer is used for signing
2019-01-30 21:59:05 -07:00
Greg Fitzgerald e25992a011 Always give Fullnode a vote signer
This will allow us to use the the signer's pubkey as the node id.

Disable voting with a configuration option.
2019-01-30 21:59:05 -07:00
Rob Walker 00bb5925e1
use a .gitignore'd file name for transactionCount (#2609) 2019-01-30 20:19:10 -08:00
Rob Walker 1b50fbbc90
remove Result<> from Blob accessors, add parent (#2608)
* remove Result<> from Blob accessors, add parent
* update chacha's golden
* fixup benches
2019-01-30 20:18:28 -08:00
Pankaj Garg a746969995
Don't set socket as blocking in recvmmsg for non Linux targets (#2611)
* Don't set socket as blocking in recvmmsg for non Linux targets

- The user of the function is controling this flag

* added a test
2019-01-30 19:47:53 -08:00
Greg Fitzgerald c536a0bf04 Remove mention of BCC 2019-01-30 18:00:04 -07:00
Anatoly Yakovenko 5b8e7bfcf2 s/voter/validator 2019-01-30 15:44:51 -07:00
Anatoly Yakovenko 3cbbceec78 rewarding 2019-01-30 15:44:51 -07:00
Anatoly Yakovenko e684fafb68 fmt 2019-01-30 15:44:51 -07:00
Anatoly Yakovenko 651342b3db cleanup fork selection 2019-01-30 15:44:51 -07:00
Michael Vines c01290438f Move virtual genesis tick into the ledger proper as entry 0 2019-01-30 14:02:07 -08:00
Michael Vines 9e9c82869a create_tmp_sample_ledger() need not return the genesis block 2019-01-30 14:02:07 -08:00
Michael Vines 494b143453 Delete create_tmp_genesis 2019-01-30 14:02:07 -08:00
Michael Vines 8cc1cde0fe create_tmp_sample_ledger() now returns entry_height and last_id 2019-01-30 14:02:07 -08:00
Greg Fitzgerald 883fc39c80 Rename EntryTree to Blocktree 2019-01-30 13:29:34 -07:00
Anatoly Yakovenko 1c0758e3bd Accounts refactoring for forking.
* Move last_id and signature dup handling out of Accounts.
* Accounts that handle overlays.
2019-01-30 11:36:49 -08:00
Greg Fitzgerald 668d353add Inline VoteSigner::new_vote_account
So that we can stop using the validator keypair to fund the
the voting account.
2019-01-30 10:42:42 -07:00
Greg Fitzgerald 06a1681fdc Remove redundant annotations 2019-01-30 10:42:42 -07:00
Anatoly Yakovenko a16e41002e reduce gossip nodes in concurrent tests for CI 2019-01-30 10:26:28 -07:00
Michael Vines 16e705dc75 Boil away unneeded Fullnode::new_* functions 2019-01-29 20:10:10 -08:00
Michael Vines b52228feb9 Remove assumption that the mint starts with 10_000 tokens 2019-01-29 20:10:10 -08:00
Michael Vines 25f25d0f82 new_fullnode: don't return the genesis_block, nobody uses it 2019-01-29 17:51:07 -08:00
Greg Fitzgerald 85e7046caf Use signer for signing transactions, not constructing them 2019-01-29 18:35:05 -07:00
Greg Fitzgerald c741a960b9 Generalize Transaction::new to accept anything that implements KeypairUtil 2019-01-29 18:35:05 -07:00
Greg Fitzgerald 34c8b2cc2f Remove redundant Arc 2019-01-29 18:35:05 -07:00
Greg Fitzgerald 278effad49 Implement KeypairUtil for VoteSignerProxy 2019-01-29 18:35:05 -07:00
Rob Walker a0bed5375d
remove println!, add check to keep it out (#2585)
* remove debugging prints

* remove println!, add check to keep it out
2019-01-29 16:02:03 -08:00
dependabot[bot] 9eecd549e4 Bump rand from 0.6.4 to 0.6.5 (#2564)
* Bump rand from 0.6.4 to 0.6.5

Bumps [rand](https://github.com/rust-random/rand) from 0.6.4 to 0.6.5.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/0.6.4...0.6.5)

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

* Update rand_core, rand_jitter, rand_os

fixes compile errors due to type mismatch from differing versions
2019-01-29 17:44:34 -06:00
Michael Vines a2c3369713
storage_state field doesn't actually exist 2019-01-29 12:34:59 -08:00
Rob Walker 1f9ab7f58f copy bank for TPU 2019-01-29 12:11:48 -08:00
Anatoly Yakovenko 3e1a926aa6 wip 2019-01-29 12:11:48 -08:00
dependabot[bot] 57f82934f2 Bump hex-literal from 0.1.1 to 0.1.2 (#2565)
Bumps [hex-literal](https://github.com/RustCrypto/utils) from 0.1.1 to 0.1.2.
- [Release notes](https://github.com/RustCrypto/utils/releases)
- [Commits](https://github.com/RustCrypto/utils/compare/opaque-debug_v0.1.1...hex-literal-v0.1.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-29 13:15:49 -06:00
dependabot[bot] f3a8aec64d Bump tokio from 0.1.14 to 0.1.15 (#2557)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 0.1.14 to 0.1.15.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Changelog](https://github.com/tokio-rs/tokio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-0.1.14...tokio-0.1.15)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-29 13:12:50 -06:00
dependabot[bot] e2e5bc65a9 Bump assert_cmd from 0.10.2 to 0.11.0 (#2580)
* Bump assert_cmd from 0.10.2 to 0.11.0

Bumps [assert_cmd](https://github.com/assert-rs/assert_cmd) from 0.10.2 to 0.11.0.
- [Release notes](https://github.com/assert-rs/assert_cmd/releases)
- [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md)
- [Commits](https://github.com/assert-rs/assert_cmd/compare/v0.10.2...v0.11.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>, Mark Sinclair Jr <mark@solana.com>

* Replace use of removed `Command::main_binary`

assert_cmd 11.0 removed this. replaced with
`Command::cargo_bin(env!("CARGO_PKG_NAME"))`
2019-01-29 13:10:48 -06:00
Michael Vines df136578d4 Remove unnecessary FullnodeConfig::rpc_port option 2019-01-29 10:22:39 -08:00
Michael Vines ae7f169027 Add FullnodeConfig struct to Fullnode::new* functions
This avoids having to touch *every* Fullnode::new* call site when
a new fullnode option is added
2019-01-29 09:42:48 -08:00
Tyera Eulberg 6da7a784f2
Stream entries (#2582)
* Add entry streaming option

* Fix tests

* Remove obsolete comment

* Move entry stream functionality to struct w/ trait in order to test without i/o
2019-01-29 00:21:27 -08:00
Michael Vines 12cddf725e Harmonize Fullnode::new* function arguments 2019-01-28 22:37:56 -08:00
Michael Vines d8861c2a5f Wait until the leader shows up on gossip 2019-01-28 22:37:56 -08:00
Rob Walker 145fb3675d
check for debugging lint in CI (#2578)
* check for debugging lint in CI
* nit
* add TODO
2019-01-28 18:32:30 -08:00
Michael Vines 77e8cb2718 Update nominal() checks for json genesis block 2019-01-28 17:08:59 -08:00
Michael Vines a8ea6471e7 Add ledger-tool tests to CI 2019-01-28 17:08:59 -08:00
Michael Vines bfaf5634a1 .unwrap() in tests instead of assert!()ing .is_ok() for a better failure message 2019-01-28 16:10:32 -08:00
Stephen Akridge 53afa64634 Remove storage_state from the bank
Construct in TVU and pass to RPC and StorageStage instead.
2019-01-28 15:41:41 -08:00
Rob Walker c9bf9ce094
eliminate re-use of a TX here, we're testing for empty account balance (#2576) 2019-01-28 15:21:08 -08:00
Tyera Eulberg a2e29fa71f Alphabetize and make consistent fullnode arguments 2019-01-28 14:32:32 -08:00
Pankaj Garg 637f58364a remove io from the tests 2019-01-28 13:52:13 -08:00