Commit Graph

356 Commits

Author SHA1 Message Date
a22e1199cf Add fork selection RFC (#2061)
RFC and simulation for fork generation.
2018-12-14 11:15:23 -08:00
85398c728a Disable assert in replicator startup test 2018-12-13 16:50:30 -08:00
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
a05a378db4 cleanup 2018-12-12 19:12:51 -08:00
245362db96 Make a dummy version of serving repairs from db_ledger 2018-12-12 19:12:51 -08:00
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
cefbb7c27d Fix shared object relcations with multiple static arrays (#2121) 2018-12-12 08:41:45 -08:00
935524f20c Fix eh frame relocation (#2109)
* Exclude .eh_frame
2018-12-11 12:14:41 -08:00
e3dfd7b1ab Allow BPF structure passing and returning (#2100)
* Add BPF struct passing and returning tests
2018-12-11 09:03:37 -08:00
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
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
0ef099421c cargo fmt 2018-12-08 23:19:55 -07:00
a8d6c75a24 cargo +nightly fix --features=bpf_c,cuda,erasure,chacha --edition-idioms 2018-12-08 23:19:55 -07:00
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
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
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
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
632425c7d7 Move native_loader under programs/native/ 2018-12-05 14:32:42 -08:00
214ed3667c Move system_transaction out of src/ 2018-12-05 10:49:06 -08:00
122627dda2 Move loader_transaction out of src/ 2018-12-05 10:49:06 -08:00
ea6e042a6f Move vote_program out of src/ 2018-12-05 10:49:06 -08:00
9a4f8199d6 Move system_program out of src/ 2018-12-05 10:49:06 -08:00
ae0be1e857 Remove bpf_loader.rs 2018-12-05 10:49:06 -08:00
0cb5ae41c6 Enable BPF shared objects (#2012)
* Switch to BPF ELF shared objects (.so)
2018-12-04 22:03:32 -08:00
c99f93e40a Remove signature.rs indirection 2018-12-03 13:50:00 -08:00
34c3a0cc1f Add signature verification to gossip (#1937) 2018-12-01 12:00:30 -08:00
0878bd53d9 Delete stub src/transaction.rs 2018-11-29 23:07:57 -08:00
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
3f9ad1253d Re-enable fixed tests (#1907) 2018-11-25 20:51:55 -08:00
9f0b06bb86 Filter out leader node while retransmitting blobs (#1894) 2018-11-24 20:33:49 -08:00
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
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
3d113611cc remove Result<> return from ClusterInfo::new() (#1869)
strip Result<> for ClusterInfo::new()
2018-11-19 11:25:14 -08:00
07667771ef Fix Gossip Pushes going to invalid addresses (#1858) 2018-11-17 19:57:28 -08:00
d96a6b42a5 Move drone into its own crate 2018-11-16 20:42:21 -08:00
6ac5700f2e Move metrics into its own crate 2018-11-16 15:10:07 -08:00
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
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
478ba75d6b Update featurized test 2018-11-13 17:19:10 -08:00
4668a798ca Fix Sagar and I crossing wires (#1810) 2018-11-13 15:18:54 -08:00
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
43bd28cdfa Add loader_ prefix to LoaderTransaction methods 2018-11-07 15:06:38 -07:00
1075a73902 Elf relocations (#1724)
Use relocatable BPF ELFs
2018-11-07 09:40:23 -08:00
bfad138bb3 Pass any serializable to Transaction constructor 2018-11-06 11:23:59 -07:00
54968b59bb Update last_id between client retries
Fixes #1694
2018-11-06 09:06:15 -07:00
f683817b48 Remove RPU; replace with RPC 2018-11-05 20:30:47 -07:00
c9138f964b Change token type from i64 to u64
Fixes #1526
2018-11-05 15:25:26 -07:00
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
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
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