diff --git a/BUILD.md b/BUILD.md index a08205bff..b968583e3 100644 --- a/BUILD.md +++ b/BUILD.md @@ -22,7 +22,7 @@ Notes: - This command will build all modules (core, node, gui). - If the build fails, you may need to clean previously built artifacts with the `mvn clean` command. -- Some of the tests use [Docker](https://www.docker.com/), so make sure your docker daemon is running. +- Some tests use [Docker](https://www.docker.com/), so make sure your docker daemon is running. - Archives can be found in the `target` folder for each module. ### Skip tests diff --git a/README.md b/README.md index 4869cc2f4..477247e10 100644 --- a/README.md +++ b/README.md @@ -26,14 +26,14 @@ Please see the latest [release note](https://github.com/ACINQ/eclair/releases) f ## JSON API -Eclair offers a feature rich HTTP API that enables application developers to easily integrate. +Eclair offers a feature-rich HTTP API that enables application developers to easily integrate. For more information please visit the [API documentation website](https://acinq.github.io/eclair). ## Documentation Please visit our [docs](./docs) and [wiki](https://github.com/acinq/eclair/wiki) to find detailed instructions on how to configure your -node, connect to other nodes, open channels, send and receive payments and more advanced scenario. +node, connect to other nodes, open channels, send and receive payments, and more advanced scenario. You will find detailed guides and frequently asked questions there. @@ -63,7 +63,7 @@ zmqpubrawtx=tcp://127.0.0.1:29000 Eclair is developed in [Scala](https://www.scala-lang.org/), a powerful functional language that runs on the JVM, and is packaged as a ZIP archive. -To run Eclair, you first need to install Java, we recommend that you use [OpenJDK 11](https://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot). Other runtimes also work but we don't recommend using them. +To run Eclair, you first need to install Java, we recommend that you use [OpenJDK 11](https://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot). Other runtimes also work, but we don't recommend using them. Then download our latest [release](https://github.com/ACINQ/eclair/releases), unzip the archive and run the following command: @@ -149,15 +149,15 @@ The files that you need to backup are located in your data directory. You must b Your seeds never change once they have been created, but your channels will change whenever you receive or send payments. Eclair will create and maintain a snapshot of its database, named `eclair.sqlite.bak`, in your data directory, and update it when needed. This file is -always consistent and safe to use even when Eclair is running, and this is what you should backup regularly. +always consistent and safe to use even when Eclair is running, and this is what you should back up regularly. -For example you could configure a `cron` task for your backup job. Or you could configure an optional notification script to be called by eclair once a new database snapshot has been created, using the following option: +For example, you could configure a `cron` task for your backup job. Or you could configure an optional notification script to be called by eclair once a new database snapshot has been created, using the following option: ```conf eclair.backup-notify-script = "/absolute/path/to/script.sh" ``` -Make sure that your script is executable and uses an absolute path name for `eclair.sqlite.bak`. +Make sure your script is executable and uses an absolute path name for `eclair.sqlite.bak`. Note that depending on your filesystem, in your backup process we recommend first moving `eclair.sqlite.bak` to some temporary file before copying that file to your final backup location. diff --git a/docs/Configure.md b/docs/Configure.md index abb246bc7..b63f306d5 100644 --- a/docs/Configure.md +++ b/docs/Configure.md @@ -108,7 +108,7 @@ on-chain-fees { ``` We do not recommend changing these values unless you really know what you're doing. -But if you have a trust relationship with some specific peers and know they will never try to cheat you, you can increase the tolerance specifically for those peers. +However, if you have a trust relationship with some specific peers, and you know they will never try to cheat you, you can increase the tolerance specifically for those peers. On the other hand, if you have channels with peers you suspect may try to attack you, you can decrease the tolerance specifically for those peers. ```conf @@ -173,4 +173,4 @@ To make your node public, add a public ip: eclair.server.public-ips=[x.x.x.x] ``` -You'll also have to make sure that the node is accessible from the outside world (port forwarding, firewall,...). +You'll also have to make sure the node is accessible from the outside world (port forwarding, firewall,...). diff --git a/docs/Monitoring.md b/docs/Monitoring.md index bab2b29fd..b914a3c77 100644 --- a/docs/Monitoring.md +++ b/docs/Monitoring.md @@ -39,7 +39,7 @@ When starting eclair, you should enable the Kanela agent: eclair.sh -with-kanela ``` -And your eclair node will start exporting monitoring data to Kamon. +Your eclair node will start exporting monitoring data to Kamon. You can then start creating dashboards, graphs and alerts directly on Kamon's website. ## Enabling monitoring with a different backend diff --git a/docs/PostgreSQL.md b/docs/PostgreSQL.md index 3f8ff0386..e312da36d 100644 --- a/docs/PostgreSQL.md +++ b/docs/PostgreSQL.md @@ -1,6 +1,6 @@ ## PostgreSQL Configuration -By default Eclair stores its data on the machine's local file system (typically in `~/.eclair` directory) using SQLite. +By default, Eclair stores its data on the machine's local file system (typically in `~/.eclair` directory) using SQLite. It also supports PostgreSQL version 10.6 and higher as a database backend. @@ -78,7 +78,7 @@ by PostgreSQL. For nodes with infrequent channel updates its easier to use `pg_dump` to perform the task. It's important to stop the node to prevent any channel updates while a backup/restore operation is in progress. It makes -sense to backup the database after each channel update, to prevent restoring an outdated channel's state and consequently +sense to back up the database after each channel update, to prevent restoring an outdated channel's state and consequently losing the funds associated with that channel. For more information about backup refer to the official PostgreSQL documentation: https://www.postgresql.org/docs/current/backup.html @@ -103,8 +103,8 @@ Follow the official PostgreSQL high availability documentation for the instructi Using Eclair with an outdated version of the database or a database created with another seed might lead to loss of funds. -Every time Eclair starts, it checks if the Postgres database connection settings were changed since the last start. -If in fact the settings were changed, Eclair stops immediately to prevent potentially dangerous +Every time Eclair starts, it checks if the Postgres database connection settings have changed since the last start. +If in fact the settings have changed, Eclair stops immediately to prevent potentially dangerous but accidental configuration changes to come into effect. Eclair stores the latest database settings in the `${data-dir}/last_jdbcurl` file, and compares its contents with the database settings from the config file. diff --git a/docs/Tor.md b/docs/Tor.md index 69eeafbd7..4af60fe03 100644 --- a/docs/Tor.md +++ b/docs/Tor.md @@ -37,7 +37,7 @@ Make sure eclair is allowed to read Tor's cookie file (typically `/var/run/tor/c #### Windows: -On Windows it is easier to use the password authentication mechanism. +On Windows, it is easier to use the password authentication mechanism. First pick a password and hash it with this command: @@ -99,7 +99,7 @@ You can see what onion address is assigned using `eclair-cli`: eclair-cli getinfo ``` Eclair saves the Tor endpoint's private key in `~/.eclair/tor_pk`, so that it can recreate the endpoint address after -restart. If you remove the private key eclair will regenerate the endpoint address. +a restart. If you remove the private key eclair will regenerate the endpoint address. There are two possible values for `protocol-version`: @@ -122,13 +122,13 @@ eclair.server.binding-ip = "127.0.0.1" ### Configure SOCKS5 proxy -By default all incoming connections will be established via Tor network, but all outgoing will be created via the +By default, all incoming connections will be established via Tor network, but all outgoing will be created via the clearnet. To route them through Tor you can use Tor's SOCKS5 proxy. Add this line in your `eclair.conf`: ``` eclair.socks5.enabled = true ``` You can use SOCKS5 proxy only for specific types of addresses. Use `eclair.socks5.use-for-ipv4`, `eclair.socks5.use-for-ipv6` -or `eclair.socks5.use-for-tor` for fine tuning. +or `eclair.socks5.use-for-tor` for fine-tuning. To create a new Tor circuit for every connection, use `randomize-credentials` parameter: @@ -136,7 +136,7 @@ To create a new Tor circuit for every connection, use `randomize-credentials` pa eclair.socks5.randomize-credentials = true ``` -:warning: Tor hidden service and SOCKS5 are independent options. You can use just one of them, but if you want to get the most privacy -features from using Tor use both. +:warning: Tor hidden service and SOCKS5 are independent options. You can use just one of them, but if you want to get most privacy +features from using Tor, use both. Note, that bitcoind should be configured to use Tor as well (https://en.bitcoin.it/wiki/Setting_up_a_Tor_hidden_service). diff --git a/eclair-core/eclair-cli b/eclair-core/eclair-cli index c9286529c..a702a21f6 100755 --- a/eclair-core/eclair-cli +++ b/eclair-core/eclair-cli @@ -1,6 +1,6 @@ #!/bin/bash -# default script values, can be overriden for convenience. +# default script values, can be overridden for convenience. api_url='http://localhost:8080' # uncomment the line below if you don't want to provide a password each time you call eclair-cli # api_password='your_api_password' diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClientPool.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClientPool.scala index 042b1abbd..d2d26cfa0 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClientPool.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClientPool.scala @@ -179,7 +179,7 @@ object ElectrumClientPool { val MAX_CONNECTION_COUNT = 3 - case class ElectrumServerAddress(adress: InetSocketAddress, ssl: SSL) + case class ElectrumServerAddress(address: InetSocketAddress, ssl: SSL) /** * Parses default electrum server list and extract addresses @@ -222,7 +222,7 @@ object ElectrumClientPool { * @return a random address that we're not connected to yet */ def pickAddress(serverAddresses: Set[ElectrumServerAddress], usedAddresses: Set[InetSocketAddress]): Option[ElectrumServerAddress] = { - Random.shuffle(serverAddresses.filterNot(a => usedAddresses.contains(a.adress)).toSeq).headOption + Random.shuffle(serverAddresses.filterNot(a => usedAddresses.contains(a.address)).toSeq).headOption } // @formatter:off diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClientPoolSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClientPoolSpec.scala index 0f63f190c..6e9c85a69 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClientPoolSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClientPoolSpec.scala @@ -50,10 +50,10 @@ class ElectrumClientPoolSpec extends TestKitBaseClass with AnyFunSuiteLike with import concurrent.ExecutionContext.Implicits.global test("pick a random, unused server address") { - val usedAddresses = Random.shuffle(serverAddresses.toSeq).take(serverAddresses.size / 2).map(_.adress).toSet + val usedAddresses = Random.shuffle(serverAddresses.toSeq).take(serverAddresses.size / 2).map(_.address).toSet for (_ <- 1 to 10) { val Some(pick) = ElectrumClientPool.pickAddress(serverAddresses, usedAddresses) - assert(!usedAddresses.contains(pick.adress)) + assert(!usedAddresses.contains(pick.address)) } }