Pankaj Garg
2f4a3ed190
Use a separate channel to process votes in banking stage ( #3861 )
...
- This will help expedite the vote processing on peer nodes
2019-04-17 21:07:45 -07:00
Mark E. Sinclair
aa21f5343a
Remove broken read().unwrap() call to a non-shared packet
2019-04-17 21:24:40 -05:00
Sagar Dhawan
9c2809db21
Delete SharedPackets ( #3843 )
...
* Delete SharedPackets
* Fix bench and sigverify
2019-04-17 18:15:50 -07:00
Pankaj Garg
596f611ede
Revert "revert-revert-erasure and erasure fixes ( #3833 )" ( #3855 )
...
This reverts commit 6bef16a6a1
.
2019-04-17 18:04:30 -07:00
Sagar Dhawan
2b3218b5f2
Fix flaky tests by waiting for test node to boot ( #3845 )
2019-04-17 17:50:34 -07:00
Pankaj Garg
a2c8e3952f
Fixes to TPS calculation and reporting ( #3836 )
...
Fixes to TPS calculations and reporting
2019-04-17 15:37:01 -07:00
Rob Walker
6bef16a6a1
revert-revert-erasure and erasure fixes ( #3833 )
...
* fix erasure, more tests for full blobs, more metrics
* Revert "Revert "Use Rust erasure library and turn on erasure (#3768 )" (#3827 )"
This reverts commit 4b8cb72977
.
2019-04-17 15:13:54 -07:00
Rob Walker
01657ddfe7
packet.rs optimizations ( #3818 )
...
* packet.rs optimizations
* remove redundant and aggressive metric submission
* remove metrics submit(), get compiling again, honor log level in inc()
2019-04-17 14:14:57 -07:00
Greg Fitzgerald
51a2988bb2
Revert "Rename programs to instruction_processors ( #3789 )" ( #3824 )
...
This reverts commit 34344982a9
.
2019-04-17 15:05:49 -06:00
sakridge
4b8cb72977
Revert "Use Rust erasure library and turn on erasure ( #3768 )" ( #3827 )
...
This reverts commit b9bb5af4a5
.
2019-04-17 12:52:12 -07:00
Mark E. Sinclair
b9bb5af4a5
Use Rust erasure library and turn on erasure ( #3768 )
...
* split out erasure into new crate; add implementation using rust reed-solomon-library
* Track erasures with a &[bool] instead of indexes
* fix bug that reported the number of erasures incorrectly
* Introduce erasure `Session` for consistent config
* Increase test coverage; fix bugs
* Add ability to remove blobs from erasure meta tracking. test added
* Track deletion of coding blobs in blocktree via ErasureMeta. Added to
test
* Remove unused functions in blocktree
* add randomness to recovery thread to exercise recovery due to either new
data or coding blobs
* Add unit test for ErasureMeta index handling
* Re-enable test in broadcast stage
2019-04-16 23:00:24 -05:00
Rob Walker
e94f268346
reduce sigverify verbosity ( #3813 )
2019-04-16 18:25:53 -07:00
Amr Ali
34344982a9
Rename programs to instruction_processors ( #3789 )
...
* Rename programs to instruction_processors
* Updates around the code base to support instruction_processors rename
* Kabab instruction_processors
* Update Cargo.toml files and scripts to use instruction-processors
* Update Cargo.toml to use instruction-processors
* Update CI scripts to use instruction-processors
2019-04-16 22:39:00 +02:00
Michael Vines
63d66ece57
net/ testnet nodes now stake more lamports ( #3812 )
...
* Add --bootstrap-leader-lamports
* Generalize --no-stake into --stake NUM
* Use a large stake for net/ fullnodes
* Setup vote account before starting fullnode to avoid mixed log output
2019-04-16 13:03:01 -07:00
Michael Vines
d77359914f
Log the spy node id by default for better debug ( #3796 )
2019-04-15 20:58:37 -07:00
Dan Albert
8638b3bb19
Update Cargo.toml files for version = 0.14.0
2019-04-16 02:50:20 +00:00
anatoly yakovenko
68fc303b9b
Rework Accounts for fast squash, hashing state and checkpoint recovery. ( #3613 )
...
* accounts rewrite
* ignore grow tests
* skip duplicate roots
* allow for a root race
* logger
* accounts_index tests
* tests
* tests
2019-04-15 17:15:50 -07:00
Sagar Dhawan
3fcf03ff3e
Refactor LocalCluster and add support for listener nodes ( #3790 )
2019-04-15 15:27:45 -07:00
Greg Fitzgerald
80f3568062
Upgrade to Rust 1.34.0 ( #3781 )
...
* Upgrade to Rust 1.34.0
* Remove redundant closures
Thanks Clippy!
2019-04-15 15:56:08 -06:00
Michael Vines
d026ebb83a
Use tvu_peers() since validators no longer run an RPC port by default ( #3784 )
2019-04-15 13:25:09 -07:00
Rob Walker
64c6f05da2
persist set_root() and use it in blocktree_processor to limit squashes ( #3782 )
...
* rename locktower's slot to epoch
* persist set_root() and use it in blocktree_processor to limit squashes
2019-04-15 13:12:28 -07:00
Rob Walker
5c4689a326
rename locktower's slot to epoch ( #3776 )
2019-04-15 10:46:14 -07:00
Rob Walker
6859907df9
more rigorous erasure constants, comments ( #3766 )
...
* more rigorous erasure constants, comments
* new header size means new golden
2019-04-14 21:10:09 -07:00
Rob Walker
de52747950
remove max_tick_height replicode ( #3765 )
2019-04-14 19:15:31 -07:00
Rob Walker
bd1db51e07
delete db_window.rs, move contents to window_service, clean up process_blobs ( #3746 )
2019-04-14 18:52:05 -07:00
Rob Walker
dd005fb50e
fix broadcast to *always* call erasure generation, simplify generator, test slot reset better ( #3764 )
2019-04-14 18:12:37 -07:00
Rob Walker
542bafeb71
groom packet.rs, add blob.data alignment ( #3763 )
2019-04-14 17:30:08 -07:00
Rob Walker
e57a0ab05d
test some bits ( #3762 )
2019-04-14 17:10:30 -07:00
Pankaj Garg
2c745ce108
Shorten recv wait when there are buffered packets in banking stage ( #3757 )
...
- packets are buffered on leader rotation, when the next leader is
unknown
- shortening the wait allows the banking stage to poll for next
leader more frequently
2019-04-14 12:34:07 -07:00
Michael Vines
f6aa90e193
Add fullnode --dynamic-port-range option
2019-04-14 07:08:29 -07:00
Michael Vines
2277a39dd2
Default solana-gossip log-level to 'info'
2019-04-14 07:07:15 -07:00
Pankaj Garg
ee35ed5250
Refactored buffered packet forwarding code ( #3750 )
...
- Added unit tests
- Don't consume packets if bank is not known
2019-04-13 23:19:54 -07:00
Stephen Akridge
92b5e131fe
Name sigverify threads
2019-04-13 11:24:36 -07:00
Sagar Dhawan
1e8f83a74a
Use a better name for new api
2019-04-12 14:58:22 -07:00
Sagar Dhawan
1db80d79fc
Update get recent blockhashes to return confirmed blockhashes only
2019-04-12 14:58:22 -07:00
Stephen Akridge
1dac4c33b8
Change sigverify counter from entries to packets
...
batch or entries kind of useless since it can have some
variable number of packets
2019-04-12 13:19:46 -07:00
Pankaj Garg
44ebfa736a
Don't forward buffered packet to the same node ( #3712 )
...
- instead, process the packets
2019-04-11 17:23:45 -07:00
Sagar Dhawan
877ec08280
Send recent votes in Vote Transactions ( #3734 )
2019-04-11 14:48:36 -07:00
Rob Walker
efd19b07e7
implement erasure-based recovery inside blocktree ( #3739 )
...
* implement recover in blocktree
* erasures metric
* erasure metrics only
* fixup
2019-04-11 14:14:57 -07:00
carllin
787dc5748a
Fixed DuplicateSigs ( #3727 )
...
* Fixed DuplicateSigs by not recording errors in signature cache of bank
2019-04-11 11:51:34 -07:00
Rob Walker
e1d5bb1a26
add redundant broadcast ( #3724 )
...
* add redundant broadcast
* crank up to full redundancy
* Update broadcast_stage.rs
* Update broadcast_stage.rs
* Update broadcast_stage.rs
* Update broadcast_stage.rs
2019-04-11 09:15:17 -07:00
Jack May
d0f46d6a8a
Cleanup client traits and create super trait ( #3728 )
2019-04-11 00:25:14 -07:00
Rob Walker
4b6c0198ad
reset coding generator on slot boundaries ( #3726 )
2019-04-10 18:18:55 -07:00
Rob Walker
f1e7237c09
vote_api cleanup ( #3710 )
...
* vote_api cleanup
* fixups
* fixup
* remove unused code
* revert removal of serialize and deserialize
* ...
* increase coverage, bootstrap staking
* Sagar's STAKE to my VOTE
2019-04-10 17:52:47 -07:00
Sagar Dhawan
1b5845ac3e
Fix getting votes from gossip ( #3723 )
2019-04-10 17:16:08 -07:00
Sagar Dhawan
d2ea782372
Always use bootstrap vote account for leader
2019-04-10 15:51:00 -07:00
Greg Fitzgerald
894135a084
Less pub in PohRecorder
2019-04-10 12:50:45 -07:00
Pankaj Garg
7da4142d33
Process votes from gossip only in leader node ( #3707 )
2019-04-09 22:06:32 -07:00
carllin
003fd6545c
Logging for unexpected validator errors ( #3697 )
2019-04-09 15:05:43 -07:00
Stephen Akridge
2c93062f54
Improve banking_stage performance messages
...
Use transaction count instead of batch count,
and set the recv_start from when we finished processing
the previous batch to get a more accurate number.
2019-04-09 14:54:12 -07:00
Pankaj Garg
dc6c34da5d
Fast-track vote signature verification and processing ( #3695 )
2019-04-09 12:57:12 -07:00
carllin
d4eebcc2aa
Check for frozen in confirm_forks ( #3678 )
2019-04-09 11:45:38 -07:00
carllin
483cc2fa4e
Support old repair strategy for reparing slots in a range for supporting replicators ( #3665 )
2019-04-08 12:46:23 -07:00
Jack May
44b391096d
Configurable local cluster native processors ( #3676 )
2019-04-08 11:15:58 -07:00
carllin
444e87f888
Fix metric ( #3664 )
2019-04-06 21:57:01 -07:00
carllin
20aa4434e2
Fix repair ( #3581 )
...
Add DetachedHeads repair protocol
Add DetachedHeads repair test
Repair starting from root
2019-04-06 19:41:22 -07:00
Greg Fitzgerald
878a842611
Move append_vec bench to the crate with append_vec ( #3650 )
...
* Move append_vec bench to the crate with append_vec
* Use black_box to tell the compiler not to optimize away test data
```
pub fn black_box<T>(dummy: T) -> T {
unsafe {
let ret = std::ptr::read_volatile(&dummy);
std::mem::forget(dummy);
ret
}
}
```
* Revert "Use black_box to tell the compiler not to optimize away test data"
This reverts commit 5610b8ee957f1d8bf6e270e392859e8b23b1e472.
* Use black_box to tell the compiler not to optimize away test data
* Create bench directories
2019-04-06 07:18:56 -06:00
Tyera Eulberg
68e21911eb
Remove redundant transfer_signed
2019-04-05 22:04:32 -07:00
Tyera Eulberg
95cc36af96
Impl SyncClient and AsyncClient for ThinClient
2019-04-05 22:04:32 -07:00
Tyera Eulberg
f349c1f0dc
Get everything off RpcSignatureStatus
2019-04-05 22:09:29 -06:00
Tyera Eulberg
90c1300bb6
Plumb TransactionError through Rpc
2019-04-05 22:09:29 -06:00
Sagar Dhawan
f5f4434e0a
Remove unnecessary lock in sigverify
2019-04-05 16:57:45 -07:00
Sagar Dhawan
adcda3c715
Remove airdrop dependency from replicators
2019-04-05 16:11:39 -07:00
Rob Walker
a5b5248a09
move vote_accounts up ( #3647 )
2019-04-05 14:23:00 -07:00
Tyera Eulberg
ef5df6f3fe
Add server specification
2019-04-05 11:44:57 -07:00
Tyera Eulberg
2f90f9fbd4
Version all jsonrpc crates, in core too
2019-04-05 11:44:57 -07:00
Greg Fitzgerald
46e6911ec1
Add get_signature_status() to SyncClient
...
And move bank::Result to transaction module.
2019-04-05 10:22:05 -07:00
carllin
4ea19b90a4
Fix update_ancestor_stakes in locktower ( #3631 )
...
* Fix update_ancestor_stakes in locktower
* Add test for vote threshold
2019-04-05 03:05:31 -07:00
Greg Fitzgerald
35298e01a8
Remove Instruction wrapper structs and name functions after enum fields
2019-04-03 13:34:27 -07:00
Greg Fitzgerald
867f6f107b
Rename SystemInstruction::Move to SystemInstruction::Transfer
2019-04-03 08:35:57 -06:00
Greg Fitzgerald
43bb813cbe
Rename 'new_account' to 'new_user_account'
...
And 'new_program_account' to 'new_account'
2019-04-02 21:24:42 -06:00
Greg Fitzgerald
978ff87b76
Fix potential storage bug
...
The previous code was assuming the instruction index and the
program_id index were the same. That's always true for
single-instruction transactions, but not for multiples.
2019-04-02 19:00:35 -06:00
Greg Fitzgerald
4c0bc1fd88
Add program_ids() methods
...
Added CompiledInstruction::program_id() so that we don't need to pass
around instruction indexes just for Message::program_id().
Also added Message.program_ids() that returns a slice so that we
can move those pubkeys into Message::account_keys.
2019-04-02 19:00:35 -06:00
Greg Fitzgerald
20189c5d45
Bump hashbrown to 0.2.0
2019-04-02 16:37:21 -06:00
Mark E. Sinclair
d90b8c331d
Refactor blocktree storage abstraction ( #3588 )
2019-04-02 16:58:07 -05:00
Sagar Dhawan
cd634801a2
Re-enable test but remove replicators from config
2019-04-02 10:38:30 -07:00
Sagar Dhawan
5f10a87dec
Ignore Flaky Local Cluster test
2019-04-02 10:56:29 -06:00
Greg Fitzgerald
fa1c1e3734
Rename native programs to native instruction processors
2019-04-02 10:36:19 -06:00
carllin
d228b6467c
Implement finalizer so that all locked accounts are dropped ( #3585 )
...
* Implement finalizer so that all locked accounts are dropped when finalizer goes out of scope
* Add test for tx error with lock conflict
* Fix double unlock from destructor running after a call to unlock
2019-04-02 03:55:42 -07:00
Tyera Eulberg
6ff2a0a75e
Rework discover to handle additional parameters, and be unit-testable
2019-04-01 23:05:25 -06:00
Greg Fitzgerald
fcef54d062
Add a constructor to generate random pubkeys
2019-03-31 16:23:18 -06:00
carllin
8660c3581e
Add squashing metrics ( #3573 )
2019-03-29 21:21:59 -07:00
carllin
f886b3b12b
Fix resetting PohRecorder to wrong bank ( #3553 )
...
* Check whether future slot already has transmission
2019-03-29 20:00:36 -07:00
Greg Fitzgerald
5646daa820
Delete lots of fee parameters
...
So many zeros!
2019-03-29 19:21:51 -06:00
Greg Fitzgerald
7896e8288d
Replace Transaction::fee with a FeeCalculator
2019-03-29 19:21:51 -06:00
carllin
9369ea86ea
Track detached slots in blocktree ( #3536 )
...
* Add contains_all_parents flag to SlotMeta to prep for tracking detached heads
* Add new DetachedHeads column family
* Remove has_complete_parents
* Fix test
2019-03-29 16:07:24 -07:00
carllin
dee5ede16d
Get rid of unnecessary frozen banks ( #3572 )
2019-03-29 16:06:48 -07:00
Stephen Akridge
0887832b00
Early exit if buffered packets is empty
2019-03-29 13:40:07 -07:00
Greg Fitzgerald
8e04fadb05
Cleanup magic numbers
...
Rename `num_signatures` to `num_required_signatures` to
disambiguate it from `tx.signatures.len()`.
2019-03-29 13:03:29 -07:00
Greg Fitzgerald
31f8b6d352
Integrate Message into Transaction
2019-03-29 13:03:29 -07:00
Greg Fitzgerald
98d60e6124
Expose a method for getting the Message from a Transaction
...
This currently constructs the message, but when message
is integrated, it can return a `&Message`.
2019-03-29 13:03:29 -07:00
Tyera Eulberg
f482c9ab61
Functionalize tx serialization; make testing more explicit
2019-03-29 11:31:46 -06:00
Tyera Eulberg
75dcd97f5f
Update test to deserialize txs
2019-03-29 11:31:46 -06:00
Tyera Eulberg
4776dc36ab
Map entry txs to serialized txs in blockstream
2019-03-29 11:31:46 -06:00
Greg Fitzgerald
753d0dcabe
Fix the cuda build
...
And add a test to check the condition that the cuda tests are
exercising.
2019-03-29 08:25:56 -06:00
Greg Fitzgerald
b708998d9d
Fix chacha build
2019-03-29 08:25:56 -06:00
Greg Fitzgerald
c4bc710d3a
Use Serde's `with` attribute to shorten length encodings in Transaction
2019-03-29 08:25:56 -06:00
Sathish Ambley
857dc2ba47
Remove custom serialization
2019-03-29 08:25:56 -06:00
Greg Fitzgerald
7a81f327ce
Add sigverify tests
2019-03-28 19:42:11 -06:00
Greg Fitzgerald
2ab50cbae8
Move untested code out of SDK
...
verify_signature() was only used in a test that was testing
binary layout. It only worked because the test transaction only
had one signature.
from() was only used by verify_signature() and that's something
we'd typically called `pubkey()`.
hash() didn't return the hash of the Transaction, as you might
guess. It's only used for PoH, so move it into Entry.
2019-03-28 14:24:59 -06:00