Commit Graph

9747 Commits

Author SHA1 Message Date
Scott Schurr
f63867e958 Add STAccount unit tests (RIPD-994) 2015-11-24 01:33:51 -08:00
Scott Schurr
fa05ded88e Use std::thread in LedgerCleaner (RIPD-236) 2015-11-24 01:33:51 -08:00
Nik Bougalis
7bb4ff901e Set version to 0.30.1-b7 2015-11-12 21:55:48 -08:00
Nik Bougalis
03516a14da Defer checking whether master key was used for signing 2015-11-12 21:54:44 -08:00
Nik Bougalis
0c67364e6c Allow multiple incoming connections from the same IP:
Multiple servers behind NAT might share a single public IP, making it
difficult for them to connect to the Ripple network since multiple
incoming connections from the same non-private IP are currently not
allowed.

RippleD now automatically allows between 2 and 5 incoming connections,
from the same public IP based on the total number of peers that it is
configured to accept.

Administrators can manually change the limit by adding an "ip_limit"
key value pair in the [overlay] stanza of the configuration file and
specifying a positive non-zero number. For example:

[overlay]
ip_limit=3

The previous "one connection per IP" strategy can be emulated by
setting "ip_limit" to 1.

The implementation imposes both soft and hard upper limits and will
adjust the value so that a single IP cannot consume all inbound slots.
2015-11-12 21:54:44 -08:00
Nik Bougalis
f00c09d9fc Case-insensitive configuration file option parsing 2015-11-12 21:54:44 -08:00
Howard Hinnant
21a7b62c2b Make the SHAMap hash a distinct type from a uint256.
* Implement a type safe distinction between a node hash and a node id.
* This is just the first phase, limited to SHAMap's internals.
2015-11-12 21:54:44 -08:00
Vinnie Falco
49c4a063c1 Exit immediately in Resource::ManagerImp::~ManagerImp 2015-11-12 21:54:44 -08:00
Miguel Portilla
f8edc203e7 Reduce DeliverNodeReverse log severity 2015-11-12 21:54:44 -08:00
JoelKatz
9a6a064307 Be more robust about storing/replaying proposals:
Store a proposal even if it arrives outside a round. Make sure we catch
up on any missed proposals as we start a round.
2015-11-12 21:54:32 -08:00
JoelKatz
22678b5cfa Rework close time voting:
Properly take close time rounding and monotonic ledger close times
into account when determining if we have a close time consensus.

In some cases, we send an extra proposal at the end of a round. This
can be removed once all servers have the correct end of round detection
logic.
2015-11-12 21:53:53 -08:00
JoelKatz
269008b311 Better logging of built/validated discrepancies:
If we built a different ledger from the one we ultimately
validate, log the status of the consensus round. This will
make it easier to rule out transaction processing issues
as the cause of these discrepancies and generally make them
easier to diagnose.
2015-11-12 21:53:28 -08:00
JoelKatz
0458d1910e Cleanups 2015-11-12 21:52:10 -08:00
wilsonianb
98bdb9de68 Use [ips_fixed] over r.ripple.com as the default [ips] 2015-11-12 21:40:20 -08:00
Nik Bougalis
124ea41d85 Set version to 0.30.1-b6 2015-11-05 14:52:05 -08:00
Nik Bougalis
818130a8c0 Separate cluster tracking from UNL:
* Simplify code
* Leverage C++14 transparent comparators
2015-11-05 14:51:29 -08:00
seelabs
41ff751cd2 Fix ABI settings for clang on linux 2015-11-05 14:51:29 -08:00
Scott Schurr
a8cc9033b4 Add unit test for zero fee transaction. 2015-11-05 14:50:16 -08:00
Mark Travis
fdd012c420 State accounting:
Record total duration spent in and every transition to each
possible server state. Display as counters through server_info
RPC call.
2015-11-05 14:49:05 -08:00
Nik Bougalis
b71ff4cb88 Set version to 0.30.1-b5 2015-10-28 14:45:55 -07:00
Nik Bougalis
ca17adf7ec Avoid serializing ledger proposals 2015-10-28 14:45:35 -07:00
Scott Schurr
323164877c Make submit_multisigned command line consistent (RIPD-182):
In command line usage (only), the "sign", "submit", and "sign_for"
commands do not require the submitted JSON to be wrapped in a
tx_json object.  Make the submit_multisigned command line behave
consistently with the command line form of those other commands.
2015-10-28 14:45:35 -07:00
JoelKatz
6dbbb7406c Allow subscription to peer status changes (RIPD-579)
Subscribe to "peer_status" stream (admin only) permits
reception of "peerStatusChange" notifications.

These can include the event the peer is reporting, the peer's
new status, the peer's currently accepted ledger hash and sequence,
the peer's network time, and the range of ledgers the peer has
available for remote querying.
2015-10-28 14:45:35 -07:00
JoelKatz
75bed5efcf Permit pathfinding to be disabled. (RIPD-271)
If you do not need pathfinding, you can disable it and save some
resources by setting path_search_max to zero in your config file.
2015-10-28 14:45:35 -07:00
JoelKatz
45f00362db Report connection uptime in peer command (RIPD-927) 2015-10-28 14:45:34 -07:00
seelabs
ded2a5c076 Automate process of using gcc5:
* SConstruct will set ABI based on ubuntu flavor
* Script to bring in packages for various ubuntu flavors
* Script to bring in packages for various fedora 22
* Remove unneeded environment variable from travis
* Script to build boost with correct API flags
* `--static` flag to control static linking
2015-10-28 14:45:34 -07:00
Edward Hennis
b6cb981a8b Update VS2015 build instructions.
* Include Python and Scons, and new OpenSSL lib path.
2015-10-28 10:20:35 -07:00
Edward Hennis
d0770cdb1a Use C++14 lambda declaration. 2015-10-28 10:15:58 -07:00
Edward Hennis
6464d1abc1 Clean up src/ripple/app/tx directory:
* Move InboundTransactions to app/ledger
* Move TransactionAcquire to app/ledger
* Move LocalTxs to app/ledger
* Move Transaction to app/misc
* Move TransactionMaster to app/ledger
2015-10-28 11:37:15 -04:00
Edward Hennis
7d0d89faae Convert HashRouter to use aged_unordered_map. 2015-10-28 11:25:50 -04:00
Edward Hennis
9329aafe53 Transaction queue and fee escalation (RIPD-598):
The first few transactions are added to the open ledger at
the base fee (ie. 10 drops).  Once enough transactions are
added, the required fee will jump dramatically. If additional
transactions are added, the fee will grow exponentially.

Transactions that don't have a high enough fee to be applied to
the ledger are added to the queue in order from highest fee to
lowest. Whenever a new ledger is accepted as validated, transactions
are first applied from the queue to the open ledger in fee order
until either all transactions are applied or the fee again jumps
too high for the remaining transactions.

Current implementation is restricted to one transaction in the
queue per account. Some groundwork has been laid to expand in
the future.

Note that this fee logic escalates independently of the load-based
fee logic (ie. LoadFeeTrack). Submitted transactions must meet
the load fee to be considered for the queue, and must meet both
fees to be put into open ledger.
2015-10-28 11:15:19 -04:00
Edward Hennis
dc1276efa3 OpenLedger::current returns OpenView const. 2015-10-28 11:15:11 -04:00
Edward Hennis
5707988155 Env::postconditions function for alternate validation. 2015-10-28 11:15:10 -04:00
Edward Hennis
382adcc93c Move mulDiv and lowestTerms to STAmount.cpp 2015-10-28 11:15:08 -04:00
Vinnie Falco
656a6c5eb5 Add modify function to OpenLedger::accept 2015-10-28 11:12:47 -04:00
seelabs
6700e44793 Set version to 0.30.1-b4 2015-10-20 13:37:41 -04:00
JoelKatz
d6df73747f Remove the small fetch optimization
In some cases, it significantly increased ledger fetch traffic.
2015-10-20 13:37:07 -04:00
seelabs
d8f265e8ac Upgrade to C++-14:
* Remove cxx14 compatibility layer from ripple
  * Update travis to clang 3.6 and drop gcc 4.8
  * Remove unneeded beast CXX14 defines
  * Do not run clang build with gdb with travis
  * Update circle ci to clang 3.6 & gcc-5
  * Don't run rippled in gdb, clang builds crash gdb
  * Staticly link libstdc++, boost, ssl, & protobuf
  * Support builds on ubuntu 15.10
2015-10-20 11:35:24 -04:00
seelabs
d67d8c2ced Remove cxx14 compatibility layer from beast 2015-10-20 09:52:25 -04:00
Scott Schurr
4568c38597 Use std::thread in WebSocket (RIPD-236). 2015-10-20 09:52:25 -04:00
Mark Travis
e636669850 Fix display of default websocket test page. 2015-10-20 09:52:25 -04:00
Scott Schurr
7149765892 sign_for RPC command improvements (RIPD-1036):
o The sign_for RPC command automatically fills in an empty
   "SigningPubKey" field if the field is missing.

 o The sign_for command returns the Signers list inside the
   tx_json.  This re-establishes symmetry with the
   submit_multisigned command.  It also means the returned
   tx_blob might be useful, since it contains the multisignature.

 o The sign_for command also now allows the inclusion of a Signers
   array field in the input tx_json.  If a Signers array is present,
   the new signature is incorporated into the passed array.  This
   supports a model where multisignatures are accumulated serially.

 o Syntax hints are improved.
2015-10-20 09:52:25 -04:00
Scott Schurr
c28c516b22 sign_for RPC command fixes (RIPD-182):
o Remove warning written to log by sign_for command.

 o The sign_for RPC command previously only worked in the
   "json sign_for" form.  The command now works as a straight
   "sign_for".  The "offline" parameter also works.

 o Don't autofill Fee or Paths when signing offline.
2015-10-16 15:36:53 -07:00
Vinnie Falco
780a553662 Set version to 0.30.1-b3 2015-10-16 08:18:08 -07:00
wilsonianb
c755a7ff9b Remove rippled.spec rpm file 2015-10-16 08:18:03 -07:00
Vinnie Falco
8296d81edf Cache tid in STTx:
The digest for a transaction (its transaction ID, or tid) is
computed once upon constructed when the STTx is deserialized.
Subsequent calls to retrieve the digest use the cached value.

Any code which modifies the STTx and then attempts to
retrieve the digest will terminate the process with a
logic error contract violation.

* Nested types removed
* All STTx are contained as const
  (Except in transaction sign, which must modify)
* tid in STTx is computed once on deserialization
2015-10-16 08:18:03 -07:00
JoelKatz
0622e4fd44 Process batch during OpenLedger::modify 2015-10-15 18:14:32 -07:00
JoelKatz
3e8e2c2fee Fix incorrect capture in handleLCL 2015-10-15 18:10:08 -07:00
Scott Schurr
8296041f9e Convert Resource::Manager to use std::thread (RIPD-236) 2015-10-15 18:10:07 -07:00
Nik Bougalis
43a480f02d Set version to 0.30.1-b2 2015-10-13 17:33:35 -07:00