diff --git a/docs/Build/Mining/_qrl-pool-setup.md b/docs/Build/Mining/_qrl-pool-setup.md deleted file mode 100644 index 3be247c..0000000 --- a/docs/Build/Mining/_qrl-pool-setup.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -docstatus: DRAFT -id: qrl-pool-setup -title: QRL Pool - Setup -hide_title: false -hide_table_of_contents: false -sidebar_label: QRL Pool - Setup -sidebar_position: 1 -pagination_label: QRL Pool - Setup -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ -description: QRL Pool - Setup -keywords: - - docs - - build - - developers - - Pool Setup -image: /assets/img/icons/yellow.png -slug: /developers/mining/qrl-pool-setup ---- - - -:::caution DOCUMENT STATUS -This document is in: {frontMatter.docstatus} status and needs additional input! -::: \ No newline at end of file diff --git a/docs/Build/Mining/qrandomx.md b/docs/Build/Mining/qrandomx.md index 6e23581..f92dfd0 100644 --- a/docs/Build/Mining/qrandomx.md +++ b/docs/Build/Mining/qrandomx.md @@ -16,7 +16,6 @@ image: /assets/img/icons/yellow.png slug: /build/mining/qrandomx --- - [![CircleCI](https://circleci.com/gh/theQRL/qrandomx.svg?style=shield)](https://circleci.com/gh/theQRL/qrandomx) [![GPL3 licensed](https://img.shields.io/badge/license-GPL3-blue.svg)](https://raw.githubusercontent.com/theQRL/qrandomx/master/LICENSE) diff --git a/docs/Build/Mining/qrl-pool-setup.md b/docs/Build/Mining/qrl-pool-setup.md new file mode 100644 index 0000000..5df7b44 --- /dev/null +++ b/docs/Build/Mining/qrl-pool-setup.md @@ -0,0 +1,468 @@ +--- +id: qrl-pool-setup +title: QRL Pool - Setup +hide_title: false +hide_table_of_contents: false +sidebar_label: QRL Pool - Setup +sidebar_position: 1 +pagination_label: QRL Pool - Setup +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Build/Mining/_qrl-pool-setup.md +description: QRL Pool - Setup +keywords: + - docs + - build + - developers + - Pool Setup +image: /assets/img/icons/yellow.png +slug: /build/mining/qrl-pool-setup +--- + + +QRL uses the RandomX protocol and can be mined collectively using a centralized pool server and a collection of computers running mining software. + +This guide will walk through the steps required to get a pool up and running using [Our GithHub Fork](https://github.com/cyyber/cryptonote-nodejs-pool/) of the popular cryptonote-nodejs-pool software. This fork has been modified to run the QRL blockchain. You can use this as a basis for integrating QRL into your Pool or hosting your own private pool. + +It is assumed that the appropriate security measures have been taken to secure the server hosting this pool software. Please follow best practice and keep software up to date. + +:::info +Running a mining pool is not something that should be taken lightly. You need to have a good understanding of multiple, complex, administration and security practices. +::: + +## Requirements + +#### Hardware + +* minimum 4GB RAM +* 2 Core CPU +* Support for AES-NI +* Support for avx2 +* 64 bit Processor +* high bandwidth network connection +* Dedicated IP address + +#### Software and OS + +* This guide uses Ubuntu 18.04LTS +* python 3.6 +* All required dependencies specified in the [Pool software](https://github.com/cyyber/cryptonote-nodejs-pool/) repo + +## QRL Install + +Follow the instructions found at [docs.theqrl.org/node/QRLnode/](/use/node/overview) to get the node started. + +### Start QRL and Sync + +Create a configuration file to give the QRL node instructions on how to run. By default the QRL node will look in `~/.qrl` You may need to create this directory if you have not started the node. + +:::note +If you are running a testnet node, you will find the active qrl configuration at `~/.qrl-testnet` +::: + +Create a `~/.qrl/config.yml` file and add these minimum configuration settings. + +```yml +mining_enabled: False +enable_peer_discovery: True +mining_api_enabled: True +public_api_enabled: True +``` + +Verify the local node blockheight matches the [block explorer](https://explorer.theqrl.org). This may take some time. + +## grpcProxy + +The QRL requires a bridge between the RPC and gRPC that QRL utilizes. The proxy handles the communication between the pool and the QRL node. + +To use the proxy you must have a slaves.json file named `payment_slaves.json` in your `~/.qrl` directory. To generate this file first you need a QRL wallet. + +### QRL CLI Wallet + +Generate a new QRL wallet using the QRL node CLI. With the node running enter: + +```bash +# Creates a QRL wallet +qrl wallet_gen --height 12 --hash_function shake128 --encrypt +``` + +The cli will ask for an encryption password to encrypt the file. This password will be required every time this wallet is needed, typically to generate a new slave tree in the distant future. **DO not lose this password** + + +There now is a `wallet.json` file in the local directory the command was issued in. Backup this file to a secure location for future use if needed. This is the new pool wallet. Now generate slave trees to use for sending payments through the pools automated system. + +### QRL payment_slaves.json + +With the encrypted QRL Wallet.json file can create a slave tree file. This file contains a new set of [One Time Signatures *(OTS)*](https://docs.theqrl.org/developers/ots/) generated from the main address that the pool will use to send transactions. See more on the XMSS slave trees in our [Documentation](https://docs.theqrl.org/wallet/slaves.json/) + +To generate a slave file from the wallet, run the following command. This will create the slaves tree and broadcast a signed transaction with the slave tree public keys onto the QRL network, allowing the set of slaves to be used. + +```bash +qrl slave_tx_generate --src 0 --master '' --number_of_slaves 100 --access_type 0 --fee .001 +``` + +This will create a new file called slaves.json in the same directory you are in, sign the message and send onto the network. This transaction will require a small fee to broadcast to the network. Make sure you have enough funds to cover the fee. + +Move the `slaves.json` file to the `~/.qrl` directory and rename to `payment_slaves.json` + +### Start the QRL_gRPC_Proxy + +Run the proxy with the following: + +```bash +qrl_grpc_proxy +``` + +:::note +If you are running testnet, start the proxy with `--network-type testnet` to use the default testnet directory `~/.qrl-testnet `. You will need to move the payments.slaves.json file to this directory as well. + +#### Ports + +Check to see that you have open ports for the pool to communicate on using `netstat` + +```bash +netstat -tulnp +``` + +This will print all of the open ports on the server. Ensure ports `18090, 19007, 19009` are open and available for the pool. + + +## Pool Install + +To install the pool follow the instructions in the [GitHub Repository](https://github.com/cyyber/cryptonote-nodejs-pool/#cryptonote-nodejs-pool). This will guide you through the dependencies and various steps to getting the pool software installed. + +Please use the configuration found at the end of these docs to connect to the QRL node and wallet. this file lives at the root of the pool directory as `config.json` + + +## Install Web Server + +You will need a web server setup somewhere pointed at the pool API port. See the README.md in the pool Github for instructions on setting up the web front end. There is an additional configuration file needed to host the web server. + +Most importantly, ensure the port is available to the web server and you can reach the address or IP externally. + +* `var api = "http://pool.FQDN_OR_IP:8117";` + + +## Start The Pool + +With the QRL node fully synced and running, slaves.json file in the correct place, ~/.qrl/config.yml file correctly filled out, and the qrl_grpc_proxy running, you can start the pool. + +from the root pool directory, run + +```bash +node init.js +``` + +Enjoy. + +## Pool Config File + +Copy the `/config_examples/qrl.json` file found in the repository to `/config.json` and overview each option. Change any to match your preferred setup however pay attention to the following few configurations, as they are important. + +* "poolAddress": "Q01060019b0f4ce8ea82e71a5fc60851541db7e515d2585247c70533487cc89c50f6dddb8a4f386", +* "daemon": { "host": "127.0.0.1", "port": 18090 }, +* "wallet": { "host": "127.0.0.1", "port": 18090 }, + +```json +{ + "poolHost": "pool.FQDN_or_IPADDRESS", + "coin": "quantum_resistant_ledger", + "symbol": "QRL", + "hardForkHeight": 942375, + "coinUnits": 1000000000, + "coinDecimalPlaces": 9, + "coinDifficultyTarget": 60, + + "daemonType": "default", + "cnAlgorithm": "randomx", + "cnVariant": 0, + "cnBlobType": 0, + "includeHeight": true, + "isRandomX": true, + + "logging": { + "files": { + "level": "info", + "directory": "logs", + "flushInterval": 5 + }, + "console": { + "level": "info", + "colors": true + } + }, + + "poolServer": { + "enabled": true, + "clusterForks": "auto", + "poolAddress": "Q01060019b0f4ce8ea82e71a5fc60851541db7e515d2585247c70533487cc89c50f6dddb8a4f386", + "intAddressPrefix": null, + "blockRefreshInterval": 1000, + "minerTimeout": 900, + "sslCert": "./cert.pem", + "sslKey": "./privkey.pem", + "sslCA": "./chain.pem", + "ports": [ + { + "port": 3333, + "difficulty": 5000, + "desc": "Low end hardware" + }, + { + "port": 4444, + "difficulty": 15000, + "desc": "Mid range hardware" + }, + { + "port": 5555, + "difficulty": 25000, + "desc": "High end hardware" + }, + { + "port": 7777, + "difficulty": 500000, + "desc": "Cloud-mining / NiceHash" + }, + { + "port": 8888, + "difficulty": 25000, + "desc": "Hidden port", + "hidden": true + }, + { + "port": 9999, + "difficulty": 20000, + "desc": "SSL connection", + "ssl": true + } + ], + "varDiff": { + "minDiff": 100, + "maxDiff": 100000000, + "targetTime": 120, + "retargetTime": 60, + "variancePercent": 30, + "maxJump": 100 + }, + "paymentId": { + "addressSeparator": "+" + }, + "fixedDiff": { + "enabled": true, + "addressSeparator": "." + }, + "shareTrust": { + "enabled": true, + "min": 10, + "stepDown": 3, + "threshold": 10, + "penalty": 30 + }, + "banning": { + "enabled": true, + "time": 600, + "invalidPercent": 25, + "checkThreshold": 30 + }, + "slushMining": { + "enabled": false, + "weight": 300, + "blockTime": 60, + "lastBlockCheckRate": 1 + } + }, + + "payments": { + "enabled": true, + "interval": 1800, + "maxAddresses": 50, + "mixin": 7, + "priority": 0, + "transferFee": 1000000, + "dynamicTransferFee": true, + "minerPayFee" : true, + "minPayment": 1000000000, + "maxPayment": null, + "maxTransactionAmount": 0, + "denomination": 10000000000 + }, + + "blockUnlocker": { + "enabled": true, + "interval": 30, + "depth": 60, + "poolFee": 0.8, + "devDonation": 0.2, + "networkFee": 0.0 + }, + + "api": { + "enabled": true, + "hashrateWindow": 600, + "updateInterval": 5, + "bindIp": "0.0.0.0", + "port": 8117, + "blocks": 30, + "payments": 30, + "password": "j$73Mds&ABUELID*$Fir7Tz!!0TllGt", + "ssl": false, + "sslPort": 8119, + "sslCert": "./cert.pem", + "sslKey": "./privkey.pem", + "sslCA": "./chain.pem", + "trustProxyIP": true + }, + + "daemon": { + "host": "127.0.0.1", + "port": 18090 + }, + + "wallet": { + "host": "127.0.0.1", + "port": 18090 + }, + + "redis": { + "host": "127.0.0.1", + "port": 6379, + "auth": null, + "db": 0, + "cleanupInterval": 15 + }, + + "notifications": { + "emailTemplate": "email_templates/default.txt", + "emailSubject": { + "emailAdded": "Your email was registered", + "workerConnected": "Worker %WORKER_NAME% connected", + "workerTimeout": "Worker %WORKER_NAME% stopped hashing", + "workerBanned": "Worker %WORKER_NAME% banned", + "blockFound": "Block %HEIGHT% found !", + "blockUnlocked": "Block %HEIGHT% unlocked !", + "blockOrphaned": "Block %HEIGHT% orphaned !", + "payment": "We sent you a payment !" + }, + "emailMessage": { + "emailAdded": "Your email has been registered to receive pool notifications.", + "workerConnected": "Your worker %WORKER_NAME% for address %MINER% is now connected from ip %IP%.", + "workerTimeout": "Your worker %WORKER_NAME% for address %MINER% has stopped submitting hashes on %LAST_HASH%.", + "workerBanned": "Your worker %WORKER_NAME% for address %MINER% has been banned.", + "blockFound": "Block found at height %HEIGHT% by miner %MINER% on %TIME%. Waiting maturity.", + "blockUnlocked": "Block mined at height %HEIGHT% with %REWARD% and %EFFORT% effort on %TIME%.", + "blockOrphaned": "Block orphaned at height %HEIGHT% :(", + "payment": "A payment of %AMOUNT% has been sent to %ADDRESS% wallet." + }, + "telegramMessage": { + "workerConnected": "Your worker _%WORKER_NAME%_ for address _%MINER%_ is now connected from ip _%IP%_.", + "workerTimeout": "Your worker _%WORKER_NAME%_ for address _%MINER%_ has stopped submitting hashes on _%LAST_HASH%_.", + "workerBanned": "Your worker _%WORKER_NAME%_ for address _%MINER%_ has been banned.", + "blockFound": "*Block found at height* _%HEIGHT%_ *by miner* _%MINER%_*! Waiting maturity.*", + "blockUnlocked": "*Block mined at height* _%HEIGHT%_ *with* _%REWARD%_ *and* _%EFFORT%_ *effort on* _%TIME%_*.*", + "blockOrphaned": "*Block orphaned at height* _%HEIGHT%_ *:(*", + "payment": "A payment of _%AMOUNT%_ has been sent." + } + }, + + "email": { + "enabled": false, + "fromAddress": "your@email.com", + "transport": "sendmail", + "sendmail": { + "path": "/usr/sbin/sendmail" + }, + "smtp": { + "host": "smtp.example.com", + "port": 587, + "secure": false, + "auth": { + "user": "username", + "pass": "password" + }, + "tls": { + "rejectUnauthorized": false + } + }, + "mailgun": { + "key": "your-private-key", + "domain": "mg.yourdomain" + } + }, + + "telegram": { + "enabled": false, + "botName": "", + "token": "", + "channel": "", + "channelStats": { + "enabled": false, + "interval": 30 + }, + "botCommands": { + "stats": "/stats", + "report": "/report", + "notify": "/notify", + "blocks": "/blocks" + } + }, + "charts": { + "pool": { + "hashrate": { + "enabled": true, + "updateInterval": 60, + "stepInterval": 1800, + "maximumPeriod": 86400 + }, + "miners": { + "enabled": true, + "updateInterval": 60, + "stepInterval": 1800, + "maximumPeriod": 86400 + }, + "workers": { + "enabled": true, + "updateInterval": 60, + "stepInterval": 1800, + "maximumPeriod": 86400 + }, + "difficulty": { + "enabled": true, + "updateInterval": 1800, + "stepInterval": 10800, + "maximumPeriod": 604800 + }, + "price": { + "enabled": true, + "updateInterval": 1800, + "stepInterval": 10800, + "maximumPeriod": 604800 + }, + "profit": { + "enabled": true, + "updateInterval": 1800, + "stepInterval": 10800, + "maximumPeriod": 604800 + } + }, + "user": { + "hashrate": { + "enabled": true, + "updateInterval": 180, + "stepInterval": 1800, + "maximumPeriod": 86400 + }, + "worker_hashrate": { + "enabled": true, + "updateInterval": 60, + "stepInterval": 60, + "maximumPeriod": 86400 + }, + "payments": { + "enabled": true + } + }, + "blocks": { + "enabled": true, + "days": 30 + } + } +} +``` diff --git a/docs/Build/QIP/qip-workflow.md b/docs/Build/QIP/qip-workflow.md index 65a3db0..f30fc25 100644 --- a/docs/Build/QIP/qip-workflow.md +++ b/docs/Build/QIP/qip-workflow.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: QIP Workflow sidebar_position: 2 pagination_label: QIP Workflow -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Build/QIP/qip-workflow.md description: QIP Workflow keywords: - docs diff --git a/docs/Build/qrl-private-network.md b/docs/Build/qrl-private-network.md new file mode 100644 index 0000000..b018f94 --- /dev/null +++ b/docs/Build/qrl-private-network.md @@ -0,0 +1,62 @@ +--- +id: qrl-private-network +title: QRL Private Network +hide_title: false +hide_table_of_contents: false +sidebar_label: Private Network +pagination_label: Private QRL Network +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Build/qrl-private-network.md +description: QRL private network setup and operation. +keywords: + - docs + - Advanced + - QRL Private Network + - Testing +image: /assets/img/icons/yellow.png +slug: /build/private-network +--- + + +Setting up a private QRL network allows a developer to test making QRL transactions without placing funds at risk or relying on external infrastructure. This is intended to help the development and advancement of external systems. + + +This documentation assumes that you have already followed the [QRL node installation instructions](/use/node/installation) + + +## config.yml + +In order to run a private chain, you need to create `~/.qrl/config.yml` with following content at minimum. See + +```yml +genesis_difficulty: 500 +mining_enabled: True +peer_list: [] +``` + + +#### Description: + +| **Parameter** | **Type** | **Description** | +| --- | --- | --- | +| genesis_difficulty | UInt64 | Initial difficulty to mine the block. The lower the value the easier it will be to mine the first block. | +| mining_enabled | Boolean | Enable or disables mining | +| peer_list | String[] | List of strings containing "ip:port". It overrides the default peer list. | + + +**Note:** If you previously ran QRL mainnet on the same node then you need to delete `~/.qrl/data/` + + +## Running QRL Node + +```bash +start_qrl --miningAddress Q010800dd14a340e6daf28d4dab9e42a534177db5bf06ef1bb300452f606a17331bacca9453aac1 --mockGetMeasurement 1000000000 +``` + + +#### Description: + +| **Parameter** | **Type** | **Description** | +| --- | --- | --- | +| miningAddress | String | Any valid QRL address on which mining rewards will be credited. | +| mockGetMeasurement | Uint64 | A higher mockGetMeasurement eases it for the hardware to mine the blocks. It simply makes the difficulty constant. The value 1000000000 is enough to mine using very low end hardware. | + diff --git a/docs/Build/qrl-status.md b/docs/Build/qrl-status.md index d81def0..02cfac6 100644 --- a/docs/Build/qrl-status.md +++ b/docs/Build/qrl-status.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: QRL Status sidebar_position: 12 pagination_label: QRL Status -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/qrl-status.md +custom_edit_url: https://github.com/theQRL/documentation/blob/main/docs/Build/qrl-status.md description: QRL Status keywords: - docs diff --git a/docs/Build/qrllib.md b/docs/Build/qrllib.md index 26a0e56..60e027a 100644 --- a/docs/Build/qrllib.md +++ b/docs/Build/qrllib.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: QRLLIB sidebar_position: 3 pagination_label: QRLLIB -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/qrllib.md +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Build/qrllib.md description: QRLLIB - The QRL Core Library keywords: - docs diff --git a/docs/Build/security.md b/docs/Build/security.md index 2b91976..e8affef 100644 --- a/docs/Build/security.md +++ b/docs/Build/security.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: QRL Security sidebar_position: 2 pagination_label: QRL Security -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/security.md +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Build/security.md description: QRL Security keywords: - docs diff --git a/docs/Use/Tools/Integrations/_qrl-integrations.md b/docs/Use/Tools/Integrations/_qrl-integrations.md index e992335..f5abbff 100644 --- a/docs/Use/Tools/Integrations/_qrl-integrations.md +++ b/docs/Use/Tools/Integrations/_qrl-integrations.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: QRL Integrations sidebar_position: 1 pagination_label: QRL Integrations -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/Integrations/_qrl-integrations.md description: QRL Integrations keywords: - docs diff --git a/docs/Use/Tools/Integrations/keybase/_add-address-to-keybase.md b/docs/Use/Tools/Integrations/keybase/_add-address-to-keybase.md index cf505bb..fc34581 100644 --- a/docs/Use/Tools/Integrations/keybase/_add-address-to-keybase.md +++ b/docs/Use/Tools/Integrations/keybase/_add-address-to-keybase.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: Add an Address to Keybase sidebar_position: 2 pagination_label: Add an Address to Keybase -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/Integrations/keybase/_add-address-to-keybase.md description: Add an Address to the Keybase identity system keywords: - docs diff --git a/docs/Use/Tools/Integrations/keybase/_keybase-io.md b/docs/Use/Tools/Integrations/keybase/_keybase-io.md deleted file mode 100644 index ae31af0..0000000 --- a/docs/Use/Tools/Integrations/keybase/_keybase-io.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -id: keybase -title: Keybase.io -hide_title: false -hide_table_of_contents: false -sidebar_label: Keybase.io -sidebar_position: 1 -pagination_label: Keybase.io -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ -description: Overview of the Keybase identity system and QRL -keywords: - - docs - - keybase -image: /assets/img/icons/yellow.png -slug: /integrations/keybase ---- \ No newline at end of file diff --git a/docs/Use/Tools/Integrations/keybase/_verify-keybase.md b/docs/Use/Tools/Integrations/keybase/_verify-keybase.md index 09e63b8..6272381 100644 --- a/docs/Use/Tools/Integrations/keybase/_verify-keybase.md +++ b/docs/Use/Tools/Integrations/keybase/_verify-keybase.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: Verify Keybase sidebar_position: 4 pagination_label: Verify Keybase -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/Integrations/keybase/_verify-keybase.md description: Verify Keybase id and QRL address keywords: - docs diff --git a/docs/Use/Tools/Integrations/keybase/assets/AddKeybaseTx.png b/docs/Use/Tools/Integrations/keybase/assets/AddKeybaseTx.png new file mode 100644 index 0000000..2b960eb Binary files /dev/null and b/docs/Use/Tools/Integrations/keybase/assets/AddKeybaseTx.png differ diff --git a/docs/Use/Tools/Integrations/keybase/assets/KeyBaseFinished.png b/docs/Use/Tools/Integrations/keybase/assets/KeyBaseFinished.png new file mode 100644 index 0000000..9a96065 Binary files /dev/null and b/docs/Use/Tools/Integrations/keybase/assets/KeyBaseFinished.png differ diff --git a/docs/Use/Tools/Integrations/keybase/assets/Keybase_logo.png b/docs/Use/Tools/Integrations/keybase/assets/Keybase_logo.png new file mode 100644 index 0000000..9c2d0f9 Binary files /dev/null and b/docs/Use/Tools/Integrations/keybase/assets/Keybase_logo.png differ diff --git a/docs/Use/Tools/Integrations/keybase/assets/TxExplorer.png b/docs/Use/Tools/Integrations/keybase/assets/TxExplorer.png new file mode 100644 index 0000000..f49505d Binary files /dev/null and b/docs/Use/Tools/Integrations/keybase/assets/TxExplorer.png differ diff --git a/docs/Use/Tools/Integrations/keybase/assets/keybaseQRL_Main.png b/docs/Use/Tools/Integrations/keybase/assets/keybaseQRL_Main.png new file mode 100644 index 0000000..05e1420 Binary files /dev/null and b/docs/Use/Tools/Integrations/keybase/assets/keybaseQRL_Main.png differ diff --git a/docs/Use/Tools/Integrations/keybase/assets/tools_bar.png b/docs/Use/Tools/Integrations/keybase/assets/tools_bar.png new file mode 100644 index 0000000..63aa812 Binary files /dev/null and b/docs/Use/Tools/Integrations/keybase/assets/tools_bar.png differ diff --git a/docs/Use/Tools/Integrations/keybase/assets/tools_icon.png b/docs/Use/Tools/Integrations/keybase/assets/tools_icon.png new file mode 100644 index 0000000..8f0535f Binary files /dev/null and b/docs/Use/Tools/Integrations/keybase/assets/tools_icon.png differ diff --git a/docs/Use/Tools/Integrations/keybase/assets/txStatus.png b/docs/Use/Tools/Integrations/keybase/assets/txStatus.png new file mode 100644 index 0000000..652a011 Binary files /dev/null and b/docs/Use/Tools/Integrations/keybase/assets/txStatus.png differ diff --git a/docs/Use/Tools/Integrations/keybase/keybase-io.md b/docs/Use/Tools/Integrations/keybase/keybase-io.md new file mode 100644 index 0000000..bd50bc4 --- /dev/null +++ b/docs/Use/Tools/Integrations/keybase/keybase-io.md @@ -0,0 +1,71 @@ +--- +id: keybase +title: Keybase.io Address Verification +hide_title: false +hide_table_of_contents: false +sidebar_label: Keybase.io +sidebar_position: 1 +pagination_label: Keybase.io +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/integrations/keybase.io.md +description: Overview of the Keybase identity system and QRL +keywords: + - docs + - keybase +image: /assets/img/icons/yellow.png +slug: /use/tools/integrations/keybase +--- + +:::info +While still operational, the Keybase ecosystem is undergoing a change of management and at this point it's unclear which direction the team over there is going. Please DYOR before building into this integration. + +Contact info@theqrl.org with any questions or concerns that you may have. +::: + +We’re big fans of what Keybase are doing here at the Quantum Resistant Ledger. Innovation and security are a big part of what we do and we are delighted to announce that you can add your QRL address to your Keybase identity. + +![keybase.io logo](assets/Keybase_logo.png) + + +## Keybase + +[Keybase](https://keybase.io) is a catalog of connected identities that utilizes cryptographic Proofs to link profiles. + + + +## Adding QRL address to Keybase + +To add your QRL address to your Keybase profile, in the Keybase app click on the *Add more identities* button, and enter your QRL address. When you click the *Authorize* button you’ll be presented with a page like this: + +![keybase qrl authorize](assets/keybaseQRL_Main.png) + + +This contains your Signature Hash, a cryptographic Proof, that needs recording in the QRL blockchain using our message transaction type. + +The easiest way to achieve this is using the new Keybase tools section of the QRL web wallet at [wallet.theqrl.org](https://wallet.theqrl.org) or the desktop version downloaded from [https://theqrl.org](https://theqrl.org) or [Github](https://github.com/theQRL/qrl-wallet) + +![Tools Icon in the wallet](assets/tools_icon.png) + +Tools icon in the wallet sidebar + + +![Tools bar](assets/tools_bar.png) + +![Add Keybase TX](assets/AddKeybaseTx.png) + + +Enter your keybase username, paste the Keybase signature hash into the box, and click *Create Keybase Transaction*. When the transaction is complete, you’ll see confirmation: + +![tools bar](assets/txStatus.png) + + +Looking on the [Explorer](https://explorer.theqrl.org) you’ll see a record of your Keybase message transaction: + +![tools bar](assets/TxExplorer.png) + + +Once this is visible in the Explorer, you’re good to go back to the QRL/Keybase link page and click *Submit:* + +![tools bar](assets/KeyBaseFinished.png) + + +Congrats, you have now linked your QRL address to your [keybase.io](https://Keybase.io) profile cryptographically. \ No newline at end of file diff --git a/docs/Use/Tools/Integrations/league-of-entropy/_league-of-entropy.md b/docs/Use/Tools/Integrations/league-of-entropy/_league-of-entropy.md index d0b20d2..1ac6d6b 100644 --- a/docs/Use/Tools/Integrations/league-of-entropy/_league-of-entropy.md +++ b/docs/Use/Tools/Integrations/league-of-entropy/_league-of-entropy.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: League of Entropy sidebar_position: 1 pagination_label: League of Entropy -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Integrations/league-of-entropy/_league-of-entropy.md description: League of Entropy keywords: - docs diff --git a/docs/Use/Tools/crystals/_crystals-keys.md b/docs/Use/Tools/crystals/_crystals-keys.md index c733c58..8c66edd 100644 --- a/docs/Use/Tools/crystals/_crystals-keys.md +++ b/docs/Use/Tools/crystals/_crystals-keys.md @@ -7,7 +7,7 @@ hide_table_of_contents: false sidebar_label: Crystals Keys sidebar_position: 1 pagination_label: Crystals Keys -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/crystals/_crystals-keys.md description: Crystals Keys keywords: - docs diff --git a/docs/Use/Tools/crystals/_key-generation.md b/docs/Use/Tools/crystals/_key-generation.md index 37483eb..de2ccd7 100644 --- a/docs/Use/Tools/crystals/_key-generation.md +++ b/docs/Use/Tools/crystals/_key-generation.md @@ -9,7 +9,7 @@ sidebar_position: 1 toc_min_heading_level: 3 toc_max_heading_level: 6 pagination_label: Crystals Key Generation -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/crystals/_key-generation.md description: Crystals Key Generation keywords: - docs diff --git a/docs/Use/Tools/ems/_ems-overview.md b/docs/Use/Tools/ems/_ems-overview.md index c6e2ea9..fdce1bc 100644 --- a/docs/Use/Tools/ems/_ems-overview.md +++ b/docs/Use/Tools/ems/_ems-overview.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: Ephemeral Message System Overview sidebar_position: 1 pagination_label: Ephemeral Message System Overview -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/ems/_ems-overview.md description: Ephemeral Message System Overview keywords: - docs diff --git a/docs/Use/Tools/ems/_ephemeral.md b/docs/Use/Tools/ems/_ephemeral.md index 47d9528..4ffadaf 100644 --- a/docs/Use/Tools/ems/_ephemeral.md +++ b/docs/Use/Tools/ems/_ephemeral.md @@ -7,7 +7,7 @@ hide_table_of_contents: false sidebar_label: QRL Ephemeral sidebar_position: 1 pagination_label: QRL Ephemeral -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/ems/_ephemeral.md description: QRL Ephemeral keywords: - docs diff --git a/docs/Use/Tools/nft/_mint-nft.md b/docs/Use/Tools/nft/_mint-nft.md index 92ae865..7f54bd6 100644 --- a/docs/Use/Tools/nft/_mint-nft.md +++ b/docs/Use/Tools/nft/_mint-nft.md @@ -7,7 +7,7 @@ hide_table_of_contents: false sidebar_label: QRL NFT - Mint sidebar_position: 2 pagination_label: QRL NFT - Mint -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/nft/_mint-nft.md description: Mint QRL Non-Fungable Tokens keywords: - docs diff --git a/docs/Use/Tools/nft/_nft-metadata.md b/docs/Use/Tools/nft/_nft-metadata.md index 1be5e88..7adfbe0 100644 --- a/docs/Use/Tools/nft/_nft-metadata.md +++ b/docs/Use/Tools/nft/_nft-metadata.md @@ -7,7 +7,7 @@ hide_table_of_contents: false sidebar_label: QRL NFT - Metadata sidebar_position: 4 pagination_label: QRL NFT - Metadata -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/nft/_nft-metadata.md description: QRL Non-Fungable Token Metadata keywords: - docs diff --git a/docs/Use/Tools/nft/_nft.md b/docs/Use/Tools/nft/_nft.md index 4431045..f5d6bc7 100644 --- a/docs/Use/Tools/nft/_nft.md +++ b/docs/Use/Tools/nft/_nft.md @@ -7,7 +7,7 @@ hide_table_of_contents: false sidebar_label: QRL NFT sidebar_position: 1 pagination_label: QRL NFT -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/nft/_nft.md description: QRL NFT - Non-Fungable Tokens keywords: - docs diff --git a/docs/Use/Tools/nft/_transfer-nft.md b/docs/Use/Tools/nft/_transfer-nft.md index 96f3761..ccaeea3 100644 --- a/docs/Use/Tools/nft/_transfer-nft.md +++ b/docs/Use/Tools/nft/_transfer-nft.md @@ -7,7 +7,7 @@ hide_table_of_contents: false sidebar_label: QRL NFT - Transfer sidebar_position: 3 pagination_label: QRL NFT - Transfer -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/nft/_transfer-nft.md description: Transfer QRL Non-Fungable Tokens keywords: - docs diff --git a/docs/Use/Tools/notarize/notarization.md b/docs/Use/Tools/notarize/notarization.md index 0ec7c09..e688656 100644 --- a/docs/Use/Tools/notarize/notarization.md +++ b/docs/Use/Tools/notarize/notarization.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: Overveiw sidebar_position: 1 pagination_label: Notarization - Overview -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Tools/notarize/notarization.md description: QRL Notarization keywords: - docs diff --git a/docs/Use/Wallet/Ledger/backup-ledger-addreses.md b/docs/Use/Wallet/Ledger/backup-ledger-addreses.md index f16fa33..340dc0d 100644 --- a/docs/Use/Wallet/Ledger/backup-ledger-addreses.md +++ b/docs/Use/Wallet/Ledger/backup-ledger-addreses.md @@ -7,7 +7,7 @@ hide_table_of_contents: false sidebar_label: Backup & Restore sidebar_position: 3 pagination_label: Backup & Restore -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Wallet/Ledger/backup-ledger-addreses.md description: Backup and restore a Ledger QRL address keywords: - docs diff --git a/docs/Use/Wallet/Mobile/backup-wallet.md b/docs/Use/Wallet/Mobile/backup-wallet.md index 53214bb..025a5d5 100644 --- a/docs/Use/Wallet/Mobile/backup-wallet.md +++ b/docs/Use/Wallet/Mobile/backup-wallet.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: Backup sidebar_position: 4 pagination_label: Mobile Wallet - Backup -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Wallet/Mobile/backup-wallet.md description: The QRL Mobile Wallet backup guide keywords: - docs diff --git a/docs/Use/Wallet/Mobile/create-new-wallet.md b/docs/Use/Wallet/Mobile/create-new-wallet.md index 1687629..154990c 100644 --- a/docs/Use/Wallet/Mobile/create-new-wallet.md +++ b/docs/Use/Wallet/Mobile/create-new-wallet.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: New sidebar_position: 3 pagination_label: Mobile Wallet - New -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Wallet/Mobile/create-new-wallet.md description: The QRL Mobile new address creation keywords: - docs diff --git a/docs/Use/Wallet/Mobile/mobile-wallet.md b/docs/Use/Wallet/Mobile/mobile-wallet.md index 1af0251..70811aa 100644 --- a/docs/Use/Wallet/Mobile/mobile-wallet.md +++ b/docs/Use/Wallet/Mobile/mobile-wallet.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: Overview sidebar_position: 1 pagination_label: Mobile Wallet - Overview -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Wallet/Mobile/mobile-wallet.md description: The QRL Mobile Wallet documentation keywords: - docs diff --git a/docs/Use/Wallet/Mobile/open-wallet.md b/docs/Use/Wallet/Mobile/open-wallet.md index babe982..48ec4b7 100644 --- a/docs/Use/Wallet/Mobile/open-wallet.md +++ b/docs/Use/Wallet/Mobile/open-wallet.md @@ -6,7 +6,7 @@ hide_table_of_contents: false sidebar_label: Open sidebar_position: 5 pagination_label: Mobile Wallet - Open -custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/ +custom_edit_url: https://github.com/theqrl/documentation/edit/main/docs/Use/Wallet/Mobile/open-wallet.md description: Open an address using the QRL Mobile app keywords: - docs diff --git a/sidebars.js b/sidebars.js index df7e636..6c32e82 100644 --- a/sidebars.js +++ b/sidebars.js @@ -353,6 +353,23 @@ const sidebars = { collapsible: true, // Set the category to be collapsible collapsed: true, // Set the category to be initially collapsed or open by default }, + { + type: 'category', + label: 'Integrations', + link: { + type: 'generated-index', + title: 'QRL Integrations', + description: 'QRL integrations with other projects.', + slug: '/use/tools/integrations', + keywords: ['integrations'], + image: '/assets/img/icons/yellow.png', + }, + items: [ + 'Use/Tools/Integrations/keybase/keybase', + ], + collapsible: true, // Set the category to be collapsible + collapsed: true, // Set the category to be initially collapsed or open by default + }, ], collapsible: true, // Set the category to be collapsible collapsed: true, // Set the category to be initially collapsed or open by default @@ -384,8 +401,10 @@ const sidebars = { 'Build/security', 'Build/Docker/qrl-docker', 'Build/Mining/qrandomx', + 'Build/Mining/qrl-pool-setup', 'Build/QIP/qip-overview', 'Build/QRL-CLI/qrl-cli', + 'Build/qrl-private-network', { // Fundamentals// type: 'category', label: 'QRL Fundamentals', diff --git a/static/_redirects b/static/_redirects index 6ef67ad..11e0cfb 100644 --- a/static/_redirects +++ b/static/_redirects @@ -8,6 +8,7 @@ /developers/integrationTests https://github.com/theQRL/integration_tests /developers/knownIssues /use/wallet/ledger/known-issues /developers/ots /build/fundamentals/ots-keys +/developers/privatenetwork /build/private-network /developers/pyqryptonight https://github.com/theQRL/qryptonight /developers/qrl-cli /build/qrl-cli/overview /developers/walletAPI /api/wallet-api @@ -17,7 +18,7 @@ /mining/full-node /use/mining/solo-mining /mining/mining /use/mining/overview /mining/pool-mining /use/mining/pool-mining -/mining/pool /use/mining/overview +/mining/pool /build/mining/qrl-pool-setup /mining/pools /use/mining/overview /mining/testnetPool /use/mining/overview /node/QRLnode /use/node/installation @@ -26,6 +27,7 @@ /node/docker /build/docker/overview /node/testnetNode /tutorials/node/dual-node-host#testnet-node /tools/github https://www.github.com/theQRL/ +/tools/keybase /use/tools/integrations/keybase /tools/messages /build/messages/message-tx-encoding /tools/notarisation /use/tools/notarize/overview /wallet/basics /use/wallet/overview