mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-21 04:05:49 +00:00
@@ -28,7 +28,7 @@ See [the `rippled` GitHub repository](https://github.com/ripple/rippled/blob/mas
|
||||
You must restart `rippled` for any configuration changes to take effect:
|
||||
|
||||
|
||||
{% if currentpage.md == "tutorials/manage-the-rippled-server/installation/install-rippled-on-ubuntu-with-alien.md" or
|
||||
{% if currentpage.md == "tutorials/manage-the-rippled-server/installation/install-rippled-on-ubuntu.md" or
|
||||
currentpage.md == "tutorials/manage-the-rippled-server/installation/install-rippled-on-centos-rhel-with-yum" %}
|
||||
$ sudo systemctl restart rippled.service
|
||||
|
||||
@@ -48,4 +48,4 @@ If you change the `[debug_logfile]` or `[database_path]` sections, you may need
|
||||
|
||||
You must update `rippled` regularly to remain synced with the rest of the XRP Ledger network. You can subscribe to the [rippled Google Group](https://groups.google.com/forum/#!forum/ripple-server) to receive notifications of new `rippled` releases.
|
||||
|
||||
The `rippled` package for Red Hat Enterprise Linux and CentOS includes a script you can use to [enable automatic updates](update-rippled-automatically-on-centos-rhel.html) on those platforms. On other platforms, you must update manually.
|
||||
The `rippled` package includes a script you can use to [enable automatic updates on Linux](update-rippled-automatically-on-linux.html). On other platforms, you must update manually.
|
||||
|
||||
@@ -122,6 +122,7 @@
|
||||
"fix1571",
|
||||
"fix1578",
|
||||
"fix1623",
|
||||
"fixMasterKeyAsRegularKey",
|
||||
"fixTakerDryOfferRemoval",
|
||||
"Flow",
|
||||
"FlowCross",
|
||||
|
||||
@@ -35,3 +35,4 @@
|
||||
[New in: rippled 1.1.0]: https://github.com/ripple/rippled/releases/tag/1.1.0 "BADGE_BLUE"
|
||||
[New in: rippled 1.2.0]: https://github.com/ripple/rippled/releases/tag/1.2.0 "BADGE_BLUE"
|
||||
[New in: rippled 1.2.1]: https://github.com/ripple/rippled/releases/tag/1.2.1 "BADGE_BLUE"
|
||||
[New in: rippled 1.3.1]: https://github.com/ripple/rippled/releases/tag/1.3.1 "BADGE_BLUE"
|
||||
|
||||
@@ -219,7 +219,7 @@ To look up which `rippled` version supports these features, see [Known Amendment
|
||||
|
||||
## Testing Amendments
|
||||
|
||||
If you want to see how `rippled` behaves with an amendment enabled, before that amendment gets enabled on the production network, you can run use `rippled`'s configuration file to forcibly enable a feature. This is intended for development purposes only.
|
||||
If you want to see how `rippled` behaves with an amendment enabled, before that amendment gets enabled on the production network, you can run use `rippled`'s config file to forcibly enable a feature. This is intended for development purposes only.
|
||||
|
||||
Because other members of the consensus network probably do not have the feature enabled, you should not use this feature while connecting to the production network. While testing with features forcibly enabled, you should run `rippled` in [stand-alone mode](rippled-server-modes.html#reasons-to-run-a-rippled-server-in-stand-alone-mode).
|
||||
|
||||
|
||||
@@ -5,40 +5,41 @@ The following is a comprehensive list of all known amendments and their status o
|
||||
|
||||
| Name | Introduced | Status |
|
||||
|:--------------------------|:-----------|:------------------------------------|
|
||||
| [CryptoConditionsSuite][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [OwnerPaysFee][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [SHAMapV2][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [Tickets][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [Checks][] | v0.90.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [FlowCross][] | v0.70.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [MultiSignReserve][] | v1.2.0 | [Enabled: 2019-04-17](https://xrpcharts.ripple.com/#/transactions/C421E1D08EFD78E6B8D06B085F52A34A681D0B51AE62A018527E1B8F54C108FB "BADGE_GREEN") |
|
||||
| [fixTakerDryOfferRemoval][] | v1.2.0 | [Enabled: 2019-04-02](https://xrpcharts.ripple.com/#/transactions/C42335E95F1BD2009A2C090EA57BD7FB026AD285B4B85BE15F669BA4F70D11AF "BADGE_GREEN") |
|
||||
| [fix1578][] | v1.2.0 | [Enabled: 2019-03-23](https://xrpcharts.ripple.com/#/transactions/7A80C87F59BCE6973CBDCA91E4DBDB0FC5461D3599A8BC8EAD02FA590A50005D "BADGE_GREEN") |
|
||||
| [DepositPreauth][] | v1.1.0 | [Enabled: 2018-10-09](https://xrpcharts.ripple.com/#/transactions/AD27403CB840AE67CADDB084BC54249D7BD1B403885819B39CCF723DC671F927 "BADGE_GREEN") |
|
||||
| [fix1515][] | v1.1.0 | [Enabled: 2018-10-09](https://xrpcharts.ripple.com/#/transactions/6DF60D9EC8AF3C39B173840F4D1C57F8A8AB51E7C6571483B4A5F1AA0A9AAEBF "BADGE_GREEN") |
|
||||
| [fix1543][] | v1.0.0 | [Enabled: 2018-06-21](https://xrpcharts.ripple.com/#/transactions/EA6054C9D256657014052F1447216CEA75FFDB1C9342D45EB0F9E372C0F879E6 "BADGE_GREEN") |
|
||||
| [fix1623][] | v1.0.0 | [Enabled: 2018-06-20](https://xrpcharts.ripple.com/#/transactions/4D218D86A2B33E29F17AA9C25D8DFFEE5D2559F75F7C0B1D016D3F2C2220D3EB "BADGE_GREEN") |
|
||||
| [fix1571][] | v1.0.0 | [Enabled: 2018-06-19](https://xrpcharts.ripple.com/#/transactions/920AA493E57D991414B614FB3C1D1E2F863211B48129D09BC8CB74C9813C38FC "BADGE_GREEN") |
|
||||
| [DepositAuth][] | v0.90.0 | [Enabled: 2018-04-06](https://xrpcharts.ripple.com/#/transactions/902C51270B918B40CD23A622E18D48B4ABB86F0FF4E84D72D9E1907BF3BD4B25 "BADGE_GREEN") |
|
||||
| [fix1513][] | v0.90.0 | [Enabled: 2018-04-06](https://xrpcharts.ripple.com/#/transactions/57FE540B8B8E2F26CE8B53D1282FEC55E605257E29F5B9EB49E15EA3989FCF6B "BADGE_GREEN") |
|
||||
| [fix1201][] | v0.80.0 | [Enabled: 2017-11-14](https://xrpcharts.ripple.com/#/transactions/B1157116DDDDA9D9B1C4A95C029AC335E05DB052CECCC5CA90118A4D46C77C5E "BADGE_GREEN") |
|
||||
| [fix1512][] | v0.80.0 | [Enabled: 2017-11-14](https://xrpcharts.ripple.com/#/transactions/63F69F59BEFDC1D79DBF1E4060601E05960683AA784926FB74BC55074C4F6647 "BADGE_GREEN") |
|
||||
| [fix1523][] | v0.80.0 | [Enabled: 2017-11-14](https://xrpcharts.ripple.com/#/transactions/97FD0E35654F4B6714010D3CBBAC4038F60D64AD0292693C28A1DF4B796D8469 "BADGE_GREEN") |
|
||||
| [fix1528][] | v0.80.0 | [Enabled: 2017-11-14](https://xrpcharts.ripple.com/#/transactions/27AEE02DA4FE22B6BB479F850FBBC873FDC7A09A8594753A91B53098D726397E "BADGE_GREEN") |
|
||||
| [SortedDirectories][] | v0.80.0 | [Enabled: 2017-11-14](https://xrpcharts.ripple.com/#/transactions/6E2309C156EBF94D03B83D282A3914671BF9168FB26463CFECD068C63FFFAB29 "BADGE_GREEN") |
|
||||
| [EnforceInvariants][] | v0.70.0 | [Enabled: 2017-07-07](https://xrpcharts.ripple.com/#/transactions/17593B03F7D3283966F3C0ACAF4984F26E9D884C9A202097DAED0523908E76C6 "BADGE_GREEN") |
|
||||
| [fix1373][] | v0.70.0 | [Enabled: 2017-07-07](https://xrpcharts.ripple.com/#/transactions/7EBA3852D111EA19D03469F6870FAAEBF84C64F1B9BAC13B041DDD26E28CA399 "BADGE_GREEN") |
|
||||
| [Escrow][] | v0.60.0 | [Enabled: 2017-03-31](https://xrpcharts.ripple.com/#/transactions/C581E0A3F3832FFFEEB13C497658F475566BD7695B0BBA531A774E6739801515 "BADGE_GREEN") |
|
||||
| [fix1368][] | v0.60.0 | [Enabled: 2017-03-31](https://xrpcharts.ripple.com/#/transactions/3D20DE5CD19D5966865A7D0405FAC7902A6F623659667D6CB872DF7A94B6EF3F "BADGE_GREEN") |
|
||||
| [PayChan][] | v0.33.0 | [Enabled: 2017-03-31](https://xrpcharts.ripple.com/#/transactions/16135C0B4AB2419B89D4FB4569B8C37FF76B9EF9CE0DD99CCACB5734445AFD7E "BADGE_GREEN") |
|
||||
| [TickSize][] | v0.50.0 | [Enabled: 2017-02-21](https://xrpcharts.ripple.com/#/transactions/A12430E470BE5C846759EAE3C442FF03374D5D73ECE5815CF4906894B769565E "BADGE_GREEN") |
|
||||
| [CryptoConditions][] | v0.50.0 | [Enabled: 2017-01-03](https://xrpcharts.ripple.com/#/transactions/8EB00131E1C3DB35EDFF45C155D941E18C3E86BC1934FF987D2DA204F4065F15 "BADGE_GREEN") |
|
||||
| [Flow][] | v0.33.0 | [Enabled: 2016-10-21](https://xrpcharts.ripple.com/#/transactions/C06CE3CABA3907389E4DD296C5F31C73B1548CC20BD7B83416C78CD7D4CD38FC "BADGE_GREEN") |
|
||||
| [TrustSetAuth][] | v0.30.0 | [Enabled: 2016-07-19](https://xrpcharts.ripple.com/#/transactions/0E589DE43C38AED63B64FF3DA87D349A038F1821212D370E403EB304C76D70DF "BADGE_GREEN") |
|
||||
| [MultiSign][] | v0.31.0 | [Enabled: 2016-06-27](https://xrpcharts.ripple.com/#/transactions/168F8B15F643395E59B9977FC99D6310E8708111C85659A9BAF8B9222EEAC5A7 "BADGE_GREEN") |
|
||||
| [FeeEscalation][] | v0.31.0 | [Enabled: 2016-05-19](https://xrpcharts.ripple.com/#/transactions/5B1F1E8E791A9C243DD728680F108FEF1F28F21BA3B202B8F66E7833CA71D3C3 "BADGE_GREEN") |
|
||||
| [FlowV2][] | v0.32.1 | [Vetoed: Removed in v0.33.0](https://xrpl.org/blog/2016/flowv2-vetoed.html "BADGE_RED") |
|
||||
| [SusPay][] | v0.31.0 | [Vetoed: Removed in v0.60.0](https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features "BADGE_RED") |
|
||||
| [CryptoConditionsSuite][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [OwnerPaysFee][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [SHAMapV2][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [Tickets][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [fixMasterKeyAsRegularKey][] | v1.3.1 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [Checks][] | v0.90.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [FlowCross][] | v0.70.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||
| [MultiSignReserve][] | v1.2.0 | [Enabled: 2019-04-17](https://xrpcharts.ripple.com/#/transactions/C421E1D08EFD78E6B8D06B085F52A34A681D0B51AE62A018527E1B8F54C108FB "BADGE_GREEN") |
|
||||
| [fixTakerDryOfferRemoval][] | v1.2.0 | [Enabled: 2019-04-02](https://xrpcharts.ripple.com/#/transactions/C42335E95F1BD2009A2C090EA57BD7FB026AD285B4B85BE15F669BA4F70D11AF "BADGE_GREEN") |
|
||||
| [fix1578][] | v1.2.0 | [Enabled: 2019-03-23](https://xrpcharts.ripple.com/#/transactions/7A80C87F59BCE6973CBDCA91E4DBDB0FC5461D3599A8BC8EAD02FA590A50005D "BADGE_GREEN") |
|
||||
| [DepositPreauth][] | v1.1.0 | [Enabled: 2018-10-09](https://xrpcharts.ripple.com/#/transactions/AD27403CB840AE67CADDB084BC54249D7BD1B403885819B39CCF723DC671F927 "BADGE_GREEN") |
|
||||
| [fix1515][] | v1.1.0 | [Enabled: 2018-10-09](https://xrpcharts.ripple.com/#/transactions/6DF60D9EC8AF3C39B173840F4D1C57F8A8AB51E7C6571483B4A5F1AA0A9AAEBF "BADGE_GREEN") |
|
||||
| [fix1543][] | v1.0.0 | [Enabled: 2018-06-21](https://xrpcharts.ripple.com/#/transactions/EA6054C9D256657014052F1447216CEA75FFDB1C9342D45EB0F9E372C0F879E6 "BADGE_GREEN") |
|
||||
| [fix1623][] | v1.0.0 | [Enabled: 2018-06-20](https://xrpcharts.ripple.com/#/transactions/4D218D86A2B33E29F17AA9C25D8DFFEE5D2559F75F7C0B1D016D3F2C2220D3EB "BADGE_GREEN") |
|
||||
| [fix1571][] | v1.0.0 | [Enabled: 2018-06-19](https://xrpcharts.ripple.com/#/transactions/920AA493E57D991414B614FB3C1D1E2F863211B48129D09BC8CB74C9813C38FC "BADGE_GREEN") |
|
||||
| [DepositAuth][] | v0.90.0 | [Enabled: 2018-04-06](https://xrpcharts.ripple.com/#/transactions/902C51270B918B40CD23A622E18D48B4ABB86F0FF4E84D72D9E1907BF3BD4B25 "BADGE_GREEN") |
|
||||
| [fix1513][] | v0.90.0 | [Enabled: 2018-04-06](https://xrpcharts.ripple.com/#/transactions/57FE540B8B8E2F26CE8B53D1282FEC55E605257E29F5B9EB49E15EA3989FCF6B "BADGE_GREEN") |
|
||||
| [fix1201][] | v0.80.0 | [Enabled: 2017-11-14](https://xrpcharts.ripple.com/#/transactions/B1157116DDDDA9D9B1C4A95C029AC335E05DB052CECCC5CA90118A4D46C77C5E "BADGE_GREEN") |
|
||||
| [fix1512][] | v0.80.0 | [Enabled: 2017-11-14](https://xrpcharts.ripple.com/#/transactions/63F69F59BEFDC1D79DBF1E4060601E05960683AA784926FB74BC55074C4F6647 "BADGE_GREEN") |
|
||||
| [fix1523][] | v0.80.0 | [Enabled: 2017-11-14](https://xrpcharts.ripple.com/#/transactions/97FD0E35654F4B6714010D3CBBAC4038F60D64AD0292693C28A1DF4B796D8469 "BADGE_GREEN") |
|
||||
| [fix1528][] | v0.80.0 | [Enabled: 2017-11-14](https://xrpcharts.ripple.com/#/transactions/27AEE02DA4FE22B6BB479F850FBBC873FDC7A09A8594753A91B53098D726397E "BADGE_GREEN") |
|
||||
| [SortedDirectories][] | v0.80.0 | [Enabled: 2017-11-14](https://xrpcharts.ripple.com/#/transactions/6E2309C156EBF94D03B83D282A3914671BF9168FB26463CFECD068C63FFFAB29 "BADGE_GREEN") |
|
||||
| [EnforceInvariants][] | v0.70.0 | [Enabled: 2017-07-07](https://xrpcharts.ripple.com/#/transactions/17593B03F7D3283966F3C0ACAF4984F26E9D884C9A202097DAED0523908E76C6 "BADGE_GREEN") |
|
||||
| [fix1373][] | v0.70.0 | [Enabled: 2017-07-07](https://xrpcharts.ripple.com/#/transactions/7EBA3852D111EA19D03469F6870FAAEBF84C64F1B9BAC13B041DDD26E28CA399 "BADGE_GREEN") |
|
||||
| [Escrow][] | v0.60.0 | [Enabled: 2017-03-31](https://xrpcharts.ripple.com/#/transactions/C581E0A3F3832FFFEEB13C497658F475566BD7695B0BBA531A774E6739801515 "BADGE_GREEN") |
|
||||
| [fix1368][] | v0.60.0 | [Enabled: 2017-03-31](https://xrpcharts.ripple.com/#/transactions/3D20DE5CD19D5966865A7D0405FAC7902A6F623659667D6CB872DF7A94B6EF3F "BADGE_GREEN") |
|
||||
| [PayChan][] | v0.33.0 | [Enabled: 2017-03-31](https://xrpcharts.ripple.com/#/transactions/16135C0B4AB2419B89D4FB4569B8C37FF76B9EF9CE0DD99CCACB5734445AFD7E "BADGE_GREEN") |
|
||||
| [TickSize][] | v0.50.0 | [Enabled: 2017-02-21](https://xrpcharts.ripple.com/#/transactions/A12430E470BE5C846759EAE3C442FF03374D5D73ECE5815CF4906894B769565E "BADGE_GREEN") |
|
||||
| [CryptoConditions][] | v0.50.0 | [Enabled: 2017-01-03](https://xrpcharts.ripple.com/#/transactions/8EB00131E1C3DB35EDFF45C155D941E18C3E86BC1934FF987D2DA204F4065F15 "BADGE_GREEN") |
|
||||
| [Flow][] | v0.33.0 | [Enabled: 2016-10-21](https://xrpcharts.ripple.com/#/transactions/C06CE3CABA3907389E4DD296C5F31C73B1548CC20BD7B83416C78CD7D4CD38FC "BADGE_GREEN") |
|
||||
| [TrustSetAuth][] | v0.30.0 | [Enabled: 2016-07-19](https://xrpcharts.ripple.com/#/transactions/0E589DE43C38AED63B64FF3DA87D349A038F1821212D370E403EB304C76D70DF "BADGE_GREEN") |
|
||||
| [MultiSign][] | v0.31.0 | [Enabled: 2016-06-27](https://xrpcharts.ripple.com/#/transactions/168F8B15F643395E59B9977FC99D6310E8708111C85659A9BAF8B9222EEAC5A7 "BADGE_GREEN") |
|
||||
| [FeeEscalation][] | v0.31.0 | [Enabled: 2016-05-19](https://xrpcharts.ripple.com/#/transactions/5B1F1E8E791A9C243DD728680F108FEF1F28F21BA3B202B8F66E7833CA71D3C3 "BADGE_GREEN") |
|
||||
| [FlowV2][] | v0.32.1 | [Vetoed: Removed in v0.33.0](https://xrpl.org/blog/2016/flowv2-vetoed.html "BADGE_RED") |
|
||||
| [SusPay][] | v0.31.0 | [Vetoed: Removed in v0.60.0](https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features "BADGE_RED") |
|
||||
|
||||
**Note:** In many cases, an incomplete version of the code for an amendment is present in previous versions of the software. The "Introduced" version in the table above is the first stable version. The value "TBD" indicates that the amendment is not yet considered stable.
|
||||
|
||||
@@ -319,6 +320,20 @@ The fix1623 amendment has no effect on [CheckCash transactions][] for a fixed am
|
||||
**Caution:** In `rippled` 1.0.0, if the Checks amendment is enabled before the fix1623 amendment, the `delivered_amount` may display as "0" for variable-amount CheckCash transactions from before this amendment was enabled, even if the transaction delivered a nonzero amount. Ripple plans to enable fix1623 at the same time as the [Checks][] amendment on the production network, but this situation may be possible on [parallel networks](parallel-networks.html).
|
||||
|
||||
|
||||
## fixMasterKeyAsRegularKey
|
||||
[fixMasterKeyAsRegularKey]: #fixmasterkeyasregularkey
|
||||
|
||||
| Amendment ID | Status |
|
||||
|:-----------------------------------------------------------------|:----------|
|
||||
| C4483A1896170C66C098DEA5B0E024309C60DC960DE5F01CD7AF986AA3D9AD37 | Planned |
|
||||
|
||||
Fixes a bug where accounts can set their regular key pair to match their master key pair, but cannot send transactions signed by the key if the master key is disabled.
|
||||
|
||||
Without this fix, a user can unintentionally "black hole" their account by setting the regular key to match the master key, then disabling the master key. The network rejects transactions signed with the both-master-and-regular key pair because the code interprets them as being signed with the disabled master key before it recognizes that they are signed by the currently-enabled regular key.
|
||||
|
||||
With this amendment enabled, a SetRegularKey transaction cannot set the regular key to match the master key; such a transaction results in the transaction code `temBAD_REGKEY`. Additionally, this amendment changes the signature verification code so that accounts which _already_ have their regular key set to match their master key can send transactions successfully using the key pair.
|
||||
|
||||
|
||||
## fixTakerDryOfferRemoval
|
||||
[fixTakerDryOfferRemoval]: #fixtakerdryofferremoval
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ To establish a peer-to-peer connection, one server connects to another via HTTPS
|
||||
|
||||
To participate in the XRP Ledger, `rippled` servers connect to arbitrary peers using the peer protocol. (All peers are treated as untrusted, unless they are [clustered](clustering.html) with the current server.)
|
||||
|
||||
Ideally, the server should be able to send _and_ receive connections on the peer port. You should forward the port used for the peer protocol through your firewall to the `rippled` server. The [default `rippled` configuration file](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg) listens for incoming peer protocol connections on port 51235 on all network interfaces. You can change the port used by editing the appropriate stanza in your `rippled.cfg` file.
|
||||
Ideally, the server should be able to send _and_ receive connections on the peer port. You should forward the port used for the peer protocol through your firewall to the `rippled` server. The [default `rippled` config file](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg) listens for incoming peer protocol connections on port 51235 on all network interfaces. You can change the port used by editing the appropriate stanza in your `rippled.cfg` file.
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ Use these methods to check the status of the network and server.
|
||||
The following admin commands are deprecated and may be removed without further notice:
|
||||
|
||||
* `ledger_header` - Use the [ledger method][] instead.
|
||||
* `unl_add`, `unl_delete`, `unl_list`, `unl_load`, `unl_network`, `unl_reset`, `unl_score` - Use the configuration file for UNL management instead.
|
||||
* `unl_add`, `unl_delete`, `unl_list`, `unl_load`, `unl_network`, `unl_reset`, `unl_score` - Use the `validators.txt` config file for UNL management instead.
|
||||
* `wallet_seed` - Use the [wallet_propose method][] instead.
|
||||
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ The following script is a sample that can be created as `/etc/logrotate.d/ripple
|
||||
|
||||
You can configure parameters such as `minsize` and `rotate` depending on the amount of logs you keep. Use the `log_level` setting in your `rippled.cfg` file to configure how verbose your server's logs are. This sample script is based on standard `log_level` and will store approximately 2 weeks worth of logs in a compressed format.
|
||||
|
||||
Starting with `rippled` 1.3, the script `/etc/logrotate.d/rippled` will be automatically installed by the DEB and RPM packages. You can make modifications to this as required. Your modifications will not be overwritten on package upgrades.
|
||||
|
||||
**Note:** You should have only one system logrotate script per application. Please ensure that you do not have any other log rotation that handles the same directory.
|
||||
|
||||
_The `logrotate` method is an [admin method](admin-rippled-methods.html) that cannot be run by unprivileged users._
|
||||
|
||||
@@ -18,7 +18,7 @@ These options apply to most modes:
|
||||
|
||||
| Option | Description |
|
||||
|:----------------|:-----------------------------------------------------------|
|
||||
| `--conf {FILE}` | Use `{FILE}` as the configuration file instead of looking for config files in the default locations. If not specified, `rippled` first checks the local working directory for a `rippled.cfg` file. On Linux, if that file is not found, `rippled` next checks for `$XDG_CONFIG_HOME/ripple/ripple.cfg`. (Typically, `$XDG_CONFIG_HOME` maps to `$HOME/.config`.) |
|
||||
| `--conf {FILE}` | Use `{FILE}` as the config file instead of looking for config files in the default locations. If not specified, `rippled` first checks the local working directory for a `rippled.cfg` file. On Linux, if that file is not found, `rippled` next checks for `$XDG_CONFIG_HOME/ripple/ripple.cfg`. (Typically, `$XDG_CONFIG_HOME` maps to `$HOME/.config`.) |
|
||||
|
||||
### Verbosity Options
|
||||
|
||||
|
||||
@@ -23,7 +23,9 @@ You can protect your account by assigning a regular key pair to it and using it
|
||||
|
||||
| Field | JSON Type | [Internal Type][] | Description |
|
||||
|:-------------|:----------|:------------------|:------------------------------|
|
||||
| `RegularKey` | String | AccountID | _(Optional)_ A base-58-encoded [Address][] that indicates the regular key pair to be assigned to the account. If omitted, removes any existing regular key pair from the account. |
|
||||
| `RegularKey` | String | AccountID | _(Optional)_ A base-58-encoded [Address][] that indicates the regular key pair to be assigned to the account. If omitted, removes any existing regular key pair from the account. Must not match the master key pair for the address. |
|
||||
|
||||
**Warning:** Until the [fixMasterKeyAsRegularKey amendment][] :not_enabled: becomes enabled, it is possible to set your regular key to match your master key. If you then disable the master key, your address cannot send transactions signed with the key even though it matches the enabled regular key. As a result, you cannot send any transactions from the address unless you have [multi-signing](multi-signing.html) enabled and use that. With the amendment enabled, such "blocked" accounts can send transactions again.
|
||||
|
||||
## See Also
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
This tutorial guides you through the basics of building an XRP Ledger-connected application using [Node.js](http://nodejs.org/) and [RippleAPI](rippleapi-reference.html), a JavaScript API for accessing the XRP Ledger.
|
||||
|
||||
The scripts and configuration files used in this guide are [available in the Ripple Dev Portal GitHub Repository](https://github.com/ripple/ripple-dev-portal/tree/master/content/_code-samples/rippleapi_quickstart).
|
||||
The scripts and config files used in this guide are [available in the Ripple Dev Portal GitHub Repository](https://github.com/ripple/ripple-dev-portal/tree/master/content/_code-samples/rippleapi_quickstart).
|
||||
|
||||
|
||||
<!--#{ keep multiple H1s so that all steps are surfaced in sidebar. Do not change H1 titles unless they provide a clear improvement bc they are linked to on external sites. }# -->
|
||||
|
||||
@@ -10,7 +10,7 @@ This tutorial assumes your server meets the following prerequisites:
|
||||
|
||||
- The `rippled` server is already [installed](install-rippled.html) and [online deletion](online-deletion.html) is enabled.
|
||||
|
||||
The default configuration file enables online deletion after 2000 ledger versions.
|
||||
The default config file enables online deletion after 2000 ledger versions.
|
||||
|
||||
- A `cron` daemon is installed and running.
|
||||
|
||||
|
||||
@@ -10,11 +10,11 @@ To configure your `rippled` to store shards of ledger history, complete the foll
|
||||
|
||||
Before you configure your `rippled` server to store history shards, you must decide how much disk space to allocate to the history shard store. This also affects how much history you keep in the default ledger store. You should consider the following when deciding what size to configure your shard store:
|
||||
|
||||
- The ledger store (defined by the `[node_db]` stanza) is separate from the history shard store. The ledger store is required for all servers and _must_ contain a range of recent history, defined by how many ledgers to keep available in the `online_delete` parameter. (The default configuration stores the most recent 2000 ledgers.)
|
||||
- If you keep at least 2^15 ledgers (32768) in the ledger store, you can efficiently import chunks of recent history from the ledger store into the shard store.
|
||||
- The history shard store (defined by the `[shard_db]` stanza) is only required for storing history shards. The configuration stanza should be omitted from servers that do not store history shards. The size of the history shard store is defined in gigabytes in the `max_size_gb` parameter; the server attempts to use as much of this space as possible to store complete shards.
|
||||
- A shard consists of 2^14 ledgers (16384) and occupies approximately 200 MB to 4 GB based on the age of the shard. Older shards are smaller because there was less activity in the XRP Ledger at the time.
|
||||
- The history shard store and the ledger store _must_ be stored at different file paths. You can configure the ledger store and history store to be on different disks or partitions if desired.
|
||||
- The ledger store (defined by the `[node_db]` stanza) is separate from the history shard store. The ledger store is required for all servers, and always contains a range of recent history, defined by how many ledgers to keep available in the `online_delete` parameter. (The default configuration stores the most recent 2000 ledgers.)
|
||||
- If you keep at least 2<sup>15</sup> ledgers (32768) in the ledger store, you can efficiently import chunks of recent history from the ledger store into the shard store.
|
||||
- The history shard store (defined by the `[shard_db]` stanza) is only required for storing history shards. The configuration stanza should be omitted from servers that do not store history shards. The size of the history shard store is defined in gigabytes in the `max_size_gb` parameter; the server attempts to use as much of this space as possible to store complete shards. The history shard store _MUST_ be stored on a solid-state disk or similar fast media. Traditional spinning hard disks are insufficient.
|
||||
- A shard consists of 2<sup>14</sup> ledgers (16384) and occupies approximately 200 MB to 4 GB based on the age of the shard. Older shards are smaller because there was less activity in the XRP Ledger at the time.
|
||||
- The history shard store and the ledger store _MUST_ be stored at different file paths. You can configure the ledger store and history store to be on different disks or partitions if desired.
|
||||
- It is possible but redundant to hold full ledger history in both the ledger store and the history shard store.
|
||||
- The time to acquire a shard, number of file handles needed by the `rippled` server, and memory cache usage is directly affected by the size of the shard.
|
||||
|
||||
@@ -33,9 +33,9 @@ path=/var/lib/rippled/db/shards/nudb
|
||||
max_size_gb=50
|
||||
```
|
||||
|
||||
**Tip:** Ripple recommends using NuDB for the shard store (`type=NuDB`). NuDB uses fewer file handles per shard than RocksDB. RocksDB uses memory that scales with the size of data it stores, which may require excessive memory overhead. However, NuDB is designed to be used with SSD drives and does not work with rotational disks.
|
||||
The `type` field can be omitted. If present, it _MUST_ be `NuDB`. [New in: rippled 1.3.1][]
|
||||
|
||||
**Caution:** If you enable history sharding, then later change the database type of your shard store, you must also change the path or delete the existing data from the configured path. If `rippled` detects the wrong type of data in the shard store path, it may [fail to start](server-wont-start.html).
|
||||
**Caution:** If `rippled` detects the wrong type of data in the shard store path, it may [fail to start](server-wont-start.html). You should use a new folder for the shard store. If you previously used a RocksDB shard store (`rippled` 1.2.x and lower), use a different path or delete the RocksDB shard data.
|
||||
|
||||
For more information, reference the `[shard_db]` example in the [rippled.cfg configuration example](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg).
|
||||
|
||||
@@ -51,4 +51,10 @@ After your server syncs to the network, it automatically starts downloading hist
|
||||
|
||||
This folder should contain a numbered folder for each shard your server has. At any given time, up to one folder may contain a `control.txt` file, indicating it is incomplete.
|
||||
|
||||
<!-- TODO: add download_shard and crawl_shards commands when they get added. -->
|
||||
<!-- TODO: add download_shard and crawl_shards commands: https://github.com/ripple/ripple-dev-portal/issues/629 -->
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
|
||||
@@ -24,9 +24,9 @@ For development purposes Ripple recommends running `rippled` as your own user, n
|
||||
|
||||
$ brew install git cmake pkg-config protobuf openssl ninja
|
||||
|
||||
0. Install Boost 1.67.0. `rippled` 1.2.0 is compatible with Boost 1.67. <!--#{ no boost@1.67 formula, so must manually compile and install. will eventually upgrade to boost 1.68, but needs testing first }# -->
|
||||
0. Install Boost 1.70.0 or higher. `rippled` 1.3.1 is compatible with Boost 1.70.0 and higher. The latest version of Boost available in the Homebrew repositories isn't new enough, so you must install Boost manually:
|
||||
|
||||
1. Download [Boost 1.67.0](https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.bz2).
|
||||
1. Download [Boost 1.70.0](https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2).
|
||||
|
||||
2. Extract it to a folder. Be sure to note the location.
|
||||
|
||||
@@ -38,7 +38,7 @@ For development purposes Ripple recommends running `rippled` as your own user, n
|
||||
|
||||
0. Ensure that your `BOOST_ROOT` environment variable points to the directory created by the Boost installation. To find your Boost install directory, use `brew info boost`. Put this environment variable in your `.bash_profile` file so it's automatically set when you log in. For example:
|
||||
|
||||
export BOOST_ROOT=/Users/my_user/boost_1_67_0
|
||||
export BOOST_ROOT=/Users/my_user/boost_1_70_0
|
||||
|
||||
0. If you updated your `.bash_profile` file in the previous step, be sure to source it. For example:
|
||||
|
||||
@@ -82,7 +82,7 @@ For development purposes Ripple recommends running `rippled` as your own user, n
|
||||
|
||||
$ ./rippled --unittest
|
||||
|
||||
0. `rippled` requires the `rippled.cfg` configuration file to run. You can find an example config file, `rippled-example.cfg` in `rippled/cfg`. Make a copy and save it as `rippled.cfg` in a location that enables you to run `rippled` as a non-root user. Access the `rippled` directory and run:
|
||||
0. `rippled` requires the `rippled.cfg` config file to run. You can find an example config file, `rippled-example.cfg` in `rippled/cfg`. Make a copy and save it as `rippled.cfg` in a location that enables you to run `rippled` as a non-root user. Access the `rippled` directory and run:
|
||||
|
||||
$ mkdir -p $HOME/.config/ripple
|
||||
$ cp cfg/rippled-example.cfg $HOME/.config/ripple/rippled.cfg
|
||||
@@ -165,6 +165,7 @@ For information about `rippled` log messages, see [Understanding Log Messages](u
|
||||
|
||||
## See Also
|
||||
|
||||
- [Install rippled on Ubuntu Linux](install-rippled-on-ubuntu-with-alien.html) (Pre-built binary on Ubuntu for production use)
|
||||
- [Install rippled on Ubuntu Linux](install-rippled-on-ubuntu.html) (Pre-built binary on Ubuntu for production use)
|
||||
- [Install rippled on Red Hat Enterprise Linux](install-rippled-on-centos-rhel-with-yum.html) (Pre-built binary on RHEL or CentOS for production use)
|
||||
- [Build and Run `rippled` on Ubuntu](build-run-rippled-ubuntu.html) (Compile `rippled` yourself on Ubuntu)
|
||||
- [Compilation instructions for other platforms](https://github.com/ripple/rippled/tree/develop/Builds)
|
||||
|
||||
@@ -31,7 +31,7 @@ These instructions use Ubuntu's APT (Advanced Packaging Tool) to install the sof
|
||||
|
||||
4. Install CMake.
|
||||
|
||||
Version 1.2.0 of `rippled` requires CMake 3.9.0 or higher. For the purposes of this tutorial, we used CMake 3.13.3, which was the latest version available at the time of writing.
|
||||
Version 1.3.1 of `rippled` requires CMake 3.9.0 or higher. For the purposes of this tutorial, we used CMake 3.13.3, which was the latest version available at the time of writing.
|
||||
|
||||
If you have previously installed CMake 3.9.0 or higher, you can skip these steps.
|
||||
|
||||
@@ -44,21 +44,21 @@ These instructions use Ubuntu's APT (Advanced Packaging Tool) to install the sof
|
||||
|
||||
5. Compile Boost.
|
||||
|
||||
Version 1.2.0 of `rippled` requires Boost version 1.67.0 exactly. Because Boost version 1.67.0 isn't available in the Ubuntu 16.04 software repositories, you must compile it yourself.
|
||||
Version 1.3.1 of `rippled` requires Boost version 1.70.0 or higher. Because Boost version 1.70.0 or higher isn't available in the Ubuntu 18.04 (or 16.04) software repositories, you must compile it yourself.
|
||||
|
||||
If you have previously built Boost 1.67.0 for `rippled` and configured the `BOOST_ROOT` environment variable, you can skip these steps.
|
||||
If you have previously built Boost 1.70.0 for `rippled` and configured the `BOOST_ROOT` environment variable, you can skip these steps.
|
||||
|
||||
1. Download Boost 1.67.0.
|
||||
1. Download Boost 1.70.0.
|
||||
|
||||
wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz
|
||||
wget https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz
|
||||
|
||||
2. Extract `boost_1_67_0.tar.gz`.
|
||||
2. Extract `boost_1_70_0.tar.gz`.
|
||||
|
||||
tar xvzf boost_1_67_0.tar.gz
|
||||
tar xvzf boost_1_70_0.tar.gz
|
||||
|
||||
3. Change to the new `boost_1_67_0` directory.
|
||||
3. Change to the new `boost_1_70_0` directory.
|
||||
|
||||
cd boost_1_67_0
|
||||
cd boost_1_70_0
|
||||
|
||||
4. Prepare the Boost.Build system for use.
|
||||
|
||||
@@ -70,9 +70,9 @@ These instructions use Ubuntu's APT (Advanced Packaging Tool) to install the sof
|
||||
|
||||
**Tip:** This example uses 4 processes to build in parallel. The best number of processes to use depends on how many CPU cores your hardware has available. You can use `cat /proc/cpuinfo` to get information about your hardware's processor.
|
||||
|
||||
6. Set the environment variable `BOOST_ROOT` to point to the new `boost_1_67_0` directory. It's best to put this environment variable in your `.profile`, or equivalent, file for your shell so it's automatically set when you log in. Add the following line to the file:
|
||||
6. Set the environment variable `BOOST_ROOT` to point to the new `boost_1_70_0` directory. It's best to put this environment variable in your `.profile`, or equivalent, file for your shell so it's automatically set when you log in. Add the following line to the file:
|
||||
|
||||
export BOOST_ROOT=/home/my_user/boost_1_67_0
|
||||
export BOOST_ROOT=/home/my_user/boost_1_70_0
|
||||
|
||||
7. Source your updated `.profile` file. For example:
|
||||
|
||||
@@ -88,11 +88,13 @@ These instructions use Ubuntu's APT (Advanced Packaging Tool) to install the sof
|
||||
|
||||
$ git log -1
|
||||
|
||||
commit 7779dcdda00ea61a976cf5f387bc1f3bb4ebbfdd
|
||||
Author: Mike Ellery <mellery451@gmail.com>
|
||||
Date: Tue Feb 12 16:41:03 2019 -0800
|
||||
commit e1adbd7ddd5dfa9f2a9791aa3c0fcc1fdb4e8236
|
||||
Author: Manoj doshi <mdoshi@ripple.com>
|
||||
Date: Wed Jul 24 15:21:56 2019 -0700
|
||||
|
||||
Set version to 1.3.1
|
||||
|
||||
|
||||
Set version to 1.2.0
|
||||
|
||||
8. If you previously built, or (more importantly) tried and failed to build `rippled`, you should delete the `my_build/` directory (or whatever you named it) to start clean before moving on to the next step. Otherwise, you may get unexpected behavior, like a `rippled` executable that crashes due to a segmentation fault (segfault).
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ This section describes configuration, network, and hardware recommendations that
|
||||
|
||||
Ripple recommends using these configuration guidelines to optimize resource utilization and performance of your `rippled` server.
|
||||
|
||||
You can set the following parameters in the `rippled.cfg` file used for your `rippled` server. You can access an example configuration file, `rippled-example.cfg`, in the [`cfg` directory](https://github.com/ripple/rippled/blob/develop/cfg/rippled-example.cfg) in the `rippled` GitHub repo.
|
||||
You can set the following parameters in the `rippled.cfg` file used for your `rippled` server. You can access an example config file, `rippled-example.cfg`, in the [`cfg` directory](https://github.com/ripple/rippled/blob/develop/cfg/rippled-example.cfg) in the `rippled` GitHub repo.
|
||||
|
||||
|
||||
### Node Size
|
||||
|
||||
@@ -14,17 +14,35 @@ Before you install `rippled`, you must meet the [System Requirements](system-req
|
||||
|
||||
1. Install the Ripple RPM repository:
|
||||
|
||||
$ sudo rpm -Uvh https://mirrors.ripple.com/ripple-repo-el7.rpm
|
||||
$ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo
|
||||
[ripple-stable]
|
||||
name=XRP Ledger Packages
|
||||
baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key
|
||||
repo_gpgcheck=1
|
||||
REPOFILE
|
||||
|
||||
2. Install the `rippled` software package:
|
||||
2. Fetch the latest repo updates:
|
||||
|
||||
$ sudo yum install --enablerepo=ripple-stable rippled
|
||||
$ sudo yum -y update
|
||||
|
||||
3. Configure the `rippled` service to start on system boot:
|
||||
3. Install the new `rippled` package:
|
||||
|
||||
$ sudo yum install rippled
|
||||
|
||||
Version 1.3.1 does not require any changes to your config files (`rippled.cfg` and `validators.txt`). This update procedure leaves your existing config files in place.
|
||||
|
||||
4. Reload systemd unit files:
|
||||
|
||||
$ sudo systemctl daemon-reload
|
||||
|
||||
5. Configure the `rippled` service to start on boot:
|
||||
|
||||
$ sudo systemctl enable rippled.service
|
||||
|
||||
4. Start the `rippled` service
|
||||
6. Start the `rippled` service:
|
||||
|
||||
$ sudo systemctl start rippled.service
|
||||
|
||||
@@ -35,7 +53,8 @@ Before you install `rippled`, you must meet the [System Requirements](system-req
|
||||
|
||||
## See Also
|
||||
|
||||
- [Update Automatically on CentOS/Red Hat](update-rippled-automatically-on-centos-rhel.html)
|
||||
- [Install rippled on Ubuntu Linux](install-rippled-on-ubuntu-with-alien.html) (Pre-built binary on Ubuntu)
|
||||
- [Update Automatically on Linux](update-rippled-automatically-on-linux.html)
|
||||
- [Install rippled on Ubuntu Linux](install-rippled-on-ubuntu.html) (Pre-built binary for Ubuntu or Debian)
|
||||
- [Build and Run `rippled` on Ubuntu](build-run-rippled-ubuntu.html) (Compile `rippled` yourself on Ubuntu)
|
||||
- [Build and Run `rippled` on macOS](build-run-rippled-macos.html) (Compile `rippled` yourself on macOS)
|
||||
- [Compilation instructions for other platforms](https://github.com/ripple/rippled/tree/develop/Builds)
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
# Install on Ubuntu with Alien
|
||||
|
||||
This page describes the recommended instructions for installing the latest stable version of `rippled` on **Ubuntu Linux 16.04 or higher**, using the [Alien](https://help.ubuntu.com/community/RPM/AlienHowto) utility to install from Ripple's [yum](https://en.wikipedia.org/wiki/Yellowdog_Updater,_Modified) repository.
|
||||
|
||||
These instructions install a binary that has been compiled by Ripple.
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before you install `rippled`, you must meet the [System Requirements](system-requirements.html).
|
||||
|
||||
|
||||
## Installation Steps
|
||||
|
||||
1. Install yum-utils and alien:
|
||||
|
||||
$ sudo apt-get update
|
||||
$ sudo apt-get install yum-utils alien
|
||||
|
||||
2. Install the Ripple RPM repository:
|
||||
|
||||
$ sudo rpm -Uvh https://mirrors.ripple.com/ripple-repo-el7.rpm
|
||||
|
||||
3. Download the `rippled` software package:
|
||||
|
||||
$ yumdownloader --enablerepo=ripple-stable --releasever=el7 rippled
|
||||
|
||||
4. Verify the signature on the `rippled` software package:
|
||||
|
||||
$ sudo rpm --import https://mirrors.ripple.com/rpm/RPM-GPG-KEY-ripple-release && rpm -K rippled*.rpm
|
||||
|
||||
5. Install the `rippled` software package:
|
||||
|
||||
$ sudo alien -i --scripts rippled*.rpm && rm rippled*.rpm
|
||||
|
||||
6. Configure the `rippled` service to start on system boot:
|
||||
|
||||
$ sudo systemctl enable rippled.service
|
||||
|
||||
7. Start the `rippled` service
|
||||
|
||||
$ sudo systemctl start rippled.service
|
||||
|
||||
|
||||
## Next Steps
|
||||
|
||||
{% include '_snippets/post-rippled-install.md' %}
|
||||
@@ -0,0 +1,88 @@
|
||||
# Install on Ubuntu or Debian Linux
|
||||
|
||||
This page describes the recommended instructions for installing the latest stable version of `rippled` on **Ubuntu Linux 16.04 or higher** or **Debian 9 (Stretch)**, using the [`apt`](https://help.ubuntu.com/lts/serverguide/apt.html) utility. [Updated in: rippled 1.3.1][New in: rippled 1.3.1]
|
||||
|
||||
These instructions install a binary that has been compiled by Ripple.
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before you install `rippled`, you must meet the [System Requirements](system-requirements.html).
|
||||
|
||||
|
||||
## Installation Steps
|
||||
|
||||
1. Update repositories:
|
||||
|
||||
$ sudo apt -y update
|
||||
|
||||
2. Install utilities:
|
||||
|
||||
$ sudo apt -y install apt-transport-https ca-certificates wget gnupg
|
||||
|
||||
3. Add Ripple's package-signing GPG key to your list of trusted keys:
|
||||
|
||||
$ wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | \
|
||||
sudo apt-key add -
|
||||
|
||||
4. Check the fingerprint of the newly-added key:
|
||||
|
||||
$ apt-key finger
|
||||
|
||||
The output should include an entry for Ripple such as the following:
|
||||
|
||||
pub rsa3072 2019-02-14 [SC] [expires: 2021-02-13]
|
||||
C001 0EC2 05B3 5A33 10DC 90DE 395F 97FF CCAF D9A2
|
||||
uid [ unknown] TechOps Team at Ripple <techops+rippled@ripple.com>
|
||||
sub rsa3072 2019-02-14 [E] [expires: 2021-02-13]
|
||||
|
||||
In particular, make sure that the fingerprint matches. (In the above example, the fingerprint is on the second line, starting with `C001`.)
|
||||
|
||||
4. Add the appropriate Ripple repository for your operating system version:
|
||||
|
||||
$ echo "deb https://repos.ripple.com/repos/rippled-deb bionic stable" | \
|
||||
sudo tee -a /etc/apt/sources.list.d/ripple.list
|
||||
|
||||
The above example is appropriate for **Ubuntu 18.04 Bionic Beaver**. For other operating systems, replace the word `bionic` with one of the following:
|
||||
|
||||
- `xenial` for **Ubuntu 16.04 Xenial Xerus**
|
||||
- `stretch` for **Debian 9 Stretch**
|
||||
|
||||
If you want access to development or pre-release versions of `rippled`, use one of the following instead of `stable`:
|
||||
|
||||
- `unstable` - Pre-release builds ([`release` branch](https://github.com/ripple/rippled/tree/release))
|
||||
- `nightly` - Experimental/development builds ([`develop` branch](https://github.com/ripple/rippled/tree/develop))
|
||||
|
||||
**Warning:** Unstable and nightly builds may be broken at any time. Do not use these builds for production servers.
|
||||
|
||||
5. Fetch the Ripple repository.
|
||||
|
||||
$ sudo apt -y update
|
||||
|
||||
6. Install the `rippled` software package:
|
||||
|
||||
$ sudo apt -y install rippled
|
||||
|
||||
7. Check the status of the `rippled` service:
|
||||
|
||||
$ systemctl status rippled.service
|
||||
|
||||
The `rippled` service should start automatically. If not, you can start it manually:
|
||||
|
||||
$ sudo systemctl start rippled.service
|
||||
|
||||
To configure it to start automatically on boot:
|
||||
|
||||
$ sudo systemctl enable rippled.service
|
||||
|
||||
|
||||
|
||||
## Next Steps
|
||||
|
||||
{% include '_snippets/post-rippled-install.md' %}
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -0,0 +1,76 @@
|
||||
# rippled v1.3.x Migration Instructions
|
||||
|
||||
This document describes the migration process for upgrading from `rippled` 1.2.4 or earlier to `rippled` v1.3 or later. This migration process is necessary because the `rippled` install process has changed as of version 1.3.
|
||||
|
||||
This document provides migration steps for upgrading on supported platforms:
|
||||
|
||||
- [CentOS or Red Hat Enterprise Linux (RHEL)](#migration-on-centos-or-red-hat-enterprise-linux-rhel)
|
||||
- [Ubuntu Linux](#migration-on-ubuntu-linux)
|
||||
|
||||
For other platforms, see the updated instructions for compiling from source. ([Ubuntu](build-run-rippled-ubuntu.html), [macOS](build-run-rippled-macos.html), or [Windows](https://github.com/ripple/rippled/tree/develop/Builds/VisualStudio2017))
|
||||
|
||||
|
||||
## Migration on CentOS or Red Hat Enterprise Linux (RHEL)
|
||||
|
||||
Ripple's official RPM repository and instructions for using it have changed. If you have [automatic updates](update-rippled-automatically-on-linux.html) enabled, your system should perform the migration automatically. To migrate manually from the old repository to the new one, complete the following steps:
|
||||
|
||||
1. Stop the `rippled` server.
|
||||
|
||||
$ sudo systemctl stop rippled.service
|
||||
|
||||
2. Remove the old Ripple repository package.
|
||||
|
||||
$ sudo rpm -e ripple-repo
|
||||
|
||||
The `rippled-repo` package is now **DEPRECATED**. The package has been updated one last time for version 1.3.1. In the future, any changes to the repositories will require manual changes to the `ripple.repo` file.
|
||||
|
||||
3. Add Ripple's new yum repository:
|
||||
|
||||
$ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo
|
||||
[ripple-stable]
|
||||
name=XRP Ledger Packages
|
||||
baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key
|
||||
repo_gpgcheck=1
|
||||
REPOFILE
|
||||
|
||||
4. Install the new `rippled` package:
|
||||
|
||||
$ sudo yum install rippled
|
||||
|
||||
Version 1.3.1 does not require any changes to your config files (`rippled.cfg` and `validators.txt`). This update procedure leaves your existing config files in place.
|
||||
|
||||
5. Reload systemd unit files:
|
||||
|
||||
$ sudo systemctl daemon-reload
|
||||
|
||||
6. Start the `rippled` service:
|
||||
|
||||
$ sudo systemctl start rippled.service
|
||||
|
||||
|
||||
**Warning:** If you use [automatic updates](update-rippled-automatically-on-linux.html), they should continue working after performing this migration process. However, **the `ripple-repo` package is now deprecated**. As a consequence, in the future, any changes to Ripple's repositories may require you to manually update your repos file.
|
||||
|
||||
|
||||
## Migration on Ubuntu Linux
|
||||
|
||||
Prior to version 1.3, the supported way to install `rippled` on Ubuntu Linux was using Alien to install the RPM package. Starting with `rippled` v1.3.1, Ripple provides a native package for Ubuntu and Debian Linux, which is the recommended way of installing it. If you already have the RPM package installed, complete the [installation steps](install-rippled-on-ubuntu.html) to upgrade the package and switch over to the native APT (`.deb`) package.
|
||||
|
||||
If you have made any changes to your config files (`/opt/ripple/etc/rippled.cfg` and `/opt/ripple/etc/validators.txt`), `apt` may prompt you during installation asking if you want to overwrite your config files with the newest versions from the packages. Version 1.3 does not require any changes to the config file, so you can safely keep your existing config files unchanged.
|
||||
|
||||
After installing the new package, if you no longer need Alien for any other packages, you may optionally uninstall it and its dependencies using the following steps:
|
||||
|
||||
1. Uninstall Alien:
|
||||
|
||||
$ sudo apt -y remove alien
|
||||
|
||||
2. Uninstall unused dependencies:
|
||||
|
||||
$ sudo apt -y autoremove
|
||||
|
||||
|
||||
### Automatic Updates
|
||||
|
||||
The `rippled` v1.3 package includes an updated auto-update script that works on Ubuntu and Debian Linux. For more information, see [Update `rippled` Automatically on Linux](update-rippled-automatically-on-linux.html).
|
||||
@@ -5,7 +5,7 @@
|
||||
A `rippled` server should run comfortably on commodity hardware, to make it inexpensive to participate in the network. At present, Ripple recommends the following minimum requirements:
|
||||
|
||||
- Operating System:
|
||||
- Production: CentOS or RedHat Enterprise Linux (latest release) or Ubuntu (16.04+) supported
|
||||
- Production: CentOS or RedHat Enterprise Linux (latest release), Ubuntu (16.04+), or Debian (9.x) supported
|
||||
- Development: Mac OS X, Windows (64-bit), or most Linux distributions
|
||||
- CPU: 64-bit x86_64, 2+ cores
|
||||
- Disk: Minimum 50GB for the database partition. SSD strongly recommended (minimum 1000 IOPS, more is better)
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
# Update Automatically on CentOS/Red Hat
|
||||
|
||||
On CentOS and Red Hat Enterprise Linux, you can set up `rippled` to automatically upgrade to the latest version with a one-time `cron` configuration. Ripple recommends enabling automatic updates if possible.
|
||||
|
||||
These instructions assume you have already [installed `rippled` from the `yum` repository](install-rippled-on-centos-rhel-with-yum.html).
|
||||
|
||||
To set up automatic updates, complete the following steps:
|
||||
|
||||
1. Check that `/opt/ripple/bin/update-rippled.sh` exists. If it does not, [update manually](update-rippled-manually-on-centos-rhel.html).
|
||||
|
||||
2. Install `crond`:
|
||||
|
||||
$ sudo yum install cronie
|
||||
|
||||
3. Open the crontab file for editing
|
||||
|
||||
$ sudo crontab -e
|
||||
|
||||
4. Add the following to the crontab file. Be sure to add a blank line at the end of the file.
|
||||
|
||||
RANDOM_DELAY=59
|
||||
0 * * * * /opt/ripple/bin/update-rippled.sh
|
||||
|
||||
|
||||
The script updates the installed `rippled` package within an hour of each new release. To reduce the chance of outages from all servers updating simultaneously, the script delays the update for a random number of minutes, up to 59.
|
||||
@@ -0,0 +1,17 @@
|
||||
# Update Automatically on Linux
|
||||
|
||||
On Linux, you can set up `rippled` to automatically upgrade to the latest version with a one-time `cron` configuration. Ripple recommends enabling automatic updates if possible.
|
||||
|
||||
These instructions assume you have already installed `rippled` [from the `yum` repository (CentOS/RedHat)](install-rippled-on-centos-rhel-with-yum.html) or [using `apt` (Ubuntu/Debian)](install-rippled-on-ubuntu.html).
|
||||
|
||||
To set up automatic updates, complete the following steps:
|
||||
|
||||
1. Check that `/opt/ripple/etc/update-rippled-cron` exists. If it does not, update manually ([CentOS/Red Hat](update-rippled-manually-on-centos-rhel.html) or [Ubuntu/Debian](update-rippled-manually-on-ubuntu.html)).
|
||||
|
||||
2. Create a symlink in your `cron.d` folder to the `/opt/ripple/etc/update-rippled-cron` config file:
|
||||
|
||||
$ sudo ln -s /opt/ripple/etc/update-rippled-cron /etc/cron.d/
|
||||
|
||||
This cron configuration runs a script to update the installed `rippled` package within an hour of each new release. To reduce the chance of outages from all servers updating simultaneously, the script delays the update for a random number of minutes, up to 59.
|
||||
|
||||
**Caution:** In the future, it is possible that changes to Ripple's repositories may require manual intervention to update the URLs where your script searches for updates. Stay tuned to the [XRP Ledger Blog](/blog/) or the [ripple-server mailing list](https://groups.google.com/forum/#!forum/ripple-server) for announcements on any required changes.
|
||||
@@ -1,23 +1,21 @@
|
||||
# Update Manually on CentOS/Red Hat
|
||||
|
||||
This page describes how to update manually to the latest release of `rippled` on CentOS or Red Hat Enterprise Linux. Ripple recommends setting up [automatic updates](update-rippled-automatically-on-centos-rhel.html) instead, where possible.
|
||||
This page describes how to update manually to the latest release of `rippled` on CentOS or Red Hat Enterprise Linux. Ripple recommends setting up [automatic updates](update-rippled-automatically-on-linux.html) instead, where possible.
|
||||
|
||||
These instructions assume you have already [installed `rippled` from the `yum` repository](install-rippled-on-centos-rhel-with-yum.html).
|
||||
|
||||
**Tip:** To perform these steps all at once, you can run the `/opt/ripple/bin/update-rippled.sh` script, which is included with the `rippled` package.
|
||||
|
||||
To update manually, complete the following steps:
|
||||
|
||||
1. Update the package list from Ripple's yum repository:
|
||||
1. Download and install the latest `rippled` package:
|
||||
|
||||
$ sudo rpm -Uvh --replacepkgs https://mirrors.ripple.com/ripple-repo-el7.rpm
|
||||
$ sudo yum update rippled
|
||||
|
||||
2. Download and install the latest `rippled` package:
|
||||
|
||||
$ sudo yum update --enablerepo=ripple-stable rippled
|
||||
|
||||
3. Reload the `systemd` unit files:
|
||||
2. Reload the `systemd` unit files:
|
||||
|
||||
$ sudo systemctl daemon-reload
|
||||
|
||||
4. Restart the `rippled` service:
|
||||
3. Restart the `rippled` service:
|
||||
|
||||
$ sudo service rippled restart
|
||||
|
||||
@@ -1,35 +1,25 @@
|
||||
# Update Manually on Ubuntu
|
||||
# Update Manually on Ubuntu or Debian
|
||||
|
||||
This page describes how to update manually to the latest release of `rippled` on Ubuntu Linux. These instructions assume you have already [installed `rippled` using Alien](install-rippled-on-ubuntu-with-alien.html).
|
||||
This page describes how to update manually to the latest release of `rippled` on Ubuntu Linux. These instructions assume you have already [installed `rippled` using the native package](install-rippled-on-ubuntu.html). Ripple recommends setting up [automatic updates](update-rippled-automatically-on-linux.html) instead, where possible.
|
||||
|
||||
**Caution:** To upgrade from `rippled` 1.2.x to 1.3.1 or higher on Ubuntu Linux, you should follow the [1.3.1 migration instructions](rippled-1-3-migration-instructions.html). The following instructions assume you have already installed the native APT package provided with versions 1.3.1 and up.
|
||||
|
||||
**Tip:** To perform these steps all at once, you can run the `/opt/ripple/bin/update-rippled.sh` script, which is included with the `rippled` package and is compatible with Ubuntu and Debian starting with `rippled` version 1.3.1.
|
||||
|
||||
To update manually, complete the following steps:
|
||||
|
||||
1. Update the package list from Ripple's yum repository:
|
||||
1. Update repositories:
|
||||
|
||||
$ sudo rpm -Uvh --replacepkgs https://mirrors.ripple.com/ripple-repo-el7.rpm
|
||||
$ sudo apt -y update
|
||||
|
||||
2. Download the latest `rippled` package:
|
||||
2. Upgrade the `rippled` package:
|
||||
|
||||
$ yumdownloader --enablerepo=ripple-stable --releasever=el7 rippled
|
||||
$ sudo apt -y upgrade rippled
|
||||
|
||||
3. Verify the signatures on the downloaded packages:
|
||||
|
||||
$ rpm -K rippled*.rpm
|
||||
|
||||
4. Use Alien to upgrade to the new `rippled` package:
|
||||
|
||||
$ sudo alien -i --scripts rippled*.rpm
|
||||
|
||||
5. Reload the `systemd` unit files:
|
||||
3. Reload the `systemd` unit files:
|
||||
|
||||
$ sudo systemctl daemon-reload
|
||||
|
||||
6. Restart the `rippled` service:
|
||||
4. Restart the `rippled` service:
|
||||
|
||||
$ sudo service rippled restart
|
||||
|
||||
7. Delete the downloaded `rippled` package file:
|
||||
|
||||
$ rm rippled*.rpm
|
||||
|
||||
(This does not affect the installation, but prevents later updates from trying to re-install the old version.)
|
||||
|
||||
@@ -20,7 +20,7 @@ In a genesis ledger, the [genesis address](accounts.html#special-addresses) hold
|
||||
|
||||
In a new genesis ledger, the hard-coded default [Reserve](reserves.html) is **200 XRP** minimum for funding a new address, with an increment of **50 XRP** per object in the ledger. These values are higher than the current reserve requirements of the production network. (See also: [Fee Voting](fee-voting.html))
|
||||
|
||||
By default, a new genesis ledger has no [amendments](amendments.html) enabled. If you start a new genesis ledger with `--start`, the genesis ledger contains an [EnableAmendment pseudo-transaction](enableamendment.html) to turn on all amendments natively supported by the `rippled` server, except for amendments that you explicitly disable in the configuration file. The effects of those amendments are available starting from the very next ledger version. (Reminder: in stand-alone mode, you must [advance the ledger manually](advance-the-ledger-in-stand-alone-mode.html).) [New in: rippled 0.50.0][]
|
||||
By default, a new genesis ledger has no [amendments](amendments.html) enabled. If you start a new genesis ledger with `--start`, the genesis ledger contains an [EnableAmendment pseudo-transaction](enableamendment.html) to turn on all amendments natively supported by the `rippled` server, except for amendments that you explicitly disable in the config file. The effects of those amendments are available starting from the very next ledger version. (Reminder: in stand-alone mode, you must [advance the ledger manually](advance-the-ledger-in-stand-alone-mode.html).) [New in: rippled 0.50.0][]
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
|
||||
@@ -60,7 +60,7 @@ This generally indicates one of several problems:
|
||||
|
||||
## Check the server log
|
||||
|
||||
[By default,](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg#L1139-L1142) `rippled` writes the server's debug log to the file `/var/log/rippled/debug.log`. The location of the debug log can differ based on your server's configuration file. If you start the `rippled` service directly (instead of using `systemctl` or `service` to start it), it also prints log messages to the console by default.
|
||||
[By default,](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg#L1139-L1142) `rippled` writes the server's debug log to the file `/var/log/rippled/debug.log`. The location of the debug log can differ based on your server's config file. If you start the `rippled` service directly (instead of using `systemctl` or `service` to start it), it also prints log messages to the console by default.
|
||||
|
||||
The default config file sets the log level to severity "warning" for all categories of log messages by internally using the [log_level method][] during startup. You can control the verbosity of the debug log [using the `--silent` commandline option during startup](commandline-usage.html#verbosity-options) and with the [log_level method][] while the server is running. (See the `[rpc_startup]` stanza of the config file for settings.)
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ If your server is vulnerable to this problem, you can detect it two ways:
|
||||
|
||||
In both cases, detection of the problem requires access to `rippled`'s server logs.
|
||||
|
||||
**Tip:** The location of the debug log depends on your `rippled` server's configuration file. The [default configuration](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg#L1139-L1142) writes the server's debug log to the file `/var/log/rippled/debug.log`.
|
||||
**Tip:** The location of the debug log depends on your `rippled` server's config file. The [default configuration](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg#L1139-L1142) writes the server's debug log to the file `/var/log/rippled/debug.log`.
|
||||
|
||||
### Proactive Detection
|
||||
|
||||
|
||||
@@ -179,17 +179,24 @@ Terminating thread rippled: main: unhandled St13runtime_error 'shard path missin
|
||||
|
||||
If your config includes a `[shard_db]` stanza, it must contain a `path` field, which points to a directory where `rippled` can write the data for the shard store. This error means the `path` field is missing or located in the wrong place. Check for extra whitespace or typos in your config file, and compare against the [Shard Configuration Example](configure-history-sharding.html#2-edit-rippledcfg).
|
||||
|
||||
## Unsupported shard store type: RocksDB
|
||||
|
||||
## ShardStore unable to open/create RocksDB
|
||||
RocksDB is no longer supported as a backend for [history sharding](history-sharding.html). If you have an existing configuration that defines a RocksDB shard store, the server fails to start. [New in: rippled 1.3.1][]
|
||||
|
||||
If you enable [history sharding](history-sharding.html), then later change the configuration to use RocksDB instead of NuDB, the server may try to read the existing NuDB data as RocksDB data and fail to start. In this case, the server writes an error such as the following:
|
||||
In this case, the process dies shortly after the log startup command, with a message such as the following appearing earlier in the output log:
|
||||
|
||||
```text
|
||||
ShardStore:ERR shard 504 error: Unable to open/create RocksDB: Invalid argument: /var/lib/rippled/db/shards/504: does not exist (create_if_missing is false)
|
||||
ShardStore:ERR Unsupported shard store type: RocksDB
|
||||
```
|
||||
|
||||
To fix this problem, do one of the following:
|
||||
|
||||
- Move or delete the existing shard data from the configured folder
|
||||
- Change where the shard store is located on disk by changing the `path` of the `[shard_db]` stanza in the `rippled.cfg` file.
|
||||
- Change the shard store back to using NuDB.
|
||||
To fix this problem, do one of the following, then restart the server:
|
||||
|
||||
- Change your shard store to use NuDB instead.
|
||||
- Disable history sharding.
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
|
||||
@@ -1062,8 +1062,20 @@ pages:
|
||||
targets:
|
||||
- local
|
||||
|
||||
- md: tutorials/manage-the-rippled-server/installation/install-rippled-on-ubuntu-with-alien.md
|
||||
# Redirect old Alien-based install
|
||||
- name: Install rippled on Ubuntu with Alien
|
||||
html: install-rippled-on-ubuntu-with-alien.html
|
||||
template: template-redirect.html
|
||||
redirect_url: install-rippled-on-ubuntu.html
|
||||
funnel: Docs
|
||||
doc_type: Tutorials
|
||||
category: Manage the rippled Server
|
||||
subcategory: Installation
|
||||
targets:
|
||||
- local
|
||||
|
||||
- md: tutorials/manage-the-rippled-server/installation/install-rippled-on-ubuntu.md
|
||||
html: install-rippled-on-ubuntu.html
|
||||
funnel: Docs
|
||||
doc_type: Tutorials
|
||||
category: Manage the rippled Server
|
||||
@@ -1072,13 +1084,24 @@ pages:
|
||||
targets:
|
||||
- local
|
||||
|
||||
- md: tutorials/manage-the-rippled-server/installation/update-rippled-automatically-on-centos-rhel.md
|
||||
- name: Update rippled Automatically on CentOS/RHEL
|
||||
html: update-rippled-automatically-on-centos-rhel.html
|
||||
template: template-redirect.html
|
||||
redirect_url: update-rippled-automatically-on-linux.html
|
||||
funnel: Docs
|
||||
doc_type: Tutorials
|
||||
category: Manage the rippled Server
|
||||
subcategory: Installation
|
||||
blurb: Set up automatic updates for rippled on CentOS or Red Hat Enterprise Linux.
|
||||
targets:
|
||||
- local
|
||||
|
||||
- md: tutorials/manage-the-rippled-server/installation/update-rippled-automatically-on-linux.md
|
||||
html: update-rippled-automatically-on-linux.html
|
||||
funnel: Docs
|
||||
doc_type: Tutorials
|
||||
category: Manage the rippled Server
|
||||
subcategory: Installation
|
||||
blurb: Set up automatic updates for rippled on Linux.
|
||||
targets:
|
||||
- local
|
||||
|
||||
@@ -1132,6 +1155,16 @@ pages:
|
||||
targets:
|
||||
- local
|
||||
|
||||
- md: tutorials/manage-the-rippled-server/installation/rippled-1-3-migration-instructions.md
|
||||
html: rippled-1-3-migration-instructions.html
|
||||
funnel: Docs
|
||||
doc_type: Tutorials
|
||||
category: Manage the rippled Server
|
||||
subcategory: Installation
|
||||
blurb: Use these instructions to upgrade rippled packages from 1.2.x or below to 1.3.x or higher.
|
||||
targets:
|
||||
- local
|
||||
|
||||
- name: Configure rippled
|
||||
html: configure-rippled.html
|
||||
funnel: Docs
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
{% endif %}
|
||||
|
||||
{% for subpage in catpages|selectattr('subcategory', 'defined_and_equalto', page.subcategory) %}
|
||||
{% if subpage != page %}
|
||||
{% if subpage != page and subpage.template != "template-redirect.html" %}
|
||||
{% if subpage == currentpage %}
|
||||
<li><a class="active subpage" href="#main_content_body">{{ subpage.name }}{% if subpage.status is defined and subpage.status == "not_enabled" %} {% include 'template-status_not_enabled.html' %}{% endif %}</a></li>
|
||||
{% else %}
|
||||
@@ -164,7 +164,7 @@
|
||||
<!-- DEBUG: category_members is {{ category_members }} -->
|
||||
{% for subsubpage in category_members %}
|
||||
{% if subsubpage != subpage and (subsubpage.subcategory is undefined or
|
||||
subsubpage == category_members|selectattr('subcategory', 'defined_and_equalto', subsubpage.subcategory)|first) %}
|
||||
subsubpage == category_members|selectattr('subcategory', 'defined_and_equalto', subsubpage.subcategory)|first) and subsubpage.template != "template-redirect.html" %}
|
||||
<li><a class="subpage" href="{{ subsubpage.html }}">{{ subsubpage.name }}{% if subsubpage.status is defined and subsubpage.status == "not_enabled" %} {% include 'template-status_not_enabled.html' %}{% endif %}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
@@ -228,7 +228,7 @@
|
||||
{% if subpage != page %}
|
||||
{% if subpage == currentpage %}
|
||||
<li><a class="active subpage" href="#main_content_body">{{ subpage.name }}{% if subpage.status is defined and subpage.status == "not_enabled" %} {% include 'template-status_not_enabled.html' %}{% endif %}</a></li>
|
||||
{% else %}
|
||||
{% elif subpage.template != "template-redirect.html" %}
|
||||
<li><a class="subpage" href="{{ subpage.html }}">{{ subpage.name }}{% if subpage.status is defined and subpage.status == "not_enabled" %} {% include 'template-status_not_enabled.html' %}{% endif %}</a></li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user