Stephen Akridge
a1759aed19
Validators make a transaction to advertise their storage last_id
...
* Also implement more storage contract logic
* Add transactions for proof validation,
* Move storage state members into system storage account userdata
2018-12-21 15:45:30 -08:00
Sathish
1a3387706d
Spawn threads based on cpu count ( #2232 )
2018-12-21 13:55:45 -08:00
Pankaj Garg
951d6398a0
Rename finality to confirmation ( #2250 )
...
* Rename finality to confirmation
* fix cargo fmt errors
2018-12-20 15:47:48 -08:00
Pankaj Garg
7c98545b33
Use newer votes to calculate confirmation time ( #2247 )
2018-12-20 15:27:47 -08:00
Pankaj Garg
bb1060bdad
Reduce ticks per block to increase voting frequency ( #2242 )
2018-12-20 14:43:03 -08:00
Michael Vines
7ad45a91ec
Fix compile error
2018-12-20 13:47:36 -08:00
Michael Vines
034c5d0422
db_ledger now fully encapsulates rocksdb
2018-12-20 12:32:25 -08:00
carllin
7148c14178
Debug broadcast ( #2233 )
...
* Account for duplicate blobs in process_blobs
* Increase max bytes for level base to match write buffer
2018-12-20 12:12:04 -08:00
Michael Vines
93fb61dc8f
Re-export rocksdb::DBRawIterator until it can be encapsulated
2018-12-20 10:38:03 -08:00
Michael Vines
b36ceb5be4
Remove rocksdb dependency from result.rs
2018-12-20 10:38:03 -08:00
Michael Vines
37d7ad819b
Purge DB::destroy() usage
2018-12-20 10:38:03 -08:00
carllin
666af1e62d
Debug broadcast ( #2208 )
...
* Add per cf rocksdb options, increase compaction and flush threads
* Change broadcast stage to bulk write blobs
* add db_ledger function specifically for broadcast
* fix broken tests
* fix benches
2018-12-19 16:11:47 -08:00
Rob Walker
b4f4347d6e
add some more tests ( #2217 )
2018-12-18 17:27:03 -08:00
Rob Walker
5c866dd000
test drive new coverage stuff ( #2216 )
2018-12-18 16:44:27 -08:00
Pankaj Garg
974249f2a5
Parallelize entry processing in replay stage in validators ( #2212 )
...
* Parallelize entry processing in replay stage in validators
- single threaded entry processing is not utlizing CPU cores to the fullest
* fix tests and address review comments
2018-12-18 16:06:05 -08:00
Rob Walker
a65022aed7
DbLedger doesn't need to be mut, doesn't need an RwLock ( #2215 )
...
* DbLedger doesn't need to be mut, doesn't need an RwLock
* fix erasure cases
2018-12-18 15:18:57 -08:00
Sagar Dhawan
ffdc1814c6
Add counters for gossip verification failures ( #2094 )
2018-12-17 20:12:50 -08:00
carllin
9720ac0019
Fix try_erasure() ( #2185 )
...
* Fix try_erasure bug
* Re-enable asserts in test_replicator_startup
* Add test for out of order process_blobs
2018-12-17 15:34:19 -08:00
anatoly yakovenko
9a6e27ac36
Accounts is to big, should be its own module ( #2198 )
...
Account module is to big, should be in its own module.
2018-12-17 12:41:23 -08:00
Michael Vines
07202205c4
Revert "ignore unstable tests"
...
This reverts commit bd7ef5d445071329a3b49b1f8be71b602226bbec.
2018-12-17 10:47:32 -08:00
Michael Vines
b7144560c9
Include port number when gossip bind_to fails
2018-12-17 09:31:31 -08:00
anatoly yakovenko
4be6d01dfb
Move last ids ( #2187 )
...
* Break out last_ids into its own module
* Boot SignatureNotFound from BankError
* No longer return BankError from LastIds methods
* No longer piggypack on BankError for a LastIds signature status
* Drop all dependencies on the bank
* SignatureStatus -> Status and LastIds -> StatusDeque
* Unstable tests, issue 2193
2018-12-17 07:55:56 -08:00
Michael Vines
fd562cb9e2
Rust 2018 cleanup
2018-12-14 21:57:15 -08:00
Michael Vines
5bf9a20d42
fullnode-config no longer depends on src/
2018-12-14 20:13:34 -08:00
Michael Vines
eedc8c7812
Move src/netutil.rs into its own crate
2018-12-14 20:13:34 -08:00
carllin
9ef5e51c0f
Cleanup slot remnants in db_ledger ( #2153 )
...
* Cleanup slot remnants in db_ledger
2018-12-14 17:05:41 -08:00
Sathish
8ee0e9632c
Switch to using hashbrown version of HashMap and ( #2158 )
...
HashSet for improved performance and memory usage
2018-12-14 15:10:10 -08:00
Michael Vines
6ac466c0a4
Move src/logger.rs into logger/ crate to unify logging across the workspace
2018-12-14 13:10:43 -08:00
Michael Vines
d45fcc4381
Move src/wallet.rs into wallet/ crate
2018-12-14 12:15:18 -08:00
carllin
6fcccedb70
align tick entries' tick_height with actual number of ticks in bank ( #2147 )
2018-12-14 02:25:50 -08:00
Michael Vines
0fe6d61036
Move binaries from src/bin into their own crate
2018-12-13 22:25:27 -08:00
Pankaj Garg
091b21fae7
Vote every number of ticks ( #2141 )
...
* Vote every number of ticks
* address review comments
* fix for failing leader rotation tests
* remove check for vote failure from replay tests
(as votes will be cached and transmitted when leader is available)
2018-12-13 18:43:10 -08:00
Sathish
7325b19aef
Do not allocate for each metrics submission ( #2146 )
2018-12-13 16:40:00 -08:00
Stephen Akridge
7cdbbfa88e
Storage stage updates
...
* Remove logging init from storage program: saw a crash in a test
indicating the logger being init'ed twice.
* Add entry_height mining proof to indicate which segment the result is
for
* Add an interface to get storage miner pubkeys for a given entry_height
* Add an interface to get the current storage mining entry_height
* Set the tvu socket to 0.0.0.0:0 in replicator to stop getting entries
after the desired ledger segment is downloaded.
* Use signature of PoH height to determine which block to download for
replicator.
2018-12-13 11:30:12 -08:00
Rob Walker
9880a86f80
remove prev_id, unused ( #2150 )
2018-12-13 09:24:38 -08:00
Michael Vines
647e5d76b0
Move solana-fullnode into fullnode/
2018-12-13 01:45:29 -08:00
Michael Vines
7e4af9382e
Move solana-upload-perf into upload-perf/
2018-12-13 01:06:40 -08:00
Michael Vines
282d4a3563
Move solana-keygen into keygen/
2018-12-13 01:06:40 -08:00
Michael Vines
cafeef33c3
Relocate all keypair generation into one location: sdk/src/signature.rs
2018-12-13 01:06:40 -08:00
Rob Walker
4f48f1a850
add db_ledger genesis, rework to_blob(), to_blobs() ( #2135 )
2018-12-12 20:42:12 -08:00
Carl
a05a378db4
cleanup
2018-12-12 19:12:51 -08:00
Carl
245362db96
Make a dummy version of serving repairs from db_ledger
2018-12-12 19:12:51 -08:00
Mark
b1b190b80d
Fix too many args in Tvu::new ( #2114 )
...
* Reduce args in Tvu::new under to 8
Now pass in sockets through a the crate::tvu::Sockets struct
Move ClusterInfo.keypair to pub(crate) in order to remove redundant
signing keypair parameter
* remove commented code
2018-12-12 18:57:48 -08:00
Rob Walker
3408ce89a7
add check_tick_height ( #2144 )
2018-12-12 18:52:11 -08:00
Michael Vines
75f407e191
Provide entire elf to bpf_loader
2018-12-12 17:14:50 -08:00
Mekagoza
9b81696a09
remove obsoleted TODO
2018-12-12 16:26:59 -08:00
Mekagoza
80e19e0ad7
Encapsulate accounts of solana: 🏦 :Accounts
...
Make the field private and expose an account_values() method that
returns the values iterator from the internal hashmap
2018-12-12 16:26:59 -08:00
carllin
ae903f190e
Broadcast for slots ( #2081 )
...
* Insert blobs into db_ledger in broadcast stage to support leader to validator transitions
* Add transmitting real slots to broadcast stage
* Handle real slots instead of default slots in window
* Switch to dummy repair on slots and modify erasure to support leader rotation
* Shorten length of holding locks
* Remove logger from replicator test
2018-12-12 15:58:29 -08:00
Pankaj Garg
3413ecc2bd
Change query used to find list of nodes in the network ( #2124 )
...
* Change query used to find list of nodes in the network
* include "All" option for host selection
2018-12-12 12:38:00 -08:00
Sagar Dhawan
4788a4f775
Correctly describe repair and retransmit peers ( #2110 )
2018-12-11 15:51:47 -08:00
Pankaj Garg
9243bc58db
Metrics for window repair ( #2106 )
...
* Metrics for window repair
- Also increase max repair length
* fix vote counters, and add repair window graph
* update per node graphs
* revert max repair length change
2018-12-11 15:43:41 -08:00
Rob Walker
4d67aca919
add genesis and read_ledger to db_ledger ( #2097 )
2018-12-11 09:14:23 -08:00
Rob Walker
aeee25e703
add tick_height to Entry to be able to repair by period, chain forks of Entries, etc. ( #2096 )
2018-12-10 20:03:04 -08:00
Greg Fitzgerald
01c524ddd2
Revert changes to counter names
2018-12-10 15:26:43 -07:00
Greg Fitzgerald
5e703dc70a
Free up the term 'replicate' for exclusive use in replicator
...
Also, align Sockets field names with ContactInfo.
2018-12-10 15:26:43 -07:00
Pankaj Garg
bc96bd3410
Fix peer count in edge dashboard ( #2090 )
...
Fixes #2075
2018-12-10 14:24:32 -08:00
Michael Vines
4ea1c030bc
Give bootstrap leader one more token
2018-12-10 13:24:14 -08:00
Stephen Akridge
172e511e56
Use retry_transfer to test multiple times for replicator tokens
...
May fix failures in CI where replicator is trying to do an airdrop.
2018-12-10 12:19:00 -08:00
Tyera Eulberg
4481efd51e
Merge pull request #2084 from CriesofCarrots/fix-wallet-accountinuse
...
Fix wallet accountinuse
2018-12-10 12:20:55 -07:00
Greg Fitzgerald
0ef099421c
cargo fmt
2018-12-08 23:19:55 -07:00
Greg Fitzgerald
f1ae5b1795
Fix warnings
2018-12-08 23:19:55 -07:00
Greg Fitzgerald
a8d6c75a24
cargo +nightly fix --features=bpf_c,cuda,erasure,chacha --edition-idioms
2018-12-08 23:19:55 -07:00
Greg Fitzgerald
c49e2f8bbd
cargo +nightly fix --features=bpf_c,cuda,erasure,chacha --edition
2018-12-08 23:19:55 -07:00
Greg Fitzgerald
ec5a8141eb
cargo fix --edition
2018-12-08 23:19:55 -07:00
Sathish
2de45a4da5
Update airdrop tokens to 3 for fullnode ( #2051 )
...
Filter out leader while computing the super majority stake
2018-12-08 16:54:42 -08:00
Michael Vines
73b9ee9e84
Add solana_ prefix to native_loader program
...
This allows its logging to show up in the default RUST_LOG=solana=info
log setting
2018-12-08 11:04:45 -08:00
Greg Fitzgerald
0a83b17cdd
Upgrade to Rust 1.31.0 ( #2052 )
...
* Upgrade to Rust 1.31.0
* Upgrade nightly
* Fix all clippy warnings
* Revert relaxed version check and update
2018-12-07 20:01:28 -07:00
Tyera Eulberg
571522e738
Update jsonrpc version
2018-12-07 17:47:54 -07:00
Stephen Akridge
3441d3399b
Replicator rework
...
* Move more of the replicator logic into the replicator class
* Add support for the RPC interface to query the storage last_id value
that the replicator would sign and use to pick a block.
* Fix replicator connecting to gossip and change test to exercise that
scenario.
2018-12-07 15:20:36 -08:00
Michael Vines
f4b26247c0
Genesis only needs a keypair, not the entire fullnode::Config
2018-12-06 16:31:24 -08:00
Michael Vines
c4b8f0cd2f
bench-tps will now generate an ephemeral identity if not provided with one
...
Also simplify scripts as a result
2018-12-06 16:30:48 -08:00
Greg Fitzgerald
97b1156a7a
Rename Ncp to GossipService
...
And BroadcastStage to BroadcastService since it's not included in the
TPU pipeline.
2018-12-06 15:48:19 -07:00
Michael Vines
cc2f448d92
Add fullnode --no-leader-rotation flag
2018-12-06 11:30:19 -08:00
Michael Vines
632425c7d7
Move native_loader under programs/native/
2018-12-05 14:32:42 -08:00
dependabot[bot]
ad3e36a7ab
Bump rand from 0.5.5 to 0.6.1 ( #1891 )
...
* Bump rand from 0.5.5 to 0.6.1
Bumps [rand](https://github.com/rust-random/rand ) from 0.5.5 to 0.6.1.
- [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/commits )
Signed-off-by: dependabot[bot] <support@dependabot.com>
* Fix conflicts and deprecated usages
* Fix benches
2018-12-05 14:12:10 -08:00
Michael Vines
1bcafca690
Find test_tx again
2018-12-05 13:29:29 -08:00
Rob Walker
e21b6d9db3
ensure we'd actually have N hashes per tick ( #2011 )
2018-12-05 12:49:41 -08:00
carllin
9c30bddb88
Rocks db erasure decoding ( #1900 )
...
* Change erasure to consume new RocksDb window
* Change tests for erasure
* Remove erasure from window
* Integrate erasure decoding back into window
* Remove corrupted blobs from ledger
* Replace Erasure result with result module's Result
2018-12-05 12:47:19 -08:00
Michael Vines
59e6bd115e
system_program must be a static lib as it allocates Account memory
2018-12-05 10:49:06 -08:00
Michael Vines
15aef079e3
Include builtin programs for ledger verification
2018-12-05 10:49:06 -08:00
Michael Vines
42689d4842
cargo fmt
2018-12-05 10:49:06 -08:00
Michael Vines
214ed3667c
Move system_transaction out of src/
2018-12-05 10:49:06 -08:00
Michael Vines
122627dda2
Move loader_transaction out of src/
2018-12-05 10:49:06 -08:00
Michael Vines
7af95eadcc
Move vote_transaction out of src/
2018-12-05 10:49:06 -08:00
Michael Vines
9ee858a00c
Move budget_program out of src/
2018-12-05 10:49:06 -08:00
Michael Vines
27d456bf93
Move storage_program out of src/
2018-12-05 10:49:06 -08:00
Michael Vines
ea6e042a6f
Move vote_program out of src/
2018-12-05 10:49:06 -08:00
Michael Vines
a594f56c02
Add token_program.rs to sdk/
2018-12-05 10:49:06 -08:00
Michael Vines
e6fa74fe69
Remove custom Error enum, just use ProgramError
2018-12-05 10:49:06 -08:00
Michael Vines
9a4f8199d6
Move system_program out of src/
2018-12-05 10:49:06 -08:00
Michael Vines
ae0be1e857
Remove bpf_loader.rs
2018-12-05 10:49:06 -08:00
Michael Vines
d010cac8a5
Remove token_program.rs
2018-12-05 10:49:06 -08:00
Michael Vines
63a758508a
Add sdk native_loader.rs
2018-12-05 10:49:06 -08:00
Stephen Akridge
c1c2f1f0a9
Cleanup ad-hoc rpc address formation
...
Lots of places where we are forming rpc addresses.
2018-12-03 18:13:55 -08:00
Michael Vines
777a0a858e
Move ProgramError into sdk/
2018-12-03 13:50:00 -08:00
Michael Vines
68e99c18c0
Remove duplicate SYSTEM_PROGRAM_ID
2018-12-03 13:50:00 -08:00
Michael Vines
c99f93e40a
Remove signature.rs indirection
2018-12-03 13:50:00 -08:00
carllin
4ae58cc854
Change range of leader scheduler to match current broadcasts ( #1920 )
2018-12-03 00:10:43 -08:00
Sagar Dhawan
b21facab7b
Add metrics for prune messages ( #1981 )
2018-12-01 14:05:40 -08:00
Sagar Dhawan
34c3a0cc1f
Add signature verification to gossip ( #1937 )
2018-12-01 12:00:30 -08:00
Pankaj Garg
549bfe7412
Vote signing JSON RPC service ( #1965 )
...
* Vote signing JSON RPC service
- barebone service that listens for RPC requests
* Daemon for vote signer service
* Add request APIs for JSON RPC
* Cleanup of cargo dependencies
* Fix compiler error
2018-11-30 15:07:08 -08:00
Rob Walker
3ca826a480
re-enable test_tpu_forwarder ( #1964 )
2018-11-30 13:52:37 -08:00
Michael Vines
bad0b55ab6
Expose which keys signed the Transaction in the SDK
2018-11-30 08:16:23 -08:00
Michael Vines
0878bd53d9
Delete stub src/transaction.rs
2018-11-29 23:07:57 -08:00
Stephen Akridge
de910e1169
Make test_pubkey_distribution faster
...
multi-thread pubkey histogram generation.
2018-11-29 17:37:37 -08:00
Stephen Akridge
9684737de7
Add wait before checking confirm again
...
Otherwise we can quickly check that we
have no signature 4 times in a row.
2018-11-29 15:32:58 -08:00
Stephen Akridge
ecc87ab1aa
Add a an optional timeout to thin_client
...
Such that a negative test like test_transaction_count doesn't
have to wait num_retries * default_timeout.
2018-11-29 13:53:40 -08:00
Michael Vines
fa359c6fc4
Merge vote new and register transactions
2018-11-29 12:31:34 -08:00
Stephen Akridge
8cc751d1cc
Improve RPC service startup error messages with actual error
...
Error always fixed to message about ports but that's not the only
error that can occur.
2018-11-29 11:39:42 -08:00
Stephen Akridge
978fd6858f
Move replicator_startup_test to integration test set
...
Sometimes fails when run multithreaded with other tests.
2018-11-29 11:39:42 -08:00
Michael Vines
41689256c6
Ensure key[0] is signed
2018-11-29 10:26:46 -08:00
Pankaj Garg
194e3100a9
Additional checks in test_bank_checkpoint_zero_balance ( #1943 )
2018-11-28 12:40:34 -08:00
Rob Walker
8ad4464d4b
add tests for other "from" indexes signing (or not)
2018-11-28 07:56:04 -08:00
Rob Walker
e7b0a736f5
verify signature is on the from account
2018-11-28 07:56:04 -08:00
Rob Walker
167eb01735
optimize bench-tps and rpc_request to work on crappy WSL boxes
2018-11-27 22:45:08 -08:00
Michael Vines
8fb5d72b13
Make insufficient tokens message more helpful
2018-11-27 17:37:25 -08:00
Pankaj Garg
8947c5a4aa
Set account to default if the balance reaches 0 in a checkpoint bank ( #1932 )
...
Fixes : #1931
2018-11-27 14:17:29 -08:00
Greg Fitzgerald
a7562c9be1
Extract execute_transaction() from the bank
2018-11-27 12:35:52 -07:00
Greg Fitzgerald
08dc169f94
Hoist load_loaders()
...
This makes execute_transactions() stateless.
2018-11-27 12:35:52 -07:00
Greg Fitzgerald
f549d8ac74
Hoist loading of loaders
...
This might cause a TPS boost in batched BPF transactions, since
now it'll only clone its account once per transaction instead of
once per instruction.
2018-11-27 12:35:52 -07:00
Greg Fitzgerald
1ac7536286
Pass executable_accounts into with_subset()
2018-11-27 12:35:52 -07:00
Greg Fitzgerald
88e270723f
Move markdown book out of src/
2018-11-26 09:44:19 -08:00
Michael Vines
a13e25f083
Ignore flaky test_tpu_forwarder
2018-11-26 09:27:21 -08:00
Greg Fitzgerald
3d3a30e200
Fix mdbook test
2018-11-26 07:51:10 -08:00
Greg Fitzgerald
76b83ac0f4
Move testnet demos into the book
...
Have git readme focus on fullnode development and the book focus on
users.
2018-11-26 07:51:10 -08:00
Greg Fitzgerald
903a9bfd05
s/contract/program/
2018-11-26 08:20:42 -07:00
Greg Fitzgerald
655ee1a64b
Fix typos
2018-11-26 08:20:42 -07:00
Greg Fitzgerald
e0e6c3fdb2
Extract execute_instruction() to seed new runtime module
...
Fixes #1528
2018-11-26 08:20:42 -07:00
Greg Fitzgerald
31f00974f2
Hoist the lookup of executable accounts
2018-11-26 08:20:42 -07:00
Greg Fitzgerald
c3218bb9c2
Hoist tick_height
2018-11-26 08:20:42 -07:00
Greg Fitzgerald
d2972024de
Uppercase acronyms
...
Looks like there will be very little Rust code in the markdown book
so switching back to English capitalization conventions.
2018-11-25 22:58:07 -07:00
Greg Fitzgerald
dc0a2ca656
Move disclaimer down a bit
...
Odd to see a disclaimer before knowing anything about what you're reading
2018-11-25 20:27:35 -07:00
Greg Fitzgerald
c3fb9d5549
Cleanup book ( #1904 )
...
* Cleanup book
* Distinguish upstream from downstream validators
* Add BroadcastStage to Fullnode/Tpu diagrams
* First attempt to re-describe the runtime
* Reorg book
Push back details of the fullnode implementation
2018-11-25 16:58:38 -07:00
Sathish
f5b5c54d7d
Update condition for nosigverify ( #1903 )
2018-11-25 13:11:07 -08:00
Sathish
9f0b06bb86
Filter out leader node while retransmitting blobs ( #1894 )
2018-11-24 20:33:49 -08:00
carllin
57a384d6a0
Rocks db window service ( #1888 )
...
* Add db_window module for windowing functions from RocksDb
* Replace window with db_window functions in window_service
* Fix tests
* Make note of change in db_window
* Create RocksDb ledger in bin/fullnode
* Make db_ledger functions generic
* Add db_ledger to bin/replicator
2018-11-24 19:32:33 -08:00
Greg Fitzgerald
69802e141f
Add the story of how this codebase came to be
2018-11-24 14:39:53 -07:00
Greg Fitzgerald
6fc02b7424
Detect legacy programs upfront
2018-11-24 11:56:51 -07:00
Greg Fitzgerald
30cdd85028
Implement the same interface in all builtin programs
2018-11-24 11:56:51 -07:00
Greg Fitzgerald
871dd47019
Extract the part of execute_instruction that should only return a ProgramError
...
TODO: hoist load_executable_accounts() and then change
process_instruction() to return ProgramError.
2018-11-24 11:56:51 -07:00
Greg Fitzgerald
37f8dd57e2
Extract ProgramError from BankError
2018-11-24 11:56:51 -07:00
Greg Fitzgerald
f827bfd83f
Remove instruction index parameter
2018-11-24 11:56:51 -07:00
Greg Fitzgerald
b3af930153
Rename process_transaction to process_instruction
2018-11-24 11:56:51 -07:00
Greg Fitzgerald
cd488b7d07
Hoist program static methods to top-level functions
2018-11-24 11:56:51 -07:00
Rob Walker
e2373ff51a
add nosigverify command line option to ease debug
2018-11-23 16:55:04 -08:00
Greg Fitzgerald
b3d2c900cd
Rename BudgetState to BudgetProgram
2018-11-23 13:25:17 -07:00
Michael Vines
d5adec20a3
get_ip_addr: Fall back to loopback if no better option exists
2018-11-23 13:24:41 -05:00
carllin
942256a647
Add db_ledger benchmarks ( #1875 )
...
* Add db_ledger benchmarks
* ignore benches in CI, due to timeouts
2018-11-23 06:12:43 -08:00
carllin
a3321a5d80
Fix endianess in db_ledger to account for the default byte-comparator used by Rocksdb ( #1885 )
2018-11-22 01:35:19 -08:00
carllin
521de13571
Add maximum repair length to db_window ( #1886 )
...
* Add maximum repair length to db_window
2018-11-21 23:44:49 -08:00
Greg Fitzgerald
3abf6a8a30
Reorg the markdown book to cater to app devs
...
First, talk about how a client interacts with Solana to do useful
things. Then describe how the fullnode you're talking to works and
why it's so very fast. Last, why that fullnode you don't trust
does what you asked it to anyway.
2018-11-21 15:49:57 -08:00
jackcmay
59163e2dd9
Optimize some CI stuff ( #1880 )
...
* CI Optimizations
2018-11-21 12:16:16 -08:00
carllin
d9dabdfc74
Rocks db window utils ( #1851 )
...
* Implement new ledger module based on RocksDb
* Add db_window module for windowing functions from RocksDb
2018-11-19 23:20:18 -08:00
Rob Walker
6b910d1bd4
add tpu_forwarding, simplify ClusterInfo::new() from Result<Self> to Self
2018-11-19 20:45:49 -08:00
Rob Walker
bbd9ea8c00
Delete settings.rs.foo
2018-11-19 13:39:08 -08:00
Anatoly Yakovenko
fc67a968e8
Use known keys in the unit test to avoid random false positives.
2018-11-19 13:41:24 -07:00
Rob Walker
3d113611cc
remove Result<> return from ClusterInfo::new() ( #1869 )
...
strip Result<> for ClusterInfo::new()
2018-11-19 11:25:14 -08:00
Sagar Dhawan
07667771ef
Fix Gossip Pushes going to invalid addresses ( #1858 )
2018-11-17 19:57:28 -08:00
Michael Vines
3822c29415
Route program_id to program entrypoint
2018-11-17 19:42:03 -08:00
Greg Fitzgerald
ff386d6585
Add disclaimer to markdown book
...
copy-paste from readme
2018-11-17 19:56:08 -07:00
Greg Fitzgerald
88ddb31477
teminology cleanup: leader slots and voting rounds
2018-11-17 18:56:13 -07:00
Greg Fitzgerald
077d1a41f1
Add too book
2018-11-17 18:56:13 -07:00
Greg Fitzgerald
857ab8662e
backticks and missing variable descriptions
2018-11-17 18:56:13 -07:00
Greg Fitzgerald
a17f9bd0f4
Work towards adding leader rotation to the book
2018-11-17 18:56:13 -07:00
Greg Fitzgerald
f4b9e93b11
Migrate storage RFC to book
2018-11-17 18:55:08 -07:00
Greg Fitzgerald
2c11bf2e66
Various book cleanup
...
* Merge Leader and Validator diagrams
* New sdk-tools diagram
* Move terminology to just after introduction
* Purge use of LAMPORT as an acronym
* Add notes about persistent storage
2018-11-17 17:50:29 -08:00
Michael Vines
719e14b30a
Add an explicit state of a reserved signature
...
An RPC client that fetches the signature status before the bank finishes
executing the corresponding Transaction should receive SignatureNotFound
instead of Confirmed
2018-11-17 16:40:23 -08:00
Michael Vines
d1f01b5209
Fix clippy lint
2018-11-17 15:54:21 -08:00
Michael Vines
d96a6b42a5
Move drone into its own crate
2018-11-16 20:42:21 -08:00
carllin
cf95708c18
Set drone address to always be the initial network entry point ( #1847 )
...
* Set drone address to always be the initial network entry point, so that even when leaders rotate the client can still find the drone
* Extract drone address as a separate argument to bench-tps
* Add drone port to client.sh instead of setting it in bench-tps
* Add drone entrypoint to scripts
* Fix build error
2018-11-16 19:56:26 -08:00
Michael Vines
e1c7b99450
Accounts get kicked if no tokens
2018-11-16 18:53:37 -08:00
Sagar Dhawan
12ae7b9a6b
Add test for tvu POH verification ( #1844 )
2018-11-16 15:48:10 -08:00
Michael Vines
6ac5700f2e
Move metrics into its own crate
2018-11-16 15:10:07 -08:00
Michael Vines
a0dd8617be
Remove airdrop from fullnode
2018-11-16 13:25:55 -08:00
Rob Walker
1576072edb
remove spurious eprintln!()
2018-11-16 10:21:58 -08:00
carllin
03d206a7ca
Check for valid tvu, not tpu in broadcast ( #1836 )
2018-11-15 23:30:22 -08:00
Sathish
c973de1d76
Decouple log and metrics rate ( #1839 )
...
Use separate env for log and metrics rate.
Set default log level to WARN if unset.
2018-11-15 22:27:16 -08:00
Stephen Akridge
71336965a6
Limit targets to 4 in bench-tps
...
Transaction got bigger so can only fit 4 targets in a
Transaction now.
2018-11-15 20:25:07 -08:00
Michael Vines
e791d0f74d
Drone now returns signed airdrop transactions
2018-11-15 17:13:13 -08:00
Stephen Akridge
3543a9a49f
Add check for missing signature with fee'ed transaction
...
And update fetch-perf-libs version
2018-11-15 16:23:13 -08:00
Stephen Akridge
7dd198a99e
Change signed_key to index into account_keys
...
If index is within the signed keys range.
2018-11-15 16:23:13 -08:00
Stephen Akridge
e048116ab2
Remove signed_keys
...
Use first signatures.len() of account_keys for signing
2018-11-15 16:23:13 -08:00
Stephen Akridge
cda9ad8565
Multiple signatures for transactions
...
With multiple instructions in a TX may need
multiple signatures.
Fixes #1531
2018-11-15 16:23:13 -08:00
carllin
928f375683
Rocks db ( #1792 )
...
* Add rocksdb crate
* Implement new ledger module based on RocksDb
2018-11-15 15:53:31 -08:00
Rob Walker
d3e521f70e
accept other socket errors, ignore unless out of tries ( #1835 )
2018-11-15 15:49:37 -08:00
Michael Vines
a7ee428214
Fix build
2018-11-15 14:06:57 -08:00
anatoly yakovenko
a41254e18c
Add scalable gossip library ( #1546 )
...
* Cluster Replicated Data Store
Separate the data storage and merge strategy from the network IO boundary.
Implement an eager push overlay for transporting recent messages.
Simulation shows fast convergence with 20k nodes.
2018-11-15 13:23:26 -08:00
Sagar Dhawan
c81a3f6ced
Fix RPC address clashes on local multi-node testnet ( #1821 )
...
* Fix RPC address clashes on local multi-node testnet
2018-11-15 10:42:02 -08:00
Tyera Eulberg
a5412fc0cd
Fix find port functions
2018-11-15 10:45:39 -07:00
Michael Vines
5a8938209b
Expose tick_height to native programs
2018-11-14 10:33:27 -08:00
Michael Vines
e33f3a2562
Publish expected native program entrypoint in sdk/
2018-11-14 10:33:27 -08:00
Sathish
9fe210c454
Add host information to db entries ( #1778 )
...
Add new field to each db entry identifying the host
that it originated from.
2018-11-13 21:54:15 -08:00
Jack May
e7b6c8b7e0
Accounts get kicked if no tokens
2018-11-13 17:23:13 -08:00
Jack May
4e553ea095
test_replicate fails locally, ignore
2018-11-13 17:13:25 -08:00
Jack May
0c46f15f94
test_rpc_new fails locally, ignore for now
2018-11-13 17:12:25 -08:00
Sathish
7b92497d21
Update counters irrespective of logging level ( #1799 )
2018-11-13 16:55:14 -08:00
Sagar Dhawan
729d28d910
Add poh verification before processing entries
...
- Replicate stage now verifies entries delivered
by the window
- Minor refactor of entries_from_blobs
2018-11-13 14:17:00 -08:00
carllin
6335be803c
Broadcast last tick before leader rotation ( #1766 )
...
* Broadcast last tick before leader rotation to everybody on network
* Add test
* Refactor broadcast
2018-11-13 02:21:37 -08:00
Sagar Dhawan
a77b1ff767
Revert "Migrate from ring to ed25519-dalek" ( #1798 )
...
* Revert "Migrate from ring to ed25519-dalek"
This reverts commit 7c610b216b
.
* Fix test failures with revert
2018-11-12 22:34:43 -08:00
Tyera Eulberg
c7a67b5a02
Add deploy command to test
2018-11-12 18:21:16 -07:00
Tyera Eulberg
0e749dad4c
Use cluster_info to get rpc address
2018-11-12 18:21:16 -07:00
Rob Walker
fa72160c95
add last_id to Entry, PohEntry ( #1783 )
...
add prev_id to Entry, PohEntry
2018-11-12 17:03:23 -08:00
Greg Fitzgerald
126f065cc9
Extract complex loop from execute_instruction
2018-11-12 14:47:23 -08:00
carllin
4d98da44e3
Fix possibility of a vote error breaking ledger ( #1768 )
...
* Fix possibility of a vote error breaking ledger
* Add test
2018-11-12 11:40:32 -08:00
Michael Vines
522876c808
Rename Account.program_id to Account.owner
2018-11-12 10:59:01 -08:00
Michael Vines
7d05cc8c5d
Add missing account fields
2018-11-12 10:59:01 -08:00
Michael Vines
49f4be6a2b
codemod --extensions rs loader_program_id loader
2018-11-12 10:59:01 -08:00
Greg Fitzgerald
5fce8d2ce1
Don't ignore VoteProgram errors
2018-11-11 22:18:06 -07:00
Greg Fitzgerald
2696b22348
Cleanup TVU diagram
2018-11-11 20:55:21 -08:00
Greg Fitzgerald
5df4754579
Don't call instructions transactions
2018-11-11 20:07:15 -08:00
Tyera Eulberg
a00284c727
Remove userdata diff and make helper fn
2018-11-11 18:57:28 -07:00
Tyera Eulberg
3832602ec4
Move notifications after store_accounts
2018-11-11 18:57:28 -07:00
Greg Fitzgerald
fea86b2955
No longer serialize as JSON-encoded pkcs8
...
That's supposed to be an ASCII format, but we're not making use
of it. We can switch back to that some day, but if we do, it shouldn't
be JSON-encoded.
2018-11-11 09:22:52 -07:00
Greg Fitzgerald
7c610b216b
Migrate from ring to ed25519-dalek
...
Why?
* Pure Rust, no BoringSSL (or OpenSSL) dependency
* Those avx2 benchmarks
* ring includes far more than what we need
* ring author won't add release tags: https://github.com/briansmith/ring#versioning--stability
2018-11-11 09:22:52 -07:00
Greg Fitzgerald
cdf1a96e23
Revert "V1 Window/Ledger based on RocksDb ( #1712 )"
...
This reverts commit bfcdec95cb
.
2018-11-09 20:25:53 -07:00
carllin
bfcdec95cb
V1 Window/Ledger based on RocksDb ( #1712 )
...
* Add rocksdb
* Implement new ledger module based on RocksDb
2018-11-09 18:30:26 -08:00
Greg Fitzgerald
fc55835932
Revert "Boot rpc_port"
...
This reverts commit 1984b6db06dae4f6b655b9076e657e389d786105.
2018-11-09 17:52:10 -07:00
Greg Fitzgerald
3772910bf2
Boot rpc_port
2018-11-09 17:52:10 -07:00
Greg Fitzgerald
24379c14dc
Fix clippy warnings
2018-11-09 17:52:10 -07:00
Greg Fitzgerald
23846bcf1c
Don't require a cluster to query for one's own pubkey
2018-11-09 17:52:10 -07:00
Greg Fitzgerald
9dd0a6e6a7
Boot drone_addr and rpc_addr from config
...
WalletConfig is intended for the validated command-line input.
2018-11-09 17:52:10 -07:00
Greg Fitzgerald
5ca473ac2d
Don't get the network from parse_args
2018-11-09 17:52:10 -07:00
Greg Fitzgerald
f5827d4a83
Fix typo
2018-11-08 17:15:48 -07:00
Greg Fitzgerald
b0f8a983c4
Add the solana-wallet documentation ( #1744 )
...
* Add the solana-wallet documentation
There doesn't seem to be a way to publish bin docs to crates.io.
Until there is, we can include CLI documentation is the appendix
of the markdown book.
* A command to generate all the usage docs
Usage:
$ scripts/wallet-help.sh >> src/wallet.md
2018-11-08 15:42:20 -07:00
Rob Walker
d831c5dcc9
remove dead poh code ( #1747 )
2018-11-08 12:55:23 -08:00
Greg Fitzgerald
ce474eaf54
Better titles for tpu and tvu
2018-11-08 11:33:52 -07:00
Greg Fitzgerald
0da1c06b15
Add disk to the hardware used by both Tpu and Tvu
2018-11-08 11:33:52 -07:00
Greg Fitzgerald
01edc94a4b
Move description of the Rust flavor of stages to service.rs
2018-11-08 11:33:52 -07:00
Greg Fitzgerald
f96563c3f2
Add documentation for pipelining
2018-11-08 11:33:52 -07:00
Rob Walker
30697f63f1
add support for slots in erasure ( #1736 )
2018-11-08 10:20:03 -08:00
Greg Fitzgerald
2a6046de8e
Cleanup TVU code to look like its block diagram ( #1737 )
...
* Reorg TVU code to look like TVU diagram
And move channel creation into LedgerWriteStage so that it can
be used in the same was as all the other stages.
* Delete commented out code
2018-11-07 19:25:36 -07:00
Greg Fitzgerald
43bd28cdfa
Add loader_ prefix to LoaderTransaction methods
2018-11-07 15:06:38 -07:00
Rob Walker
6c10458b5b
leader slots in Blobs ( #1732 )
...
* add leader slot to Blobs
* remove get_X() methods in favor of X() methods for Blob
* add slot to get_scheduled_leader()
2018-11-07 13:18:14 -08:00
Stephen Akridge
7780d9bab8
Add ledger write and storage stage to TVU documentation
2018-11-07 12:07:12 -08:00
Greg Fitzgerald
038a46b5ef
Integrate the markdown book into the codebase
...
This implies that the book should describe exactly what is implemented,
and will not lead the way and eventually bitrot as the RFCs do.
2018-11-07 10:58:47 -07:00
Greg Fitzgerald
8be7c13d2d
Stub out architecture book ( #1674 )
...
* Stub out architecture documentation
* Add book HTML generation and book tests to CI
* Add heading
* Better table of contents
* Reference existing documentation
Move ASCII art from code comments into rendered SVG
* Attempt to fix CI
* Add lamport docs
And truncate lines to 80 characters
* Fix links
And reference shorter, newer description of PoH.
* Replace ASCII art with SVG
* Streamline for Pillbox
* Update path before optional install
* Use $CARGO_HOME instead of $HOME
* Delete code
Attempt to describe all data structures without code.
* Boot RPU from docs, add JsonRpcService
Also, use Rust naming conventions in the block diagrams to
minimize the jump from docs to code.
* Latest code uses tick_height
* Rename bob/ folder to art/
A home for any ASCII art
* Import JSON RPC API
* More mdbook docs
* Add Ncp
* Cleanup links
* Move pipelining description into fullnode description
* Move high-level transaction docs into top-level doc
* Delete unused files
2018-11-06 18:00:58 -07:00
Tyera Eulberg
d7ea66b6a1
RPC and Pubsub, bind to 0.0.0.0
2018-11-06 15:45:36 -07:00
Sathish
371c69d425
Add ledger write stage counters ( #1713 )
2018-11-06 14:44:54 -08:00
Rob Walker
9b43b00d5c
remove tick_count, leader_scheduler, from broadcast code ( #1725 )
2018-11-06 13:17:41 -08:00
Rob Walker
76694bfcf4
remove entry_writer.rs ( #1720 )
2018-11-06 12:42:31 -08:00
Greg Fitzgerald
bfad138bb3
Pass any serializable to Transaction constructor
2018-11-06 11:23:59 -07:00
Greg Fitzgerald
54968b59bb
Update last_id between client retries
...
Fixes #1694
2018-11-06 09:06:15 -07:00
Tyera Eulberg
f683817b48
Remove RPU; replace with RPC
2018-11-05 20:30:47 -07:00
Rob Walker
22abc27be4
add tests for bank.purge() ( #1711 )
2018-11-05 16:43:27 -08:00
Greg Fitzgerald
c9138f964b
Change token type from i64 to u64
...
Fixes #1526
2018-11-05 15:25:26 -07:00
Rob Walker
1fbf1d2cf2
Add checkpoint, rollback to to bank ( #1662 )
...
add linked-list capability to accounts
change accounts from a linked list to a VecDeque
add checkpoint and rollback for lastids
add subscriber notifications for rollbacks
checkpoint transaction count, too
2018-11-05 09:47:41 -08:00
Rob Walker
1d7722043f
genesis has 3 entries now
2018-11-02 22:02:13 -07:00
Rob Walker
95f9488a70
use default buffer size for index, use BLOB_DATA_SIZE for data buffer ( #1693 )
2018-11-02 21:52:57 -07:00
Greg Fitzgerald
e7cbbd8d45
cargo fmt
2018-11-02 19:54:49 -07:00
Greg Fitzgerald
c8c255ad73
Rename Budget to BudgetExpr
2018-11-02 19:54:49 -07:00
Michael Vines
a264f8fa9b
Fix |cargo test|
2018-11-02 19:04:59 -07:00
Michael Vines
40e945b0c8
Move token_program from src/ to programs/native/
2018-11-02 18:13:02 -07:00
carllin
0636399b7a
Compute finality computation in new ComputeLeaderFinalityService ( #1652 )
...
* Move finality computation into a service run from the banking stage, ComputeLeaderFinalityService
* Change last ids nth to tick height, remove separate tick height from bank
2018-11-02 15:49:14 -07:00
carllin
298bd6479a
Add first leader to genesis ( #1681 )
...
* Add first leader to genesis entries, consume in genesis.sh
* Set bootstrap leader in the bank on startup, remove instantiation of bootstrap leader from bin/fullnode
* Remove need to initialize bootstrap leader in leader_scheduler, now can be read from genesis entries
* Add separate interface new_with_leader() in mint for creating genesis leader entries
2018-11-02 14:32:05 -07:00
Tyera Eulberg
879431ebcd
Add timeout to TcpStream connect, and rename test
2018-11-01 14:13:19 -06:00
Tyera Eulberg
af1283e92c
Improve airdrop confirmation logic
2018-11-01 11:28:33 -06:00
Sathish
dffa2eb04f
Do not parallelize deserialize operation ( #1663 )
...
Deserialize operations are faster when done serially with the
MT banking stage and helps with performance improvement with
reduced thread context switches.
2018-10-31 22:12:15 -07:00
carllin
00889c5139
Fix bad function arguments ( #1682 )
2018-10-31 19:55:58 -07:00
Stephen Akridge
af8dc3fd83
Fix snap build
...
cuda and chacha features required for chacha_cuda
2018-10-31 17:59:31 -07:00
carllin
ba884b4e36
Add thin client test for vote functionality, fix sizing errors in vote contract ( #1643 )
...
* Added tests to thin client to test VoteContract calls, fix VoteContract sizing errors
* Calculate upper bound on VoteProgram size at runtime, add test for serializing/deserializing a max sized VoteProgram state
2018-10-31 17:47:50 -07:00
Tyera Eulberg
6ddd494826
Improve rpc logging
2018-10-31 15:21:55 -06:00
Stephen Akridge
aa2fd3f3bb
Storage RFC grammar
2018-10-31 13:44:21 -07:00
Stephen Akridge
cf00354f42
Add storage stage which does storage mining verification for validators
2018-10-31 13:44:21 -07:00
carllin
47f1fa3f2e
Remove purging of leader id from cluster info ( #1642 )
2018-10-31 12:30:48 -07:00
Michael Vines
74b4ecb7f3
Upgrade to influx_db_client@0.3.6
2018-10-30 19:44:09 -07:00
Michael Vines
8d16f69bb9
Improve account subscribe/unsubscribe logging
2018-10-30 12:03:35 -07:00
Michael Vines
3a73a09391
Avoid panicking when a native library doesn't exist
2018-10-30 12:03:35 -07:00
Michael Vines
009c71f7e2
Demote info logs
2018-10-30 12:03:35 -07:00
Michael Vines
073d39df44
Add solana_ prefix to loaders so their logs appear in the default RUST_LOG config
2018-10-30 12:03:35 -07:00
Michael Vines
ae7222f0df
Work around influxdb panic
2018-10-30 12:03:35 -07:00
Rob Walker
13bfdde228
remove ledger tail code, WINDOW_SIZE begone ( #1617 )
...
* remove WINDOW_SIZE, use window.window_size()
* move ledger tail, redundant with ledger-based repair
2018-10-30 10:05:18 -07:00
jackcmay
be003970b7
Program_ids were overlapping ( #1626 )
...
Program_ids were overlapping
2018-10-26 19:44:53 -07:00
Stephen Akridge
b28fbfa13e
Use a smaller test value for window_size
...
Otherwise this test takes forever to run.
2018-10-26 11:38:55 -07:00
Michael Vines
07c656093c
Remove tictactoe programs
2018-10-25 21:22:07 -07:00
Michael Vines
c9e8346e6a
cargo fmt
2018-10-25 17:24:24 -07:00
Michael Vines
236113e417
cargo fmt
2018-10-25 17:13:41 -07:00
carllin
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
carllin
55833e20b1
Create Poh Service ( #1604 )
...
* Create new Poh Service, replace tick generation in BankingStage
2018-10-25 14:56:21 -07:00
Tyera Eulberg
02cfa76916
Plumb GetTransactionCount through solana-wallet
2018-10-25 14:58:51 -06:00
Tyera Eulberg
9314eea7e9
Add leader-readiness test to wallet-sanity
2018-10-25 14:58:51 -06:00
Michael Vines
e47fcb196b
s/solana_program_interface/solana[_-]sdk/g
2018-10-25 12:31:45 -07:00
Michael Vines
af8a36b7fb
Exclude chacha_cuda when chacha is disabled
2018-10-24 17:02:46 -07:00
Michael Vines
208e7d7943
Explicitly reject transactions larger than PACKET_SIZE
2018-10-24 15:34:27 -07:00
Stephen Akridge
61927e1941
Fix compile error for write_entries
...
Takes a reference now.
2018-10-24 11:31:30 -07:00
Tyera Eulberg
2f2531d921
Add retries to Wallet deploy
2018-10-24 11:13:32 -06:00
Tyera Eulberg
d5f20980eb
Incorporate preloaded bpf loader
2018-10-24 11:13:32 -06:00
Tyera Eulberg
21eae981f9
Add deploy method to solana-wallet
2018-10-24 11:13:32 -06:00
Stephen Akridge
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
Michael Vines
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
Pankaj Garg
5c483c9928
remove unused variable
2018-10-23 16:52:56 -06:00
Pankaj Garg
a68c99d782
Fix transaction count on testnet dashboard
2018-10-23 16:52:56 -06:00
jackcmay
5ca52d785c
Preload BPF loader ( #1573 )
...
Preload BPF loader
2018-10-23 14:44:41 -07:00
Pankaj Garg
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
Michael Vines
7977b97227
Surface AccountInUse to JSON RPC users so they know to retry the transaction
2018-10-23 13:55:30 -07:00
Michael Vines
4f34822900
Improve logging on various error conditions
2018-10-23 13:40:59 -07:00
Pankaj Garg
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
Michael Vines
45cfa5b574
Add instruction to transfer account ownership
2018-10-20 21:54:25 -05:00
Pankaj Garg
df9ccce5b2
Remove hostname() from calls to metrics as it's expensive operation ( #1557 )
2018-10-20 06:38:20 -07:00
jackcmay
f8516b677a
Load program data in chunks ( #1556 )
...
Load program data in chunks
2018-10-19 18:28:38 -07:00
Greg Fitzgerald
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
Greg Fitzgerald
2f9c0d1d9e
Add method to lookup signed keys
2018-10-19 10:06:59 -06:00
carllin
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
Stephen Akridge
37a0b7b132
Initial validator code for rust side hooks for chacha cuda parallel encrypt
2018-10-18 13:50:19 -07:00
Stephen Akridge
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
Rob Walker
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
jackcmay
0a819ec4e2
Programs were not spawned by SystemProgram ( #1533 )
...
* SystemProgram spawns programs
2018-10-18 10:33:30 -07:00
Michael Vines
57a717056e
Delegate accounts now record the original approved amount
2018-10-18 08:53:25 -07:00
Greg Fitzgerald
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
Greg Fitzgerald
2045091c4f
Add SystemProgram::Move ix to Budget tx
2018-10-18 08:46:02 -06:00
Greg Fitzgerald
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
Greg Fitzgerald
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
Greg Fitzgerald
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
Rob Walker
d0f43e9934
consolidate tmp ledgers
2018-10-18 08:45:31 -06:00
Pankaj Garg
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
Pankaj Garg
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
Jack May
63caca33be
SystemProgram test was failing due to expected panic
2018-10-16 18:02:44 -07:00
Rob Walker
912eb5e8e9
remove bank.is_leader, dead code ( #1516 )
2018-10-16 15:26:44 -07:00
Jack May
d0c19c2c97
cargo fmt
2018-10-16 14:11:04 -07:00
Jack May
926fdb7519
Rename dynamic_program.rs to native_loader.rs
2018-10-16 14:11:04 -07:00
jackcmay
c886625c83
Move from solana/rbpf fork to qmonnet/rbpf ( #1511 )
2018-10-16 13:13:54 -07:00
Pankaj Garg
f6c10d8a2e
Add channel pressure for validator TVU stages ( #1509 )
2018-10-16 12:54:23 -07:00
anatoly yakovenko
2bd877528f
Par process entries ( #1499 )
...
* Parallel entry processor.
2018-10-16 12:09:48 -07:00
jackcmay
d09889b1dd
Program bank integration ( #1462 )
...
Native, BPF and Lua loaders integrated into the bank
2018-10-16 09:43:49 -07:00
Tyera Eulberg
1b2e9122d5
Pubsub listen on random open port when rpc does (quiet some test errors)
2018-10-16 00:11:26 -06:00
Tyera Eulberg
7424388924
Fix session drop
2018-10-16 00:11:26 -06:00
Michael Vines
537436bd5e
RPC PubSub now uses a well-known socket
2018-10-16 00:11:26 -06:00
Tyera Eulberg
fb99494858
Improve rpc code coverage ( #1487 )
2018-10-15 11:01:40 -06:00
Greg Fitzgerald
515c200d86
Refactor and add test for new Entry::serialized_size()
2018-10-14 10:53:47 -06:00
Greg Fitzgerald
32aab82e32
Don't allocate to see if transactions will fit in a blob
2018-10-14 10:53:47 -06:00
anatoly yakovenko
6aaa350145
effeciently pack gossip responsens and only respond up to max size. ( #1493 )
2018-10-14 06:45:02 -07:00
Michael Vines
d3b4dfe104
Add bool return to entrypoint signature to permit programs to fail transactions
2018-10-13 20:01:43 -07:00
Michael Vines
2d0f07091d
Handle dynamic program dlopen failures gracefully
2018-10-13 11:31:10 -07:00
Michael Vines
3828eda507
Demote log messages
2018-10-13 11:31:10 -07:00
Michael Vines
1e736ec16d
Demote log messages
2018-10-12 20:16:57 -07:00
Anatoly Yakovenko
bba6437ea9
Use a single structure for last_ids and last_ids_sigs
2018-10-12 16:39:35 -07:00
Pankaj Garg
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
Tyera Eulberg
1515bba9c6
Use cluster_info in rpc to get current leader addresses ( #1480 )
2018-10-12 14:25:56 -06:00
Rob Walker
14a9ef4bbe
move PoH verification off bank.last_id() ( #1476 )
2018-10-12 11:50:34 -07:00
Michael Vines
041040c659
pubsub.rs -> rpc_pubsub.rs
2018-10-12 08:39:06 -07:00
carllin
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
Stephen Akridge
9dd4dc2088
Mark failing tests as ignore
2018-10-11 15:32:36 -07:00
Stephen Akridge
183f560d06
Add raw entries interface to ledger for getting slices as [u8]
2018-10-11 09:40:34 -07:00
anatoly yakovenko
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
Michael Vines
02225aa95c
Look for native programs in same directory as the current executable
2018-10-10 16:49:48 -07:00
carllin
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
Michael Vines
262f26cf76
SystemProgram transactions now fail on invalid arguments
2018-10-10 15:19:03 -07:00
Tyera Eulberg
785c619198
Add pubsub module for rpc info subscriptions ( #1439 )
2018-10-10 14:51:43 -06:00
Michael Vines
24a993710d
Avoid panic when account.source is None
2018-10-10 10:53:00 -07:00
Michael Vines
eed3b9db94
Add ERC20-like Token program
2018-10-09 12:53:37 -07:00
Greg Fitzgerald
95701114e3
Crdt -> ClusterInfo
2018-10-09 03:49:39 -06:00
Rob Walker
a99d17c3ac
put temp, test files in OUT_DIR ( #1448 )
2018-10-08 16:15:17 -07:00
Tyera Eulberg
517149d325
Move rpc request methods from wallet into separate module
2018-10-08 13:02:08 -06:00
Michael Vines
32aa2575b5
Purge BudgetTransaction from entry
2018-10-08 11:34:04 -07:00
Michael Vines
8fe7b96629
Purge BudgetTransaction from banking_stage
2018-10-08 11:34:04 -07:00
anatoly yakovenko
9350619afa
log to influx once ( #1438 )
2018-10-06 14:37:14 -07:00
anatoly yakovenko
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
Greg Fitzgerald
b508fdb62c
Cleanup field names
2018-10-04 16:51:05 -07:00
Jack May
680f90df21
Fix comment
2018-10-04 14:21:06 -07:00
anatoly yakovenko
1a68807ad9
Enable mt-bank ( #1368 )
...
* Enable mt-bank
* cleanup and interleaving lock tests
2018-10-04 13:15:54 -07:00
jackcmay
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
Carl
74b63c12a0
Add tests to LeaderScheduler to increase code coverage
2018-10-03 21:58:29 -07:00
Carl
cd42f6591a
PR fixes - remove redundant case
2018-10-03 21:58:29 -07:00
Carl
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
Carl
23f3ff3cf0
Added LeaderScheduler module and tests
2018-10-03 21:58:29 -07:00
Michael Vines
f90488c77b
Demote 'not enough peers in crdt table' log message
2018-10-02 22:00:54 -07:00
Stephen Akridge
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
Michael Vines
6db961d256
Correct comment
2018-09-30 00:08:09 -07:00
Michael Vines
83409ded59
Correctly deserialize large userdata
2018-09-29 19:39:54 -07:00
Michael Vines
396b2e9772
Ignore keep alive for completed games
2018-09-29 19:39:54 -07:00
Greg Fitzgerald
b6b5455917
Fix test in coverage build
2018-09-28 19:19:16 -07:00
Michael Vines
c79acac37b
Add tic-tac-toe dashboard program
2018-09-28 18:48:34 -07:00
Michael Vines
a5f2aa6777
s/grid/board/g
2018-09-28 18:48:34 -07:00
Michael Vines
4169e5c510
Simplify game setup messaging
2018-09-28 18:48:34 -07:00
Michael Vines
0727c440b3
Add KeepAlive message so players can detect abandoned games
2018-09-28 18:48:34 -07:00
Tyera Eulberg
52d50e6bc4
Update for new solana-jsonrpc
2018-09-28 17:53:41 -06:00
anatoly yakovenko
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
Stephen Akridge
a5f07638ec
Use static str define for ledger files
2018-09-28 14:23:37 -07:00
Stephen Akridge
aa2a3fe201
Add chacha module to encrypt ledger files
2018-09-28 14:23:37 -07:00
Jack May
abd13ba4ca
move program tests to integration
2018-09-28 11:30:10 -07:00
Greg Fitzgerald
423e7ebc3f
Pacify clippy
2018-09-27 16:21:12 -06:00
Stephen Akridge
6cdbdfbbcb
Enable bench and fix upload-perf
2018-09-27 14:16:56 -07:00
Tyera Eulberg
dbc1ffc75e
Use jsonrpc fork
2018-09-27 12:50:38 -06:00
Michael Vines
1fdbe893c5
Improve game setup experience: X now shares game key and accepts O
2018-09-27 10:44:13 -07:00
Pankaj Garg
55a542bff0
Fix erasure and cuda related compilation errors
2018-09-27 10:42:37 -06:00
Pankaj Garg
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
Anatoly Yakovenko
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
Greg Fitzgerald
4172bde081
Only send a vote once a second
2018-09-27 09:06:41 -06:00
jackcmay
9c47e022dc
break dependency of programs on solana core ( #1371 )
...
* break dependency of programs on Solana core
2018-09-27 07:49:26 -07:00
Greg Fitzgerald
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
Greg Fitzgerald
b7ae5b712a
Move Pubkey into its own module
2018-09-26 20:40:40 -06:00
Greg Fitzgerald
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
Michael Vines
b238c57179
Add trace! when an error is mapped to GenericFailure
2018-09-26 19:30:20 -07:00
Michael Vines
1821e72812
Add getSignatureStatus
2018-09-26 19:00:34 -07:00
Rob Walker
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
Greg Fitzgerald
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
Greg Fitzgerald
e416cf7adf
Let clients know when transactions failed
2018-09-26 19:30:27 -06:00
Anatoly Yakovenko
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
Stephen Akridge
d546614936
Handle deserialize failure with error
2018-09-26 15:17:07 -07:00
Greg Fitzgerald
ac8d738045
Don't call unwrap() in StorageProgram::process_tx
2018-09-26 15:17:07 -07:00
Greg Fitzgerald
ca962371b8
Fix build
...
Two PRs crossed in flight.
2018-09-26 14:40:48 -06:00
Rob Walker
e6f8922e35
fix issue #1347 ( #1355 )
2018-09-26 13:31:39 -07:00
Greg Fitzgerald
7292ece7ad
Free up term instruction for new multi-instruction feature
2018-09-26 14:17:15 -06:00
Greg Fitzgerald
df3b78c18c
Move BudgetTransaction into its own module
2018-09-26 14:17:15 -06:00
Greg Fitzgerald
c83dcea87d
Move SystemTransaction into its own module
2018-09-26 14:17:15 -06:00
Greg Fitzgerald
be20c99758
Promote the one true transaction constructor
2018-09-26 14:17:15 -06:00
Greg Fitzgerald
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
Tyera Eulberg
113c8b5880
Rollback jsonrpc SendTransaction pool for signature; ignore flaky tests
2018-09-26 10:25:29 -07:00
Stephen Akridge
a5b28349ed
Add max entry height to download for replicator
2018-09-26 09:57:22 -07:00
Tyera Eulberg
14bc160674
Clean up test and add signature return to rpc send tx
2018-09-25 16:38:51 -07:00
Tyera Eulberg
d438c22618
Update RFC
2018-09-25 16:38:51 -07:00
Tyera Eulberg
bcbae0a64f
Fix witness functionality
2018-09-25 16:38:51 -07:00
Tyera Eulberg
f636408647
Fix timestamp and cancel functionality
...
- Also serialize and send helper fn
2018-09-25 16:38:51 -07:00
Tyera Eulberg
3ffc7aa5bc
Add helper fn to get last id
2018-09-25 16:38:51 -07:00
Tyera Eulberg
7b7e8c0d3f
Clippy
2018-09-25 16:38:51 -07:00
Tyera Eulberg
11ea9e7c4b
Add cancelable handling
2018-09-25 16:38:51 -07:00
Tyera Eulberg
5038e5ccd7
Preliminary Wallet-Budget functionality
2018-09-25 16:38:51 -07:00
Tyera Eulberg
e943ed8caf
Expand parse_command and add tests
2018-09-25 16:38:51 -07:00
Tyera Eulberg
c196952afd
Flesh out Wallet CLI & add placeholder WalletCommands
2018-09-25 16:38:51 -07:00
carllin
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
Rob Walker
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
Greg Fitzgerald
680072e5e2
No need to special case vote failures
2018-09-25 13:43:35 -06:00
Greg Fitzgerald
4ca377a655
Delete dead code
2018-09-25 13:43:35 -06:00
Tyera Eulberg
751dd7eebb
Move vote into ReplicateStage after process_entries
2018-09-25 13:43:35 -06:00
Michael Vines
8f0e0c4440
Add tic-tac-toe program
2018-09-25 12:07:41 -07:00
Tyera Eulberg
db310a044c
Add Budget::And element, and supporting functions ( #1329 )
2018-09-25 12:38:13 -06:00
Rob Walker
88a609ade5
groom write_stage
2018-09-25 00:18:35 -07:00
Rob Walker
304d63623f
give replication some time to happen
...
fixes #1307
2018-09-24 23:57:09 -07:00
Rob Walker
407b2682e8
remove dead code
2018-09-24 23:12:09 -07:00
Pankaj Garg
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
Greg Fitzgerald
747ba6a8d3
Boot BudgetState::last_error
2018-09-24 17:14:23 -06:00
Greg Fitzgerald
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
Greg Fitzgerald
e972d6639d
Return errors from BudgetProgram::process_transaction
2018-09-24 17:14:23 -06:00
Greg Fitzgerald
22e77c9485
Add a way of getting transaction errors out of the bank
2018-09-24 17:14:23 -06:00
Greg Fitzgerald
95677a81c5
Pacify clippy
2018-09-24 13:36:31 -06:00
Greg Fitzgerald
ea37d29d3a
Pass Bank::process_transactions() a reference to the txs instead of moving them
2018-09-24 13:36:31 -06:00
sakridge
e030673c9d
Do a recv on join to prevent channel destruction ( #1320 )
...
before window thread join
2018-09-24 11:50:37 -07:00
sakridge
3e76efe97e
Fix bench compilation ( #1311 )
2018-09-24 10:40:42 -07:00
Stephen Akridge
f5a30615c1
Ignore replicator startup for now
2018-09-24 09:43:58 -06:00
Rob Walker
9e3d2956d8
remove last recycle?
2018-09-24 08:09:41 -06:00
jackcmay
26b1466ef6
Initial integration of dynamic contracts and native module loading ( #1256 )
...
* Integration of native dynamic programs
2018-09-23 22:13:44 -07:00
Jack May
a1f01fb8f8
revert is_some to not is_none, causes test failure
2018-09-23 17:09:18 -06:00
Jack May
b2be0e2e5e
fix clippy warning
2018-09-23 17:09:18 -06:00
Jack May
1a45587c08
fix clippy warnings
2018-09-23 17:09:18 -06:00
Rob Walker
a51c2f193e
fix Rob and Carl crossing wires
2018-09-21 21:37:25 -07:00
Rob Walker
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
sakridge
54b407b4ca
Wait on blob fetch before window, Seems to fix instability ( #1304 )
...
also cleanup ledger.
2018-09-21 18:56:20 -07:00
Tyera Eulberg
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
Tyera Eulberg
ad4fef4f09
Doc for rpc_port configuration
2018-09-21 18:06:20 -06:00
Tyera Eulberg
e3b3701e13
Add RPC port option to fullnode
2018-09-21 18:06:20 -06:00
Tyera Eulberg
9228fe11c9
Port Wallet to jsonrpc and fix tests
2018-09-21 18:06:20 -06:00
carllin
5ab38afa51
Changed the window_service in Replicator to send entries instead of blobs ( #1302 )
2018-09-21 16:50:58 -07:00
Rob Walker
e49b8f0ce7
Update poh_service.rs
2018-09-21 16:03:54 -07:00
carllin
c50ac96f75
Moved deserialization of blobs to entries from replicate_stage to window_service ( #1287 )
2018-09-21 16:01:24 -07:00
sakridge
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
Rob Walker
3dcee9f79e
Update poh_service.rs
2018-09-21 08:01:24 -07:00
Michael Vines
2614189157
cargo fmt
2018-09-20 19:46:20 -07:00
Michael Vines
beeb09646a
suppress warning: unused variable: recycler
2018-09-20 19:46:20 -07:00
Tyera Eulberg
c0e7e43e96
fixup! s/contract/program
2018-09-20 19:33:54 -07:00
Anatoly Yakovenko
9bfead2e01
s/contract/program
2018-09-20 19:33:54 -07:00
Greg Fitzgerald
6073cd57fa
Boot Recycler::recycle()
2018-09-20 17:08:51 -06:00
Michael Vines
5174be5fe7
Rename getAccount to getAccountInfo
2018-09-20 15:18:56 -07:00
Rob Walker
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
Michael Vines
a6c15684c9
Avoid panicking invalid instructions
2018-09-20 14:08:39 -07:00
Michael Vines
5691bf557c
Handle bad account userdata better
2018-09-20 14:08:39 -07:00
Michael Vines
8f01f7cf21
Trace syscalls for more helpful logs
2018-09-20 14:08:39 -07:00
Michael Vines
bb8c94ad2c
Add getAccount JSON RPC request
2018-09-20 13:58:15 -07:00
Greg Fitzgerald
d98e35e095
Delete no longer used PaymentPlan trait
2018-09-20 14:22:45 -06:00
Greg Fitzgerald
3163fbad0e
Remove 'Plan' indirection since it's implied by BUDGET_CONTRACT_ID
2018-09-20 14:22:45 -06:00
Greg Fitzgerald
0172422961
Require a self-assigned account ID
2018-09-20 14:16:14 -06:00
Rob Walker
8ccfb26923
tests for my IP picker
2018-09-20 09:21:09 -07:00
Rob Walker
12a474b6ee
sort local interfaces before selecting one
2018-09-20 09:21:09 -07:00
Greg Fitzgerald
270fd6d61c
Fix compiler warnings
2018-09-20 09:47:36 -06:00
carllin
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
Carl
55126f5fb6
Marked Tvu functionality in Fullnode as unused for now
2018-09-19 16:05:31 -07:00
Anatoly Yakovenko
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
Michael Vines
6732a9078d
Clarify AfterTimestamp wire format
2018-09-19 13:28:35 -07:00
sakridge
2981076a14
Add solana-upload-perf to parse json from bench and upload to influx ( #1166 )
2018-09-19 13:16:55 -07:00
Carl
cd2d50e06c
Changed transition to restart Rpu rather than modify bank to prevent lock contention
2018-09-19 10:48:05 -06:00
Carl
8c8a4ba705
debugging commit
2018-09-19 10:48:05 -06:00
Carl
b10de40506
Made LEADER_ROTATION_INTERVAL settable so that integration tests don't time out
2018-09-19 10:48:05 -06:00
Carl
2030dfa435
Implement PR comments, tidy up
2018-09-19 10:48:05 -06:00
Carl
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
Carl
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
Carl
1fb1c0a681
added jointypes to the stages in the tpu involved in leader rotation
2018-09-19 10:48:05 -06:00
Carl
062f654fe0
formatted code
2018-09-19 10:48:05 -06:00
Carl
d3cb161c36
Added broadcast stage test for leader rotation exit
2018-09-19 10:48:05 -06:00
Carl
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
Carl
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
Carl
91cf14e641
Rewrote service trait join() method to allow thread join handles to return values other than ()
2018-09-19 10:48:05 -06:00
Pankaj Garg
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
Michael Vines
6dee632d67
Remove Signature from ApplySignature
2018-09-18 20:00:42 -07:00
Michael Vines
51e5de4d97
Log specific send_transaction error messages
2018-09-18 16:17:08 -07:00
Michael Vines
1f08b22c8e
Tweak log messages
2018-09-18 16:17:08 -07:00
Michael Vines
83ae5bcee2
Detect binary changes in serialized contract userdata
2018-09-18 16:17:08 -07:00
Michael Vines
339a570b26
Update comment
2018-09-18 16:17:08 -07:00
Pankaj Garg
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
Pankaj Garg
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
Michael Vines
aebf7f88e5
Various spelling fixes
2018-09-17 19:37:59 -07:00
Michael Vines
aac1571670
mint now uses the SystemContract instead of Budget
2018-09-17 18:02:40 -07:00
Anatoly Yakovenko
8bae75a8a6
system contract tests
2018-09-17 14:34:55 -07:00