485013b7ce
Revert "AppendVecs that can return references and read/append without locks ( #3713 )"
...
This reverts commit f669ae5868
.
2019-04-11 14:47:30 -07:00
d31989f878
CustomError from Vec->u32
2019-04-11 13:59:48 -07:00
f669ae5868
AppendVecs that can return references and read/append without locks ( #3713 )
...
* AppendVec with raw pointers
* appendvecs
* imports
* review
* review comments
* clippy
2019-04-11 13:16:56 -07:00
a28c3b0e9a
Consume Bank in BankClient
...
This will allow BankClient to spin up a thread to use the Bank.
It'll also ease the transaction from BankClient to ThinClient since
it won't let you depend on Bank.
Drawback, you the transition from Bank to BankClient will be harder
because the Bank methods are inaccessible.
2019-04-11 12:16:33 -07:00
787dc5748a
Fixed DuplicateSigs ( #3727 )
...
* Fixed DuplicateSigs by not recording errors in signature cache of bank
2019-04-11 11:51:34 -07:00
8ada4bfd1f
Remove test now covered by Vote crate
2019-04-11 10:53:11 -07:00
5d4624e75f
Use Bank::add_instruction_processor to bypass manual build step
2019-04-11 10:53:11 -07:00
d0f46d6a8a
Cleanup client traits and create super trait ( #3728 )
2019-04-11 00:25:14 -07:00
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
c0808d01f8
Add tests
2019-04-10 15:51:00 -07:00
7fd5e51168
Make sure bank 0 is votable and correctly designate signer
2019-04-10 15:51:00 -07:00
7b2abf2087
Update count for the right store ( #3683 )
2019-04-09 13:48:13 -07:00
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 5610b8ee95
.
* Use black_box to tell the compiler not to optimize away test data
* Create bench directories
2019-04-06 07:18:56 -06:00
d30049b8eb
test for debit of TX fees on full process_transaction() ( #3643 )
...
* fix double debit of TX fees
* add test that fails when removing that line
* put that line back in
* comments
2019-04-05 16:55:58 -07:00
a5b5248a09
move vote_accounts up ( #3647 )
2019-04-05 14:23:00 -07:00
9f046a023e
move transaction_count up ( #3618 )
...
* move transaction_count up
* fixup
2019-04-05 10:42:25 -07:00
46e6911ec1
Add get_signature_status() to SyncClient
...
And move bank::Result to transaction module.
2019-04-05 10:22:05 -07:00
d3844ef32a
Add AsyncClient
2019-04-05 10:22:05 -07:00
1598a02a7a
Wrap all client errors with TransportError
2019-04-04 12:00:19 -06:00
167f5bdc58
Add get_balance() and get_account_data() to SyncClient
...
Migrate tests to use them.
2019-04-04 12:00:19 -06:00
5cd7bccdf3
Add SyncClient and use from BankClient
2019-04-04 12:00:19 -06:00
35298e01a8
Remove Instruction wrapper structs and name functions after enum fields
2019-04-03 13:34:27 -07:00
867f6f107b
Rename SystemInstruction::Move to SystemInstruction::Transfer
2019-04-03 08:35:57 -06:00
43bb813cbe
Rename 'new_account' to 'new_user_account'
...
And 'new_program_account' to 'new_account'
2019-04-02 21:24:42 -06:00
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
20189c5d45
Bump hashbrown to 0.2.0
2019-04-02 16:37:21 -06:00
a0041cec97
Rename Runtime to MessageProcessor
2019-04-02 12:49:26 -06:00
fa1c1e3734
Rename native programs to native instruction processors
2019-04-02 10:36:19 -06:00
947cdd8748
Rename system_program to system_instrution_processor
2019-04-02 10:36:19 -06:00
0a9f063d3e
Rename native_program.rs to instruction_processor_utils.rs
...
Prefer the term "instruction processor" over "program". Reserve
the term "native" for the loader and shared object it loads.
Compiling an instruction processor to BPF shouldn't imply changing
to a non-native entrypoint.
2019-04-02 10:36:19 -06:00
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
3152090a66
update with review comments
2019-04-01 15:54:53 -06:00
9a0f9b910e
add bench tests for squash operations
2019-04-01 15:54:53 -06:00
f853c39169
remove unused member
2019-04-01 15:54:53 -06:00
75ad1305c0
Cache vote accounts and optimize squash
2019-04-01 15:54:53 -06:00
fcef54d062
Add a constructor to generate random pubkeys
2019-03-31 16:23:18 -06:00
8660c3581e
Add squashing metrics ( #3573 )
2019-03-29 21:21:59 -07:00
5646daa820
Delete lots of fee parameters
...
So many zeros!
2019-03-29 19:21:51 -06:00
7896e8288d
Replace Transaction::fee with a FeeCalculator
2019-03-29 19:21:51 -06:00
3b516c0710
Fix build
2019-03-29 14:56:29 -06:00
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
31f8b6d352
Integrate Message into Transaction
2019-03-29 13:03:29 -07:00
10239c3b3c
Replace recursive status cache with a single global fast status cache ( #3541 )
...
Fast Status Cache
2019-03-29 10:03:55 -07:00
0482f153d0
Lower a bunch of debug
...
Can't afford to be printing on every transaction error, it will slow
the system down.
2019-03-28 12:24:47 -07:00
92e1c4c531
Report which account is in use ( #3539 )
2019-03-28 08:17:49 -07:00
3fc09fb23f
Remove keypairs from BankClient
...
Bring its interface closer to the other clients.
2019-03-27 09:37:19 -06:00
cecdb7061e
Remove blockhash parameter from Bank::transfer
...
That parameter is an artifact from the Loom days, when I thought
Bank should implement the same interace as ThinClient.
2019-03-27 08:51:10 -06:00
0ac865f08c
Remove BankClient::process_instructions
2019-03-27 08:51:10 -06:00
55115d0eeb
Add process_message() to BankClient
2019-03-27 08:51:10 -06:00
8c69c40834
Make space for a new Transaction::new
2019-03-26 20:06:05 -06:00