2478 Commits

Author SHA1 Message Date
Pankaj Garg
32fc0cd7e9
Fix bug introduced during RUST_LOG escaping (#1507)
* Fix bug introduced during RUST_LOG escaping
- remote node configuration should not be quoted

* shellcheck disable SC2090
2018-10-15 16:49:22 -07:00
Tyera Eulberg
fb99494858
Improve rpc code coverage (#1487) 2018-10-15 11:01:40 -06:00
Greg Fitzgerald
5b4d4b97bc Upgrade to latest stable Rust, 1.29.2 2018-10-15 09:54:24 -06:00
Michael Vines
c5180c8092 Permit RUST_LOG overrides 2018-10-14 12:40:37 -07: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
Pankaj Garg
9fc30f6db4
Escape RUST_LOG configuration in remote-node.sh (#1489)
* Escape RUST_LOG configuration in remote-node.sh

- If it was set to #, it was causing other parameters to be commented out

* escape other variables as well

* disabled shell check

* Fix shellcheck error
2018-10-13 13:35:54 -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
Tyera Eulberg
b534c32ee3 New minor version for jsonrpc crates 2018-10-11 13:35:06 -06:00
Tyera Eulberg
d2712f1457 Specify patch for jsonrpc crates 2018-10-11 11:38:14 -07:00
Stephen Akridge
183f560d06 Add raw entries interface to ledger for getting slices as [u8] 2018-10-11 09:40:34 -07:00
Michael Vines
ae150c0897
Remove getAddress, it doesn't exist 2018-10-11 08:28:39 -07:00
Michael Vines
606e1396cf
Fix link 2018-10-11 08:25:38 -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
5c523716aa Ship native programs 2018-10-10 16:49:48 -07:00
Michael Vines
5f8cbf359e Use cdylib to avoid runtime libstd dependencies 2018-10-10 16:49:48 -07:00
Michael Vines
e83834e6be Build native programs in release configuration 2018-10-10 16:49:48 -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
Greg Fitzgerald
2ba2bc72ca Cleanup multisig lua 2018-10-10 17:17:17 -06:00
Greg Fitzgerald
45b8ba9ede Demo M-N multisig library in Lua 2018-10-10 17:17:17 -06:00
Michael Vines
40968e09b7 Do a *little* more than noop 2018-10-10 15:57:30 -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
Pankaj Garg
c240bb12ae Change buildkite agent for testnet automation 2018-10-09 15:04:55 -07:00
Michael Vines
eed3b9db94 Add ERC20-like Token program 2018-10-09 12:53:37 -07:00
Pankaj Garg
29a8823db1
Env variables for testnet-automation parameters (#1455)
- This will enable us to create custom pipelines for field events
2018-10-09 11:50:56 -07:00
Pankaj Garg
a80955eacb
Change format of data for TPS/Finality metrics in testnet automation (#1446)
* Change format of data for TPS/Finality metrics in testnet automation

* Revert number of nodes for testnet automation

* Split python command to its own script

* Fix python command line arguments
2018-10-09 10:35:01 -07:00
Greg Fitzgerald
9716c3de71 Add an abort test to justify a key field 2018-10-09 11:06:48 -06:00
Greg Fitzgerald
34fa3208e0 Demo self-modifying Lua program
Also, drop dependency on bincode.
2018-10-09 11:06:48 -06:00
Greg Fitzgerald
9c4e19958b Use accounts[1] for Lua code and tx userdata as arg data
This makes the Lua version nearly identical to the C one.
2018-10-09 11:06:48 -06:00
Greg Fitzgerald
0403299728 Add context-free Lua smart contracts
lua_State is not preserved across runs and account userdata is not converted into
Lua values. All this allows us to do is manipulate the number of tokens
in each account and DoS the Fullnode with those three little words,
"repeat until false".

Why bother? Research. rlua's project goals are well-aligned with the LAMPORT runtime.

What's next:
* rlua to add security limits, such as number of instructions executed
* Add a way to deserialize Account::userdata OR use Account::program_id
  to look up a metatable for lua_newuserdata().
2018-10-09 11:06:48 -06: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