diff --git a/docs/buy-pkt.md b/docs/buy-pkt.md index f6045b9..f329701 100644 --- a/docs/buy-pkt.md +++ b/docs/buy-pkt.md @@ -6,5 +6,5 @@ To buy PKT on Base: * If you already have Ethereum, but need to convert it to Ethereum on Base, you can use a bridge [here](https://bridge.base.org/deposit). * Once you have Ethereum on Base, you can swap PKT directly in your web3 wallet. -!!! note "NOTE" +!!! info "NOTE" If you already own PKT from the Packetcrypt proof-of-work coin, you are eligible to claim your 1:1 PKT airdrop on Base here. You will be eligible to claim ⅓ of your PKT airdrop now, ⅓ on February 21, 2025, and ⅓ on August 21, 2025. \ No newline at end of file diff --git a/docs/infra/exit-node.md b/docs/infra/exit-node.md index 4c59d82..ce4b4d2 100644 --- a/docs/infra/exit-node.md +++ b/docs/infra/exit-node.md @@ -1 +1,305 @@ # Setup a VPN Exit Node + +This guide will help you set up a CJDNS node with PKT wallet and the following services: You can follow the [steps](/infra/vpn-exit/) to set up the server or read more about the process and [services](/infra/vpn/) involved. + +* [AnodeVPN server](https://github.com/anode-co/anodevpn-server){:target="_blank"} +* [IKEv2 Ipsec VPN server](https://github.com/hwdsl2/setup-ipsec-vpn){:target="_blank"} +* [OpenVPN server](https://ubuntu.com/server/docs/how-to-install-and-use-openvpn){:target="_blank"} +* [SNI proxy](https://github.com/dlundquist/sniproxy){:target="_blank"} + + +!!! danger "Requirements" + + * A server running debian based Linux (preferably Ubuntu 22.04) + * Install docker + + +https://docs.docker.com/engine/install/ubuntu/ * Install jq + +```console +sudo apt-get install jq +``` + +## Steps + +* Create a data directory where the server configuration will be stored. + + ```console + mkdir vpn_data + ``` + +* Configure the server by running the following command: + + ```console + docker run -it --rm -v $(pwd)/vpn_data:/data pkteer/pkt-server /configure.sh + ``` + +* Configure various service by running the following command: + + ```console + ./vpn_data/setup.sh + ``` + + The script will prompt you to set up various flags and values needed for setting up the services the first time. + +* Run the server by running the following commands: + + ```console + ./vpn_data/start-vpn.sh + ``` + + !!! info "NOTE" + It can take a few minutes on the first run for the server to set up all the services. + + +## Monitoring the server + +You can view the progress of the server by running: +```console +docker logs -f pkt-server +``` + +You can also check the status of all services by running: +```console +./vpn_data/status.sh +``` + +or using the AnodeVPN API: +```console +http://[server]:8099/api/0.4/server/status/ +``` + +## Understanding the process +### Configuration + +The `configure.sh` script is designed to set up and configure the server environment. Below is a detailed explanation of its functionality: + +#### Initialization and Default Values: + +The script initializes several flags and variables with default values: + +* __no_vpn_flag__: Indicates whether VPN should be disabled (default: false). +* __cjdns_flag__: Indicates whether CJDNS should be enabled (default: true). +* __with_pktd_flag__: Indicates whether PKTD should be enabled (default: false). +* __pktd_passwd__: Stores the PKTD password (default: empty). +* __pktd_user__: Stores the PKTD username (default: "x"). + +#### Configuration File Handling: + +The script checks if the configuration file `/data/config.json` exists. If it does, it reads the existing configuration; otherwise, it copies a template configuration from `/server/config.json` to `/data/config`.json. + +#### Configuration Synchronization: + +If the configuration file exists, the script ensures that all fields from the template configuration are present in the existing configuration. Missing fields are added with their default values from the template. + +#### Flag Parsing: +The script parses command-line arguments to set various flags: + +* __--no-vpn__: Disables VPN. +* __--with-pktd__: Enables PKTD. +* __--pktd-passwd=__: Sets the PKTD password. + +#### Configuration Modification: +Based on the parsed flags, the script modifies the configuration: Sets the VPN exit status based on *no_vpn_flag*. Enables or disables PKTD based on *with_pktd_flag*. Generates a random PKTD password if none is provided. Updates the PKTD username and password in the configuration. + +#### PKT Wallet Initialization: +Starts the PKT Wallet daemon and checks if a wallet already exists. If not, it creates a new wallet and unlocks it. + +#### VPN Server Configuration: +Retrieves the PKT Wallet secret for the VPN server and ensures the `cjdroute.conf` configuration file is valid. If the file does not exist, it generates a new one and seeds it with the retrieved secret. + +#### Security Configuration: +Modifies the cjdroute.conf file to set specific security parameters. + +#### Script Deployment: +Finally it copies several utility scripts from the server directory to the data directory for further use. + +### Initialization + +The `init.sh` starts everytime the docker container is launched and is responsible for setting up and initializing various services and configurations on the server. + +1. __Server Configuration Check__: It first checks if the server has already been configured by looking if cjdroute.conf exists. If the file is not found, the script exits. +2. __User Creation__: It creates two users, cjdns and speedtest. They are used for running the cjdns and speed-test (iperf3) services, respectively. +3. __Configuration Updates__: It reads the config.json configuration file and updates several configuration settings related to different services. +4. __PKT Wallet Initialization__: It starts the PKT Wallet service and checks if a wallet already exists. If the wallet exists, it attempts to unlock it. If the unlock request times out, it restarts the wallet service. +5. __Cjdns Service__: If cjdns is enabled, it sets up the necessary environment and starts the cjdns service. It also configures network settings and firewall rules to allow cjdns to function properly. +6. __PKTD Service__: If PKTD is enabled, it constructs and runs the command to start the PKTD service with the appropriate configuration. +7. __Network Interface Check__: It waits for tun0 network interface that is expected to be created by cjdroute to become available and then sets up firewall rules for network traffic. +8. __NFTables Initialization__: It initializes NFTables, which is a framework for packet filtering and network address translation. +9. __VPN Server__: If the VPN server is enabled, it starts the VPN server and sets up the pricing for the VPN service. +10. __Speed Test Service__: It sets up the environment for running speed tests and starts the necessary services. +11. __Cjdns Peers__: It adds peers for the cjdns network, the peers used are set in `/server/cjdnspeers.json` file. +12. __IKEv2 and OpenVPN__: If IKEv2 or OpenVPN are enabled, it runs the respective configuration scripts to set up these VPN services. +13. __Node Exporter__: It starts the Node Exporter service for Prometheus monitoring. +14. __SNI Proxy__: If SNI Proxy is enabled, it starts the SNI Proxy service. +15. __Cron Job for Payments__: It adds a cron job to handle payments on a weekly basis. +16. __Watchdog Service__: If cjdns is enabled, it starts a watchdog service to monitor and maintain the cjdns service the AnodeVPN server and other services depending on the configuration of the server. +17. __Keep-Alive__: Finally, it keeps the container running indefinitely by tailing `/dev/null`. + +### Monitoring with watchdog + +The `watchdog.sh` is monitoring the cjdroute service and if it stops it will restart it, when the cjdroute is restarted the AnodeVPN server is also restarted. + +It will also check for the `pluto` service which is the IKEv2 Ipsec VPN server and if it stops it will restart it. Similarly for the `openvpn` service. + +Finally the watchdog also checks the validity of vpnclients created by the AnodeVPN server and if their time has expired it will remove them. + +### Checking the status + +You can check the status of the services at any time either by running + + ```console + vpn_data/status.sh + ``` + +or by using the AnodeVPN API: + + ```console + http://[server]:8099/api/0.4/server/status/ + ``` + +Next to each service you will see the process id if that service is running, otherwise it will be `0`. e.g. + + { + "hostname": "kraut2.pkteer.com", + "pktwallet": 67, + "cjdns": 82, + "anodeserver": 114, + "ikev2": 4012, + "openvpn": 4135, + "watchdog": 4116, + "date_time": "2024-07-17 10:08:19" + } + + +## Understanding the services and files + +### Launching the server + +The `vpn_data/start-vpn.sh` and `vpn_data/start.sh` scripts are designed to set up and run a VPN server using Docker. Here's a step-by-step explanation of what the script does: + +* __Environment Setup__: It checks for the presence of necessary commands (jq, dirname, and docker). If any of these commands are missing, the script exits with an error message. +* __Directory Navigation__: It changes the working directory to the location of the script. +* __Cjdns Port Extraction__: It reads the cjdroute.conf file to extract the port number used by the cjdjns service. If the port number is not found in the expected format, it attempts to extract it using an alternative method. +* __Configuration Reading__: It reads the config.json file to get the region and city information. If either the region or city is not specified, the script exits with an error message. +* __Cjdns RPC Port Setup__: If the cjdns RPC (Remote Procedure Call) is enabled, it extracts the RPC port from the cjdroute.conf file and updates the configuration to expose the RPC port. +* __Docker Container Execution__: It runs a Docker container with various configurations: + +Sets the timezone based on the region and city defined in `vpn_data/config.json`. Configures logging, network capabilities, and device access. Sets system control parameters for IPv6 and IPv4 forwarding. Maps several ports for different services: + +* reads the CJDNS port from the cjdroute.conf file and maps it to the host. +* 5201 port for the speed-test (iperf3) service. +* 64764 to the host for pktd service. +* 443 for the SNI Proxy service. +* 80 for the SNI Proxy service. +* 500 for the IKEv2 Ipsec VPN server (pluto service). +* 4500 for the IKEv2 Ipsec VPN server (pluto service). +* 943 for the OpenVPN server. +* 1194 for the OpenVPN server. + +Mounts necessary directories for data persistency and configuration files. + +* /etc/openvpn to vpn_data/openvpn. +* /server/vpnclients to vpn_data/vpnclients. +* /data to vpn_data where the configuration files are stored, `cjdroute.conf` and `config.json` and others. + +Optionally maps the CJDNS RPC port if it is enabled. Runs the container in detached mode with elevated privileges. The script ensures that all necessary configurations are in place and starts the VPN server within a Docker container, making it ready for use. + +### Cjdns + +Cjdns is running on the server using a generated `cjdroute.conf` file. + +* The `cjdroute.conf` file is generated by the configure script +* It is being launched by the init script which is run on the server start. +* For persistency the file is stored in the `vpn_data` directory and used by the cjdns service. + +You can manually edit the file to add more cjdns peers. + +!!! info "Note" + Changing other parts of the configuration manually may end up breaking the service. + + * Wathdog is configured to keep cjdns running all the time. If the service stops, the watchdog will restart it. + * If cjdroute is for some reason stuck or frozen you can kill it by running + + `docker exec -it pkt-server killall cjdroute` + + and the watchdog will restart it. + + +### AnodeVPN Server + +The server is running the AnodeVPN server to authorize clients and offer API access to the VPN services such as: + +* Add domain to SNI proxy + + `http://[server]:8099/api/0.4/server/domain/add/` + + ```console + json { "domain": "example.com", "cjdnsIpv6": "fc00:0000:0000:0000:0000:0000:0000:0001" } + ``` + +* Remove domain from SNI proxy + + `http://[server]:8099/api/0.4/server/domain/remove/` + + ```console + json { "domain": "example.com", "cjdnsIpv6": "fc00:0000:0000:0000:0000:0000:0000:0001" } + ``` + +* Request new PKT address + + `http://[server]:8099/api/0.4/server/premium/address/` + + ```console + json {} + ``` + +* Request new client VPN certificates + + `http://[server]:8099/api/0.4/server/vpnaccess/` + + ```console + json { "address": "pkt1...." } + ``` + + +For more details see the [AnodeVPN](https://anode.co/#/){:target="_blank"} + + +### IKEv2 Ipsec VPN Server + +The IKEv2 Ipsec VPN server is running on the server and is used to provide VPN services to clients with access to cjdns network. + +For setting up the server the init script will launch the `vpn_configure.sh` if the `ikev2:enabled` flag is set to true, which will set up the server. + +We also use the `ikev2.sh` script to add/remove clients through the AnodeVPN API. The files generated are copied in `server/vpnclients` directory which is mapped to `vpn_data/vpnclients/` on the docker host. + +For more details look into the `setup-ipsec-vpn` documentation for configuring the server, managing clients and troubleshooting. + +!!! info "NOTE" + Unfortunately although IKEv2 clients can connect to the server from a Windows client and get VPN access, the clients are not able to access the CJDNS network. This is a known issue and we are working on a solution, for this reason we have added the OpenVPN server as an alternative for Windows users. + + +### OpenVPN Server + +The openvpn is initialized by the init script if the `openvpn.enabled` flag is set to true in `config.json` and is used to provide VPN services to clients with access to cjdns network. + +The server is configured using the `openvpn_configure.sh` which is used to generate the certificates needed. + +Then for adding new clients the `createOpenVpnClient.sh` script is used by the AnodeVPN Server API to generate the client certificates and keys. The files are stored in the `vpn_data/vpnclients/` directory and can be used to connect to the server. + +!!! info "NOTE" + The OpenVPN server is running on the server and is used to provide VPN services to clients with access to cjdns network. This was added on top of the IKEv2 for Windows users to be able to access the cjdns network, but it can be used by any OpenVPN client on any platform. + + +### SNI Proxy + +Proxies incoming HTTP and TLS connections based on the hostname contained in the initial request of the TCP session. This enables websites that are hosted on CJDNS network to become available via HTTPS name-based virtual hosting. + +The SNI proxy will start if the `sniproxy.enabled` flag is set to true in the `config.json` file. + +The sniproxy is using the `sniproxy.conf` file to route the requests to the correct server. + +The server contains the default configuration for the sniproxy and is being edited by the `adddomain.sh` and `removedomain.sh` scripts which are used by the AnodeVPN API to add and remove domains respectively from the proxy. + +For troubleshooting you can view the sniproxy logs. The access log is stored in `vpn_data/sniproxy-access.log` and the error log is stored in `vpn_data/sniproxy-error.log`. \ No newline at end of file diff --git a/docs/tokenomics/burned-coin-recapture-reconciliation.md b/docs/tokenomics/burned-coin-recapture-reconciliation.md index 43b8876..3d03477 100644 --- a/docs/tokenomics/burned-coin-recapture-reconciliation.md +++ b/docs/tokenomics/burned-coin-recapture-reconciliation.md @@ -1 +1,8 @@ -# Burned Coin Recapture Reconciliation \ No newline at end of file +# Burned Coin Recapture Reconciliation + +| Burned Coins: 705 million | | | +|:----------|----------:|----------:| +| Yield Vault - LP Staking | 365,000,000 | 51.77% | +| Developer Fund | 240,000,000 | 34.05% | +| Marketing Fund - Multi-Sig | 100,000,000 | 14.18% | +| __TOTAL__ | __705,000,000__ | __100.00%__ | \ No newline at end of file diff --git a/docs/tokenomics/initial-distribution.md b/docs/tokenomics/initial-distribution.md index c8bc0bc..3125206 100644 --- a/docs/tokenomics/initial-distribution.md +++ b/docs/tokenomics/initial-distribution.md @@ -1 +1,17 @@ -# Initial Distribution \ No newline at end of file +# Initial Distribution + +| Airdrop | | | +|:----------|----------:|----------:| +| Airdrop-1 : August 21, 2024 | 1,539,745,525 | 25.50% | +| Airdrop-2 : February 21, 2025 | 1,539,745,525 | 25.50% | +| Airdrop-3 : August 21, 2025 | 1,539,745,525 | 25.50% | +| __TOTAL__ | __4,619,236,575__ | __76.67%__ | + +| Allocations | | | +|:----------|----------:|----------:| +| Yield Vault Contract | 1,266,383,721 | 21.67% | +| Marketing Fund | 115,000,000 | 1.66% | +| __TOTAL__ | __1.4B__ | __23.33%__ | + + +The total supply of PKT is 6B tokens. \ No newline at end of file diff --git a/docs/tokenomics/migration-airdrop.md b/docs/tokenomics/migration-airdrop.md index 27b4f24..d8e6616 100644 --- a/docs/tokenomics/migration-airdrop.md +++ b/docs/tokenomics/migration-airdrop.md @@ -1 +1,7 @@ -# Migration Airdrop \ No newline at end of file +# Migration Airdrop + +All PacketCrypt proof-of-work mined coin supply (“PoW”) holders are eligible to migrate their coins to PKT on Base. Eligible migrated coins will be airdropped on a 1:1 basis, based on a snapshot taken on August 21, 2024 at 8am Pacific Daylight Time (“Snapshot”). + +One third (⅓) of each eligible PoW coin holder’s wallet balance will be redeemable in a 3 phase migration airdrop. In Phase-1, PoW holders will receive 100% of PoW coins that were on deposit on BitMart and MEXC centralized exchanges at the time of the Snapshot. Coins held on an exchange will be swapped 1:1. For anyone that has coins on the exchange that wants to swap PKT on Base back into their PoW coins can fill out this [form](https://pkt.cash/inquiry/){:target="_blank"} to follow the process to do this. + +1.53B tokens will be eligible for migration in Phase-1 upon Launch. 1.53B tokens will be distributed in Phase-2, 6 months after Phase-1. 1.53B tokens will be distributed in Phase-3, 6 months after Phase-2. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 7bc207d..12e088f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -67,7 +67,7 @@ nav: markdown_extensions: - admonition - toc: - permalink: true + permalink: false - attr_list diff --git a/mkdocs_moonstone/css/extra.css b/mkdocs_moonstone/css/extra.css index eb3e033..bb1fe26 100644 --- a/mkdocs_moonstone/css/extra.css +++ b/mkdocs_moonstone/css/extra.css @@ -63,7 +63,7 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head display: none; } b, strong { - font-family: "Inter-Bold"; + font-family: "Inter-SemiBold"; } /*************************************************** * Header @@ -214,8 +214,11 @@ footer .col > a:focus { border-radius: 3.125rem; vertical-align: middle; } +#sidebar-nav ul ul { + padding: 10px 0 10px 15px; +} #sidebar-nav .navbar-expand-md .navbar-nav .nav-link { - padding-left: 0; + padding: 0; text-transform: uppercase; } #sidebar-nav .navbar-expand-md .navbar-nav .nav-link:before { @@ -223,6 +226,7 @@ footer .col > a:focus { } #sidebar-nav .toplevel .section-title { cursor: pointer; + display: block; } @media screen and (max-width:767px) { #sidebar-nav { @@ -330,6 +334,28 @@ footer .col > a:focus { #main ul li { padding-bottom: 5px; } +#main .admonition ul, +#main .admonition ol { + margin-top: 1.2rem; +} +#main strong { + color: #ffffffcf; +} +#main h3 { + font-size: 1.3rem; + margin-top: 20px; +} +#main table { + border-collapse: separate; + margin:1.2rem 0; +} +#main table thead { + color:#fff; +} +#main table tbody tr td { + border:1px solid silver; + padding: 10px; +} .md-footer-nav { display: -moz-flex; display: -ms-flex; diff --git a/site/PKT_FAQ/index.html b/site/PKT_FAQ/index.html index f2bed47..969f8cb 100644 --- a/site/PKT_FAQ/index.html +++ b/site/PKT_FAQ/index.html @@ -327,18 +327,18 @@ -
This is a community defined FAQ, edit this page to improve it.
--PKT allows users to monetize their unused internet bandwidth. By participating in the PKT Network you are helping to build a faster, stronger, and more secure, decentralized network.
-PKT is a native mined coin based on an open source project. There are multiple companies in the PKT ecosystem but no company "behind PKT."
-
- If you're not mining, the best wallet is PKT Electrum, which was developed as part of a Network Steward funded project and supports Windows, Mac and Linux. However, mining into electrum will break it and if you do it, you will need to export your keys to recover funds.
@@ -348,16 +348,16 @@What wallets are available?#matterfi on pkt.chat.
-Currently there are two ways to buy and sell, you can buy wrapped PKT on pancakeswap and then un-wrap it using the ODAPP (NOTE: in order to use wrapped PKT, you will need Binance Smart Chain BNB to pay gas fees. Also note that ODAPP charges 3.5% when wrapping or unwrapping)
If you would like a more human experience of buying or selling, you can come to ye ol' telegram chat where PKT has been traded since the beginning. Remember that telegram is a place where scammers lurk, so always read and follow the guidelines and always use escrow, even after you have traded with somebody multiple times.
-PKT is a decentralized project like Bitcoin, not a centralized token. Community members are having conversations with different exchanges and you can do it too. There are no more details at this time about the particular listing initiatives.
-The differences from Bitcoin are: PacketCrypt bandwidth hard proof of work replaces SHA-256 @@ -366,99 +366,99 @@
The diffe Mining yields decrease 10% every 100 days in what is called the decimation 20% of each mined block goes to the Network Steward wallet, which funds R&D of the ecosystem
-The PKT project is focused on building a decentralized bandwidth marketplace to decouple the business and technical aspects of internet service from the physical aspect of maintaining infrastructure. The fundamental value is division of labor and lowering the barrier of entry for internet service competition.
-There is an explanation video about Cloud ISPs on Twitter. The role of a Cloud ISP is to perform the technical and administrative aspects of internet service so that the aspects of infrastructure operation can be done by individuals, small businesses and community groups.
-Historically, crypto projects achieve the best results when they are focused on use cases and utility. PKT is focusing on building a decentralized bandwidth marketplace where people can earn PKT with their internet and use PKT to pay for connectivity. The greatest challenge is getting the next billion people connected to the internet.
-A free to use VPN service called AnodeVPN will be launched in 2021, and users can pay for their VPN speed with PKT Cash. Internet bandwidth sharing and mesh networking are also currently in the stages of development.
-PKT is mined using the novel PacketCrypt bandwidth-hard mining algorithm which requires bandwidth to mine. It uses a combination of CPU and bandwidth, you get an advantage by working together with other miners which requires bandwidth.
-As more people mine PacketCrypt, they will need to invest in more network infrastructure which will become useful later on for making the internet faster and more accessible.
-For mining it's recommended to use the command line PKTWallet due to the amount of mining transactions and it's ability to scale. If you use a Mac then you can also use the PKT-Cash-Wallet for MacOS.
-There are mining instructions for mining on the PKT website. PktPal is a business in the community which offers turn-key mining solutions.
-Multi-pool mining means submitting the exact same announcements to multiple pools. So if you have the bandwidth available it will always benefit you to mine in all of the major pools.
-The Network Steward is part of the consensus rules of the PKT blockchain. 20% of every newly mined block goes to a wallet address and then those coins are 100% paid out in grants to help build open-source technology and develop the PKT Network. Network Steward funds must be deployed within 90 days or else they are burned. This address was initially set to a multi-signature group, but it can be changed by a PoS based vote process.
-A group of 5 volunteers including the original author of the code. More information can be found [here]: (https://pkt.cash/network-steward)
-The Network Steward follows a project evaluation process.
No funds have ever been deployed except to fund projects which were proposed by members of the public in an open competitive process. The Network Steward operates with full transparency. Every transaction made by the Network Steward can be seen in the block explorer and is refered to in the Network Steward's github repository explaining the project which that transaction helped to fund.
-You can check out the stats on burned coins in the block explorer Network Steward page.
-There are currently two ways to propose a project to the PKT Network Steward, if your project is large and has the benefit of accountants to be able to verify that the money has been spent appropriately, you can make a proposal directly to the NS through the NS github Network Steward's Github. The NS opens calls from time to time with a specified budget and during these calls anyone can apply. If you want to propose a smaller project and have the accounting and official reporting managed for you, you can propose to the User Operated Internet fund which is funded by the Network Steward but is administored by NLnet, a well respected public benefit organization which is experienced at managing these types of projects.
-PKT was created by Caleb James DeLisle, the creator of cjdns. Cjdns is the only decentralized mesh networking protocol which is designed to function in even if some of the nodes in the network are adversarial. Caleb has been mining PKT similarly to everybody else in the project.
-The early miners and adopters of PKT will benefit greatly. PKT also benefits everybody because it will lead to a lower cost and highly competitive internet service ecosystem.
-PKT is a fully decentralized fork of Bitcoin, so it is similarly considered to be a commodity.
-Because PKT is a fully decentralized clone of the Bitcoin codebase, the legal and regulatory framing is probably similar.
-PKT is a decentralized project so there is no official brand for PKT, however the website pkt.cash, logos, and other materials were developed as part of a Network Steward funded project and are usable under the Creative Commons license.
-PKT is not a centralized project so anybody can be an ambassador. There are a number of companies and initiatives which currently exist in the PKT ecosystem including AnodeVPN and Pkt Pal.
-You are the PKT team, PKT is a fully decentralized project like Bitcoin, so everyone is the team. The bad news is there is no central authority who can write you a check, but the good news is there are a few businesses in the PKT ecosystem who might be prepared to buy your services. See PKT Commercial for a (non-exhaustive) list.
diff --git a/site/adv_learning/buy-pkt/index.html b/site/adv_learning/buy-pkt/index.html index 786d1e7..9ebc880 100644 --- a/site/adv_learning/buy-pkt/index.html +++ b/site/adv_learning/buy-pkt/index.html @@ -327,9 +327,9 @@ -YES, the PKT community encourages all types of (legal, responsible) business activity in the PKT ecosystem. The ODAPP bridge was created by a community member and was not in the original PKT vision but this bridge is now an important part of the infrastructure of the PKT ecosystem. You can also build your commercial venture and the we in the PKT community will do what we can to help you be successful.
Documentation for the PKT project
-There are several wallets which you can choose from, the easiest to set up are
You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.
-PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.
-You can setup a pktd instance using the instructions on pktd.
-To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.
diff --git a/site/adv_learning/cryptoeconomics/index.html b/site/adv_learning/cryptoeconomics/index.html index 83ad363..6b1afac 100644 --- a/site/adv_learning/cryptoeconomics/index.html +++ b/site/adv_learning/cryptoeconomics/index.html @@ -327,7 +327,7 @@ -PKT blockchain is based on the Bitcoin codebase and implements two fundamental changes:
Replacing SHA256 with the PacketCrypt proof of work. Adding a Network Steward that receives 20% of every coinbase payout to provide grants that meets its funding criteria. diff --git a/site/adv_learning/pktd-full-node/index.html b/site/adv_learning/pktd-full-node/index.html index 9923af8..8faec10 100644 --- a/site/adv_learning/pktd-full-node/index.html +++ b/site/adv_learning/pktd-full-node/index.html @@ -327,21 +327,21 @@ -
Pktd is the PKT full node blockchain software. It is a fork of btcd, the golang bitcoin instance.
-If you want to run a full node in the PKT network, you can do so by downloading pktd and compiling
it on a Linux or Mac server. Follow the process in Installation and the simply type
./bin/pktd
and it will start up and begin syncing the chain and helping verify the PKT network.
NOTE: Running a full node requires over 40 GB of disk space to store the blockchain and is not necessary for participating in the project. If you just want to make a wallet, see PKT Electrum (gui) or PKTWallet (command line) wallets.
-First, you need to install the go programming language, go to the golang website and learn how to install it on your system:
https://golang.org/doc/install
-Next you will need to make sure you have git installed. The first thing to do is check whether you have it installed already:
git version @@ -350,7 +350,7 @@
then you’ll need to install it.Install gitcommand not found: git
Installation will depend on your system, for debian/ubuntu like systems you will want
-sudo apt install git
and for OSX with homebrew, you’ll wantbrew install git
.Install the components¶
+Install the components
Once you have golang and git fully installed and set up, you can use the following commands to install pktd, pktwallet and pktctl.
git clone https://github.com/pkt-cash/pktd diff --git a/site/adv_learning/sell-pkt/index.html b/site/adv_learning/sell-pkt/index.html index ded77b0..f6d25c3 100644 --- a/site/adv_learning/sell-pkt/index.html +++ b/site/adv_learning/sell-pkt/index.html @@ -327,9 +327,9 @@ -
PKT Documentation¶
+PKT Documentation
Documentation for the PKT project
-Wallet setup¶
+Wallet setup
There are several wallets which you can choose from, the easiest to set up are
- PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux.
@@ -338,12 +338,12 @@Wallet setup
You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.
-Mining¶
+Mining
PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.
-Running a pktd instance¶
+Running a pktd instance
You can setup a pktd instance using the instructions on pktd.
-Help and Community¶
+Help and Community
To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.
diff --git a/site/adv_learning/swap-pkt-wrapped-pkt/index.html b/site/adv_learning/swap-pkt-wrapped-pkt/index.html index f336084..f91b854 100644 --- a/site/adv_learning/swap-pkt-wrapped-pkt/index.html +++ b/site/adv_learning/swap-pkt-wrapped-pkt/index.html @@ -327,8 +327,8 @@ -How to Swap PKT and Wrapped PKT¶
-Steps to swap PKT to wPKT¶
+How to Swap PKT and Wrapped PKT
+Steps to swap PKT to wPKT
- Buy PKT on Bittrex Global (Non-USA traders) or BitMart (Global traders)
@@ -353,7 +353,7 @@Steps to swap PKT to wPKTSteps to swap wPKT to PKT¶
+Steps to swap wPKT to PKT
- You should already have either purchased wPKT on PancakeSwap or swapped your PKT into wPKT
- Please note there is a %.075 fee associated with swapping
diff --git a/site/affiliate/index.html b/site/affiliate/index.html index 4dc9869..9d4a638 100644 --- a/site/affiliate/index.html +++ b/site/affiliate/index.html @@ -327,7 +327,7 @@ -Affiliates Rewards¶
+Affiliates Rewards
PKT also has an affiliate program built into the protocol. Each connected wallet receives an affiliate code. If an individual (Affiliate-2) stakes using an affiliate code from someone (Affiliate-1), then Affiliate-2 receives a 1% yield bonus, in perpetuity. Affiliate-1, who provided the affiliate code, receives a 4% yield bonus on the stake of Affiliate-2, in perpetuity.
Affiliate-1 also receives a 1% yield bonus, in perpetuity, on the stake of anyone that Affiliate-2 provides their affiliate code to. These rewards incentivize organic growth within the ecosystem, while scaling the network worldwide.
diff --git a/site/airdrop/index.html b/site/airdrop/index.html index 29ceb81..bc7234a 100644 --- a/site/airdrop/index.html +++ b/site/airdrop/index.html @@ -327,8 +327,8 @@ -Migration Airdrop¶
-How to claim Airdrop¶
+Migration Airdrop
+How to claim Airdrop
If you own PacketCrypt proof-of-work (“PoW”) coins you will need to swap into tokens of PKT on Base. All PacketCrypt.
- Install a Web3 wallet like MetaMask or Coinbase Wallet
diff --git a/site/buy-pkt/index.html b/site/buy-pkt/index.html index 24fa2a5..14f7d94 100644 --- a/site/buy-pkt/index.html +++ b/site/buy-pkt/index.html @@ -327,7 +327,7 @@ -How to Buy PKT¶
+How to Buy PKT
To buy PKT on Base:
-
- First you need Ethereum on Base in your web3 wallet. If you don’t have a web3 wallet, get a Coinbase Wallet or MetaMask wallet here.
@@ -335,7 +335,7 @@How to Buy PKThere.
- Once you have Ethereum on Base, you can swap PKT directly in your web3 wallet.
+diff --git a/site/cjdns_websites/index.html b/site/cjdns_websites/index.html index df90561..24ad873 100644 --- a/site/cjdns_websites/index.html +++ b/site/cjdns_websites/index.html @@ -327,7 +327,7 @@ -NOTE
If you already own PKT from the Packetcrypt proof-of-work coin, you are eligible to claim your 1:1 PKT airdrop on Base here. You will be eligible to claim ⅓ of your PKT airdrop now, ⅓ on February 21, 2025, and ⅓ on August 21, 2025.
Setup your website on cjdns network¶
+Setup your website on cjdns network
- Install Yunohost by following the detailed instructions provided here.
- Once the installation is complete, log in as an administrator at
diff --git a/site/commercial/index.html b/site/commercial/index.html index c0eb695..7ed39a9 100644 --- a/site/commercial/index.html +++ b/site/commercial/index.html @@ -327,24 +327,24 @@ -yunohost.local
. Perform a system update, which may take some time.PKT Commercial¶
+PKT Commercial
This is a mostly un-moderated list of classified advertisements and offers. Buyer beware, anyone can contribute their own offer and pkt.cash does not verify them.
-Add yourself¶
+Add yourself
Make a Pull Request to This page to add your offer.
-
- Keep it short and to the point
- NO PICTURES, no color text, no big fonts
- Use the appropriate category
Hardware¶
-Pktpal.com¶
+Hardware
+Pktpal.com
Buy a PKT Cube which will mine PKT with your unused internet and provides easy-to-use PkteerOS wallet.
-Hosting¶
-Space-hosting.net¶
+Hosting
+Space-hosting.net
Mining servers for rent
-PKT Cloud Mining Service¶
-AMAPOOL.com¶
+PKT Cloud Mining Service
+AMAPOOL.com
Your best choice towards a fully automated PKT cloud mining solution.
diff --git a/site/communication/index.html b/site/communication/index.html index 4eabf28..9501220 100644 --- a/site/communication/index.html +++ b/site/communication/index.html @@ -327,12 +327,12 @@ -
Ethical Communication Guidelines¶
+Ethical Communication Guidelines
This is a guideline for ethical communications about the project. It is recognized that to accomplish the goals, it is imperative that there is a community who understands and uses the technology, so communication cannot be avoided. However, poor communication, even made with the best intentions, risks harming the reputation of the project and the general public. So these guidelines exist to help community members represent the project in the best way possible.
-A Far Higher Standard¶
+A Far Higher Standard
Within the cryptocurrency ecosystem, there are a significant number of outright criminal activities. Beyond those there is a wide grey area of communication activities which have not been subject to any regulatory enforcement, but still fall far outside of what these guidelines establish as ethical.
Community members are cautioned that due to the scale of these "grey" activities, there is a large body of publications, influencers, marketers, "shills" and other professionals who, if consulted or emulated, are highly likely to put a person in ethical peril, because these guidelines establish a far higher standard of communication ethics than that which is generally considered to be legal.
-Principle of No Expected Return¶
+Principle of No Expected Return
It is acknowledged that buying, selling and mining are central aspects of cryptocurrency use, so it is difficult to effectively communicate about the project without ever addressing reasons why a person might do these things. Therefore these guidelines offer a pre-approved narrative which is considered to be maximally protective of the reputation of the project while also providing a healthy perspective regarding the risks associated with cryptocurrency.
The Principle of No Expected Return is that one should buy or mine a cryptocurrency if and only if they believe strongly enough in the vision of the project that they would be proud to own the coin even if they were never able to sell it. In the early days of Bitcoin, it was widely believed that it would be legislated out of existence or otherwise collapse, and so this principle was pervasive throughout the community. Many people chose to hold Bitcoin as a political statement regarding the morality of modern financial institutions, especially after the 2008 financial crisis.
The key components of the Principle of No Expected Return are: @@ -340,7 +340,7 @@
Principle of No Expected Return
+When you’re considering buying a coin, you need to ask yourself: If you were to lose everything you put into a coin, would you look back on the day you bought it, proud to have been a part of the project at that time? If the answer is no, then you’re either planning to buy too much, or you’re just not ready.
-Guidelines¶
+Guidelines
Dishonest, intentionally misleading, or otherwise unlawful communication is obviously unethical, but beyond that there is no clear definition for unethical communication, though one could characterise it in the words of Justice Stewart, "I know it when I see it". These non-exhaustive guidelines exist to give community members an understanding of the types of communication which are most likely to be unethical. They are listed in order of importance with the most important first.
- Communications which follow the letter, but not the spirit, of these guidelines are unethical. One example of this is token disclaimers such as "this is not financial advice". Disclaimers can be useful for helping a person understand the limitations and caveats of a communication, but a token disclaimer exists more to make the communicator seem innocent than to help the audience have a clearer understanding. The use of fine print, or disclaimers which "feel out of place" in the overall communication should be regarded as red flags, and communicators using these should review the objectives of their message and whether it is being communicated clearly.
@@ -350,7 +350,7 @@GuidelinesExamples to Avoid¶
+Examples to Avoid
These passages are examples of the type of communication which is likely to be problematic. Context is key, and in the context of a communication which clearly transmits an ethical core message, a passing mention of money probably does not make the whole communication unethical. But if the core message is not communicated with adequate clarity, then even the slightest mention of topics like the following may make the communication unethical.
While some of these statements may be factual, they share a common narrative that there is an opportunity, it is easy, and it leads to making money. This is a stark contrast from the Principle of No Expected Return.
-Better Examples¶
+Better Examples
Honest communications addressing topics like the following are more likely to be ethical.
- "price has been on the rise, but this can be affected by current events outside the project, so core community members are more focused on continuous progress toward the goal"
diff --git a/site/community/avoid-examples/index.html b/site/community/avoid-examples/index.html index d5899d6..aaf169a 100644 --- a/site/community/avoid-examples/index.html +++ b/site/community/avoid-examples/index.html @@ -331,7 +331,7 @@ -Examples to Avoid¶
+Examples to Avoid
These passages are examples of the type of communication which is likely to be problematic. Context is key, and in the context of a communication which clearly transmits an ethical core message, a passing mention of money probably does not make the whole communication unethical. But if the core message is not communicated with adequate clarity, then even the slightest mention of topics like the following may make the communication unethical.
- "Reaping the rewards for something you put zero effort in."
diff --git a/site/community/better-examples/index.html b/site/community/better-examples/index.html index cd6a2b9..d5fd0ec 100644 --- a/site/community/better-examples/index.html +++ b/site/community/better-examples/index.html @@ -331,7 +331,7 @@ -Better Examples¶
+Better Examples
Honest communications addressing topics like the following are more likely to be ethical.
- "Price has been on the rise, but this can be affected by market events outside the project."
diff --git a/site/community/code_of_conduct/index.html b/site/community/code_of_conduct/index.html index 344e4aa..3468355 100644 --- a/site/community/code_of_conduct/index.html +++ b/site/community/code_of_conduct/index.html @@ -331,7 +331,7 @@ -Code of Conduct¶
+Code of Conduct
- We are here to talk about PKT. If it's not PKT related, don't post it here.
- Not reading the rules is not an excuse for breaking the rules.
@@ -347,7 +347,7 @@Code of ConductContact people¶
Contact people
If someone has made you feel unsafe or unwelcome, please contact one of the admins of the group. We will do our best to address your matter quickly and with discretion.
- Jeremy Berger: telegram:
diff --git a/site/community/ethica-communication-guidelines/index.html b/site/community/ethica-communication-guidelines/index.html index 52fb548..972b07c 100644 --- a/site/community/ethica-communication-guidelines/index.html +++ b/site/community/ethica-communication-guidelines/index.html @@ -331,17 +331,17 @@ -@jeremy_berger
/ pkt.chat:@jeremyb
Ethical Communication Guidelines¶
+Ethical Communication Guidelines
This is a guideline for ethical communications about the project. It is recognized that for PKT to accomplish its goals, there must be a community who understands and uses the technology. In this way communication cannot be avoided. However, poor communication, even made with the best intentions, risks harming the reputation of the project and the general public. So these guidelines exist to help community members represent the project in the best way possible.
-A Far Higher Standard¶
+A Far Higher Standard
Within the cryptocurrency ecosystem, there are a significant number of outright criminal activities. Beyond those, there is a wide gray area of communication activities which have not been subject to any regulatory enforcement, but still fall far outside of what these guidelines established as ethical.
Community members are cautioned that due to the scale of these "gray" activities, there is a large body of publications, influencers, marketers, "shills" and other professionals who, if consulted or emulated, are highly likely to put a person in ethical peril. The reason is because these guidelines establish a far higher standard of communication ethics than that which is generally considered to be legal.
-Principle of No Expected Return¶
+Principle of No Expected Return
It is acknowledged that buying and selling are central aspects of the cryptocurrency ecosystem, so it is difficult to effectively communicate about the project without ever addressing reasons why a person might do these things. Therefore these guidelines offer a pre-approved narrative which is considered to be maximally protective of the reputation of the project while also providing a healthy perspective regarding the risks associated with cryptocurrency.
The Principle of No Expected Return is that one should buy cryptocurrency if and only if they believe strongly enough in the vision of the project that they would be proud to own the coin even if they were never able to sell it. In the early days of Bitcoin, it was widely believed that it would be legislated out of existence or otherwise collapse, and so this principle was pervasive throughout the community. Many people chose to hold Bitcoin as a political statement regarding the morality of modern financial institutions, especially after the 2008 financial crisis.
The key components of the Principle of No Expected Return are: * A clear understanding of what the technology is and what it is not. * A belief in the social change which that technology can realistically facilitate. * The mental and financial preparedness to lose any money or effort that is used to acquire the token, as one has when one makes a donation.
When you’re considering buying a token, you need to ask yourself: If you were to lose everything you put into a token, would you look back on the day you bought it, proud to have been a part of the project at that time? If the answer is no, then you’re either planning to buy too much, or you’re just not ready.
-Guidelines¶
+Guidelines
Dishonest, intentionally misleading, or otherwise unlawful communication is obviously unethical. Beyond that there is no clear definition for unethical communication, though one could characterize it in the words of Justice Stewart, "I know it when I see it". These non-exhaustive guidelines exist to give community members an understanding of the types of communication which are most likely to be unethical. They are listed in order of importance with the most important first.
-
- Communications which follow the letter, but not the spirit, of these guidelines are unethical. One example of this is token disclaimers such as "this is not financial advice". Disclaimers can be useful for helping a person understand the limitations and caveats of a communication, but a token disclaimer exists more to make the communicator seem innocent than to help the audience have a clearer understanding. The use of fine print, or disclaimers which "feel out of place" in the overall communication should be regarded as red flags, and communicators using these should review the objectives of their message and whether it is being communicated clearly.
diff --git a/site/community/press-media-assets/index.html b/site/community/press-media-assets/index.html index d4e1614..c1dc80a 100644 --- a/site/community/press-media-assets/index.html +++ b/site/community/press-media-assets/index.html @@ -327,7 +327,7 @@ -Brand Assets¶
+Brand Assets
Download the PKT Logo and wordmark assets here.
Before use, please see the trademark guidelines for these assets here.
diff --git a/site/css/extra.css b/site/css/extra.css index eb3e033..bb1fe26 100644 --- a/site/css/extra.css +++ b/site/css/extra.css @@ -63,7 +63,7 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head display: none; } b, strong { - font-family: "Inter-Bold"; + font-family: "Inter-SemiBold"; } /*************************************************** * Header @@ -214,8 +214,11 @@ footer .col > a:focus { border-radius: 3.125rem; vertical-align: middle; } +#sidebar-nav ul ul { + padding: 10px 0 10px 15px; +} #sidebar-nav .navbar-expand-md .navbar-nav .nav-link { - padding-left: 0; + padding: 0; text-transform: uppercase; } #sidebar-nav .navbar-expand-md .navbar-nav .nav-link:before { @@ -223,6 +226,7 @@ footer .col > a:focus { } #sidebar-nav .toplevel .section-title { cursor: pointer; + display: block; } @media screen and (max-width:767px) { #sidebar-nav { @@ -330,6 +334,28 @@ footer .col > a:focus { #main ul li { padding-bottom: 5px; } +#main .admonition ul, +#main .admonition ol { + margin-top: 1.2rem; +} +#main strong { + color: #ffffffcf; +} +#main h3 { + font-size: 1.3rem; + margin-top: 20px; +} +#main table { + border-collapse: separate; + margin:1.2rem 0; +} +#main table thead { + color:#fff; +} +#main table tbody tr td { + border:1px solid silver; + padding: 10px; +} .md-footer-nav { display: -moz-flex; display: -ms-flex; diff --git a/site/dev/building-on-pkt/index.html b/site/dev/building-on-pkt/index.html index 495a772..ad9348a 100644 --- a/site/dev/building-on-pkt/index.html +++ b/site/dev/building-on-pkt/index.html @@ -327,19 +327,19 @@ -Building on PKT¶
+Building on PKT
The PKT roadmap is composed of 4 Phases, based on having the fewest dependencies first. Collectively the 3 Phase will bring the PKT Network to scale.
-Phase 1: Launch¶
+Phase 1: Launch
Bandwidth Mining PacketCrypt was created and the mainnet PKT blockchain was launched in August 2019. Phase 1 focused on community growth, building out network infrastructure and unifying around PacketCrypt and bandwidth-hard mining. Major developments include multiple PKT wallets, community engagement via PKT Chat, the project task tracker, Network Steward and informational websites.
-Phase 2: Utilize¶
+Phase 2: Utilize
Tokenized Bandwidth Leases Anyone who wants to use a VPN, create their own, or mine PKT will easily be able to do so via Anodium VPN. Technology development includes Token Strike, to issue tokens in the PKT ecosystem for near zero cost and without gas fees, a DeFi bridge between PKT, Ethereum and Binance Smart Chain, bandwidth lease function and infrastructure via cjdns, and an Edge Point Device to easily mine PacketCrypt and get on the internet via your neighbor.
-Phase 3: Scale¶
+Phase 3: Scale
Support Internet Sharing The alpha implementation of the virtual Cloud ISP provides the ability to trade, aggregate, and access tokenized bandwidth leases via cjdns. People can get on the internet via their neighbor with no privacy risk because all data is sent to a VPN. The Atomic Swap Market can transact in and out of PKT with high speed, low cost transactions between Lightning Network enabled coins such as PKT, Bitcoin, Litecoin and Ethereum. Desktop and mobile apps provide easy functionality across devices worldwide.
-Phase 4: Innovate¶
+Phase 4: Innovate
Virtual ISPs The commercial expansion of Cloud ISPs signifies a healthy and active bandwidth market. People can lease bandwidth allotment guarantees and access the internet without using a traditional ISP. PKT Priority provides internet access with a minimum price free if there is available bandwidth. This will simplify local mesh networking by moving the network engineering component to the Cloud ISP. The stateless switch design central in the cjdns protocol will not only set new records for router performance/cost ratio, but will also allow for hundreds or even thousands of Cloud ISPs to send data through a single device, each according to their own routing policy.
diff --git a/site/dev/cjdns/index.html b/site/dev/cjdns/index.html index d1ae050..ac3b7f6 100644 --- a/site/dev/cjdns/index.html +++ b/site/dev/cjdns/index.html @@ -327,7 +327,7 @@ -Cjdns¶
+Cjdns
PKT is an ideological continuation of the cjdns mesh networking project, launched by PKT Lead Developer Caleb James DeLisle in 2011. Cjdns solves several weaknesses with internet function, such as data privacy, need for decentralization and optimized, efficient routing.
Cjdns provides anyone with an IPv6 address, which is the basis for a global mesh network in which anyone can share their internet and become an internet service provider.
diff --git a/site/dev/cloud-isp/index.html b/site/dev/cloud-isp/index.html index 54a33b7..ebd7d8a 100644 --- a/site/dev/cloud-isp/index.html +++ b/site/dev/cloud-isp/index.html @@ -327,7 +327,7 @@ -Cloud ISP¶
+Cloud ISP
A Cloud ISP is a hybrid between a traditional ISP and a VPN provider. This technology is designed to reimagine internet service, so anyone can become an ISP. Cloud ISPs aggregate and broker Edge Point tokenized bandwidth leases, facilitate software defined networking, and oversee the administrative roles of internet service to customers.
The Cloud ISP system is designed to manage two virtual assets: the virtual router lease and the bandwidth lease. A virtual router lease has a right to resources within the routing device for a limited time period. The bandwidth lease provides a minimum bandwidth link guarantee between two physical routing devices for a specific time period. The result is the PKT Network: an ultra fast independent network that is connected to the normal internet and powered by the people.
diff --git a/site/dev/edge-points/index.html b/site/dev/edge-points/index.html index d0d00b7..801c725 100644 --- a/site/dev/edge-points/index.html +++ b/site/dev/edge-points/index.html @@ -327,7 +327,7 @@ -Edge Point¶
+Edge Point
Edge Points are devices that are operated by an individual or business and maintain a network connection to the PKT Network. Edge Points will tokenize their bandwidth using TokenStrike and sell tokenized bandwidth to Cloud ISPs to broker connectivity to real customers. Edge Point technology will interface with PKT VPN and evolve to facilitate mesh network access points to the internet.
diff --git a/site/dev/packetcrypt/index.html b/site/dev/packetcrypt/index.html index dd1ed21..bbe2e40 100644 --- a/site/dev/packetcrypt/index.html +++ b/site/dev/packetcrypt/index.html @@ -327,7 +327,7 @@ -
PacketCrypt¶
+PacketCrypt
PacketCrypt is the world’s first bandwidth-hard proof of work. Packet = Bandwidth and Crypt = Encryption. This technology incentivizes miners to increase bandwidth upload & download throughput. PKT mining favors increased bandwidth over CPU power, rewarding people that connect high speed bandwidth infrastructure to the PKT Network.
diff --git a/site/dev/pkt-lightning-deamon/index.html b/site/dev/pkt-lightning-deamon/index.html index e101cd3..0802b6f 100644 --- a/site/dev/pkt-lightning-deamon/index.html +++ b/site/dev/pkt-lightning-deamon/index.html @@ -327,7 +327,7 @@ -
PKT Lighting¶
+PKT Lighting
- diff --git a/site/dev/pkt-vpn/index.html b/site/dev/pkt-vpn/index.html index 49adefc..e8ae8ee 100644 --- a/site/dev/pkt-vpn/index.html +++ b/site/dev/pkt-vpn/index.html @@ -327,7 +327,7 @@ -
PKT VPN¶
+PKT VPN
The PKT VPN is built to connect to, send and receive traffic through the cjdns network. PKT VPN enables users to get a base-line VPN for free, and pay for speed using microtransactions with PKT Cash.
VPN server administrators will register as a public PKT VPN, accept client connections and route VPN traffic through the PKT network. Users can browse a list of VPNs, select the best VPN based on location and bandwidth load and surf the internet from behind a PKT VPN exit node. VPN creates utility for the PKT Network and offers financial incentive in addition to PKT Cash mining.
diff --git a/site/dev/tokenstrike/index.html b/site/dev/tokenstrike/index.html index 69169ee..97e31a1 100644 --- a/site/dev/tokenstrike/index.html +++ b/site/dev/tokenstrike/index.html @@ -327,7 +327,7 @@ -TokenStrike¶
+TokenStrike
TokenStrike is a unique protocol for the issuance and exchange of tokens and NFTs inside of the PKT ecosystem. TokenStrike is designed for micro-transactions, so tokens must be issued and exchanged with zero cost and without gas fees (gas fees for the exchange of ERC-20 tokens is unacceptable).
TokenStrike tokens can be exchanged in a fully untrusted Lightning Network HTLC transaction. This is a scalable solution that fosters unlimited marketplace potential, including a decentralized bandwidth market, and sets PKT apart from every other layer 1 blockchain in the world.
Edge Points will tokenize their bandwidth using TokenStrike and sell tokenized bandwidth to Cloud ISPs to broker connectivity to real customers. This collectively will interface with PKT VPN and evolve to facilitate software defined networking and content delivery across the internet.
diff --git a/site/dev/wiif-sharing/index.html b/site/dev/wiif-sharing/index.html index 6ac8197..2827e2b 100644 --- a/site/dev/wiif-sharing/index.html +++ b/site/dev/wiif-sharing/index.html @@ -327,9 +327,9 @@ -PKT Documentation¶
+PKT Documentation
Documentation for the PKT project
-Wallet setup¶
+Wallet setup
There are several wallets which you can choose from, the easiest to set up are
- PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux.
@@ -338,12 +338,12 @@Wallet setup
You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.
-Mining¶
+Mining
PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.
-Running a pktd instance¶
+Running a pktd instance
You can setup a pktd instance using the instructions on pktd.
-Help and Community¶
+Help and Community
To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.
diff --git a/site/electrum/index.html b/site/electrum/index.html index 44f9460..1ee4ec1 100644 --- a/site/electrum/index.html +++ b/site/electrum/index.html @@ -327,13 +327,13 @@ -PKT electrum¶
+PKT electrum
-Important
Electrum is a good lightweight wallet for making and receiving payments, but it lacks scalability and is not appropriate for mining, if you are interested in mining PKT, see pktwallet.
First setup¶
-MacOS¶
+First setup
+MacOS
-
- Download the file ending with .dmg from the latest PKT Electrum Releases
- Open Finder
@@ -347,7 +347,7 @@MacOS&
- Continue with Setting up your wallet below
Windows¶
+Windows
-
- Download the file ending with .exe from the latest PKT Electrum Releases
- You will see a popup window telling you the application is not signed by a Microsoft Authorized Developer, always be sure you download PKT Electrum from the original website, do not run any app given to you in a chat, file-sharing or email attachment. Click "More info" to show additional options. @@ -358,12 +358,12 @@
WindowsLinux¶
+Linux
-
- Download the file ending with .AppImage from the latest PKT Electrum Releases
- Click on the downloaded file and PKT Electrum should start up right away.
Setting up your wallet¶
+Setting up your wallet
Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe.
-
- First you will be asked if you want to configure the server to connect to, unless you are an advanced user, just click "next" @@ -397,7 +397,7 @@
Setting up your walletIt will require about 5 minutes to synchronize with the PKT blockchain, but you can still use it while this is happening.
Receiving PKT¶
+Receiving PKT
- Congratulations, you have received your first PKT
Sending PKT¶
+Sending PKT
- When people consider a transaction to be "complete" depends on the merchant, but in general it should be considered to be ok once it switches from "unconfirmed" to the clock icon. Congratulations, you've sent PKT!
About Units¶
+About Units
-
- Each PKT is made up of 1000 milli-PKT, denoted
mPKT
- Each milli-PKT is sub-divided into 1000 micro-PKT, denoted
uPKT
- Each micro-PKT is sub-divided into 1000 nano-PKT, denoted
nPKT
Advanced usage¶
-Recover from seed¶
+Advanced usage
+Recover from seed
You can recover a PKT Electrum wallet from the seed you were given when you set it up. To do this follow the same instructions as for any other Electrum wallet: https://bitcoinelectrum.com/restoring-your-standard-wallet-from-seed/
Note that recovery from seed will not work to import addresses from other wallets such as a Gridnode.
-Multi-signature¶
+Multi-signature
Setting up multi-signature in PKT Electrum is the same as with Bitcoin Electrum so you can follow this tutorial: https://electrum.readthedocs.io/en/latest/multisig.html
-How it works¶
+How it works
PKT Electrum is significantly similar to Bitcoin Electrum. It contacts one of a pool of community operated electrumx servers. Instead of syncing the entire chain it requests information about its addresses from the electrumx server and only downloads enough of the blockchain to verify that the electrumx server is not trying to trick it.
In practice this means the wallet needs to check the proof of work and sync the block headers but not the rest of the blocks. Since PKT uses PacketCrypt proof of work, the work verification needs to be different. PacketCrypt headers are fairly large, between 4KB and 16KB, even at only 4KB each they make up 2.1GB of data per year. To maintain security without downloading an unacceptably large amount of data, PKT Electrum downloads only a small number of PacketCrypt proofs near the tip of the chain.
If the wallet only downloaded (say) the most recent 100 PacketCrypt proofs, an attacking electrumx server would know exactly how many blocks it needed to mine in order to create a convincing fake chain, PKT Electrum makes this more difficult by using statistical verification.
-Statistical Verification¶
+Statistical Verification
PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as
MIN(100%, K / distance_from_tip)
whereK
is a constant which we set at20
to make PKT Electrum verify around 200 blocks total.With
K = 20
, the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance @@ -455,7 +455,7 @@Statistical Verification
The distribution of likelyhood of verifying a block is shown by this chart:
-Running an ElectrumX server¶
+Running an ElectrumX server
If you would like to participate in running your own ElectrumX server to help the PKT Electrum network, you can do so using a simple Docker command.
Check out the Docker PKT Electrumx project for more information about how to run an instance.
diff --git a/site/governance-nsc/index.html b/site/governance-nsc/index.html index 1455c16..f8e72be 100644 --- a/site/governance-nsc/index.html +++ b/site/governance-nsc/index.html @@ -331,24 +331,24 @@ -Network Steward Charter¶
+Network Steward Charter
Anyone considering becoming Network Steward will need to publicly declare themselves to be a candidate. Upon declaring candidacy, a proposal should be publicly shared. The proposal should outline the basis and intentions of the Network Steward if elected. Please find suggestions for how to structure a proposal, as the criteria for evaluation is public.
-Short term impact¶
+Short term impact
Short term impact constitutes the project's capability to help the achievement of the PKT project's immediate objectives. For example, a project to search for breakthroughs in wireless technology may be well aligned with PKT's objectives in the long term but will not bear fruit for a significant amount of time. Specific questions useful for evaluating short term impact:
Will this project facilitate PKT’s roadmap? Will this project help PKT to distinguish itself from other blockchain projects? Does this project provide a piece of infrastructure which is considered necessary?
-Long term impact¶
+Long term impact
Long term impact constitutes a project's capability to pay dividends to the PKT ecosystem over the long term. Long term impact is important because it fosters a snowball effect of returns on the investment of Network Steward funds. Specific questions useful for evaluating long term impact:
Will this project help advance "infrastructure operator" roles? Will this project provide key infrastructure/institutions necessary to the emergence of a healthy ecosystem? Does this project bypass a tragedy-of-the-commons problem which blocks the natural emergence of a piece of key infrastructure?
-Scope and use of resources¶
+Scope and use of resources
Use of resources is the question of how "expensive" a project is and its ability to fit within the budget. Short and long term impact will be evaluated with attention to the impact/cost ratio. Note that volunteer time/effort spent by the Network Steward, or their team in order to oversee the project will be taken into account, so all other things being equal, a few large projects are preferable to a large number of smaller ones. Some questions which may be useful for evaluating scope and use of resources include:
Do the metrics for success justify the amount of effort placed on the project? Does the cost for effort seem to be a good deal (attention shall be given to the skill sets of declared participants)? Are there competitive aspects with the project to promote efficient use of resources?
-Risk control¶
+Risk control
Risk control is about the question of how likely a project is to fail at delivering the expected result. Projects which are inherently more risky will be evaluated more stringently on their proposed risk control. Specific questions useful to the evaluation of risk control include:
How evenly is the effort spaced over the milestones of the project? How evenly is the payment spaced over the milestones of the project? @@ -356,7 +356,7 @@
Risk control -
+Hazard control¶
+Hazard control
The objective of the Network Steward is for the community to elect someone who will build or oversee projects that benefit the entire PKT ecosystem equally without unfairly benefitting any one participant over any other. Hazard control is about preventing any incentive or the perception of an incentive which would promote a corruption of the process from its objective. Public perceptions are almost as important as the real thing because the perception of hazard discourages new participants from joining the PKT ecosystem and encourages existing participants to submit projects which are at least as corrupt as they imagine the average project to be. Some questions which may be useful to the evaluation of hazard control include:
To what extent is the project safe from any real or perceived conflicts of interest? To what extent are the results of this project equally advantageous to all participants in the PKT ecosystem? @@ -365,11 +365,11 @@
Hazard controlPotentially unacceptable projects¶
+Potentially unacceptable projects
Some projects may be judged by the community to be unacceptable under any conditions. An intuitive example would be a proposal to build an assassination market which is blatantly illegal and contrary to the objectives of the project. These judgements will be made by individual voters. Some questions which are useful in the evaluation of acceptability:
Does the project seem more likely to benefit the PKT ecosystem than to harm it? Does the project seem unlikely to cause significant damage to the perceived legitimacy of the PKT ecosystem?
-Delayed milestones¶
+Delayed milestones
While it is not in the interest of the community to rush projects, it is important to guard against the possibility of candidates applying for projects and then not doing the work - planning to abandon the project unless there is a precipitous increase in the price at which they can sell PKT.
diff --git a/site/governance/index.html b/site/governance/index.html index afd37ba..cbc275a 100644 --- a/site/governance/index.html +++ b/site/governance/index.html @@ -331,19 +331,19 @@ -
Introduction¶
+Introduction
The institution of the Network Steward will remain as it was before, and will continue to be elected via a weekly vote using the Electorium algorithm. However unlike the vote in legacy PKT, coins will need to be locked up in order to vote.
There will be no specific lockup period required, and there will be no vote multiplier for using a longer lockup period, but each PKT, and each 1 PKT worth of locked up LP Token, will be worth one vote.
The same voting mechanism will allow changes to both the Network Steward and the Executor. However, changing the Executor is a more solemn matter and so will only occur when 75% of all actively voting coins continually approve such change for 4 consecutive weeks. This 75% rule is borrowed from the requirement for approving changes to the US Constitution.
The allocation of yields is however a more complex affair, and just as the mining pools had centrally decided the allocation of yields, the application of the rules laid out in the Infrastructure section will be managed by a centralized “Executor”.
-How Does Electorium Work?¶
+How Does Electorium Work?
Nobody ever sits down and asks themselves who is most fit to manage the affairs of the nation. Instead people argue over whether it’s going to be the blue guy or the red guy, and they think that’s democracy. It’s quite possible that the entire partisan landscape as we know it is an artifact of a flawed voting system.
The dream of the third party candidate is that if enough people would vote for him, he would no longer be “third party”. But to get there, he needs to somehow overcome the objection that voting for him means losing a chance to vote against "The Bad Guy". Even the third party candidate does not ask the voter who is most fit to rule!
If we could just cast all the politics and partisanship aside and get to the real heart of the question, everybody’s answer would probably be different. We’d most likely have a beautiful patchwork of nominations including businessmen, professors, soldiers, clergy, and other people of distinction.
To address this, PKT uses a new vote counting algorithm called Electorium. It is in essence a search algorithm. It finds the candidate who cannot be beaten by anyone else, if we were to pretend that neither they, nor their challenger, voted for each other. So in the case of Alice and Bob, we pretend Alice is not voting for Bob, and Bob is not voting for Alice and we can easily find the winner.
This computation of delegated votes is not as simple as it might seem. If Alice votes for Bob, and Bob votes for Alice, it is not immediately obvious who should win. Not only that, it is important that the counting process be fast.
There is also another case where perhaps Alice votes for Bob, but Bob does not vote for Alice. It might seem that Bob is the clear winner, but if the majority of his votes have been received from or through Alice, then by these rules Alice still wins. However, if there is another candidate who receives more votes than Alice but less than Bob, Bob becomes the winner because Alice loses and is forced to delegate her votes.
-Delegated Voting¶
+Delegated Voting
Using Electorium you can vote for anyone, but no one is required to be a candidate. If you vote for someone who does not wish to be a candidate, your vote is simply delegated to whoever they vote for.
Everyone who chooses to be a candidate automatically votes for themselves. If they vote for someone else, that vote is secondary to their implied vote for themselves. To put it differently, voting as a candidate will never cause you to lose. If a candidate explicitly votes for himself, his explicit vote is meaningless. It is the same as indicating his candidacy without voting at all.
This voting system values each vote by the amount of PKT the voter holds. This is of course unlike a standard national election where every citizen gets an equal vote. But like almost all blockchains, PKT has nothing analogous to the concept of the citizen.
@@ -354,7 +354,7 @@Delegated VotingExecutor¶
+Executor
From launch day, the Executor will be hard coded.
The role of the executor is not to make meaningful decisions, but rather to fit the facts to the written rules as best as possible. Questions like “is this cjdns node really operational?” or “is that nameserver censoring domains?” are not conducive to smart contract based validation, so these decisions will be made by the Executor.
Prior to the end of 2024, a smart contract that will be developed will be an implementation of the Electorium voting algorithm to allow for replacement of the Executor.
diff --git a/site/index.html b/site/index.html index e73f586..9c8070f 100644 --- a/site/index.html +++ b/site/index.html @@ -327,27 +327,27 @@ -PKT Documentation¶
+PKT Documentation
Documentation for the PKT project
-PKT Network¶
+PKT Network
PKT Network is a fast, resilient, and censorship-resistant media network powered by the people.
Instead of relying on centralized companies for its network infrastructure, PKT is a decentralized physical infrastructure (DePIN) project. This means the network is powered by its global community of economically incentivized users.
-Staking¶
+Staking
PKT economically incentivizes people to stake and earn PKT. Each stake must be assigned to an infrastructure node that powers the PKT Network. Supporting the network has never been easier. Get started today.
-Migration airdrop¶
-Infrastructure¶
+Migration airdrop
+Infrastructure
The PKT Network relies on its community to operate its underlying infrastructure. This is made possible by staking, which requires people to lockup PKT tokens to earn rewards. Beginning in October 26, 2024, each stake must be paired with an infrastructure node to continue receiving rewards. This ensures that the economic incentives in fact scale the underlying network. This ensures providers are rewarded to maintain reliable and accessible network resources.
-Tokenomics¶
-Affiliate¶
-How to buy PKT¶
-Wallets¶
+Tokenomics
+Affiliate
+How to buy PKT
+Wallets
PKT works with all Ethereum compatible wallets. The wallets that are most recommended for staking and storing PKT are the Coinbase Wallet and MetaMask.
-Utility¶
+Utility
PKT functions as a versatile utility network built on the Base blockchain. The Base blockchain is a L2 that delivers fast, low cost payments using the Ethereum network. The PKT Network delivers a digital foundation for apps, products and platforms to access and service global customers.
-Governance¶
-Community¶
+Governance
+Community
PKT is a community-based project. There is no company, no foundation, no equity investors and no DAO. Join the community to connect with other Pkteers who are believe in geting paid to support the future of the media industry.
-Brand Assets¶
+Brand Assets
- @@ -516,5 +516,5 @@
Search
diff --git a/site/infra/build-web/index.html b/site/infra/build-web/index.html index a583b80..043c565 100644 --- a/site/infra/build-web/index.html +++ b/site/infra/build-web/index.html @@ -331,8 +331,8 @@ -Build a Website in PKT Network¶
-How to set up your own self-hosted website on cjdns network¶
+Build a Website in PKT Network
+How to set up your own self-hosted website on cjdns network
The following setup has been tested on a Raspberry Pi 4.
- Go to https://yunohost.org/en/install
diff --git a/site/infra/cjdns-node/index.html b/site/infra/cjdns-node/index.html index e3e9ed3..f0f4770 100644 --- a/site/infra/cjdns-node/index.html +++ b/site/infra/cjdns-node/index.html @@ -331,11 +331,11 @@ -Setup a Cjdns Node¶
+Setup a Cjdns Node
This guide will help you set up a cjdns node on a server.
-Requirements¶
+Requirements
A server running debian based Linux (preferably Ubuntu 22.04) with docker installed
-Steps¶
+Steps
Create a data directory where the server configuration will be stored.
diff --git a/site/infra/cjdns-web/index.html b/site/infra/cjdns-web/index.html index d921ca9..4820e3f 100644 --- a/site/infra/cjdns-web/index.html +++ b/site/infra/cjdns-web/index.html @@ -331,14 +331,14 @@ -Accessing your cjdns website¶
+Accessing your cjdns website
For anyone to access your cjdns site they need to be on the cjdns network, either by running cjdns on their device or by connecting to one of the VPN exits that allow access to cjdns network.
Go to a browser and paste the ipv6 address after http and inside square brackets like this:
http://[your-cjdns_ipv6_address]/blog
-NOTE
Make sure to remove any leading
0
from each section of the ipv6 address. for example if your cjdns ipv6 is ending with... :0ad2
it should be... :ad2
in the browser.Set up a domain for your site¶
+Set up a domain for your site
First you will need to own a domain name for example "pkt.net". Select one of the VPN exits that have a running SNI proxy and copy their IPv4 address.
Go to your domain registrar and set up the following DNS records:
@@ -355,11 +355,11 @@
Set up a domain for your siteRegister domain with VPN server¶
+Register domain with VPN server
Request the VPN server operator to add your domain to their SNI proxy by editing the following command replacing it with your domain and cjdns ipv6 address and the VPN server's IPv4 address:
-curl -X POST --H "Content-Type: application/json" -d '{"domain":"domain.com","cjdnsIpv6":"your_cjdns_ipv6_address"} http://[VPN server IPv4 address]:8099/api/0.4/server/domain/add/
Set up the domain in yunohost¶
+Set up the domain in yunohost
- Log in into your yunohost admin panel.
- Go to "Domains" and click on "Add domain"
diff --git a/site/infra/domain-node/index.html b/site/infra/domain-node/index.html index e01a220..1079164 100644 --- a/site/infra/domain-node/index.html +++ b/site/infra/domain-node/index.html @@ -331,7 +331,7 @@ -Setup a Domain Node¶
+Setup a Domain Node
When you own a PKT vanity domain, it enables sovereignty for PKT websites. More information on how to set up a Domain Node will be available prior to Infrastructure Day on October 30, 2024.
diff --git a/site/infra/exit-node/index.html b/site/infra/exit-node/index.html index 0214b70..e60fc4d 100644 --- a/site/infra/exit-node/index.html +++ b/site/infra/exit-node/index.html @@ -331,7 +331,245 @@ -
Setup a VPN Exit Node¶
+Setup a VPN Exit Node
+This guide will help you set up a CJDNS node with PKT wallet and the following services: You can follow the steps to set up the server or read more about the process and services involved.
+ +++Requirements
++
+- A server running debian based Linux (preferably Ubuntu 22.04)
+- Install docker
+https://docs.docker.com/engine/install/ubuntu/ * Install jq
++sudo apt-get install jq +
Steps
++
+- +
+Create a data directory where the server configuration will be stored.
++
console +mkdir vpn_data
- +
+Configure the server by running the following command:
++
console +docker run -it --rm -v $(pwd)/vpn_data:/data pkteer/pkt-server /configure.sh
- +
+Configure various service by running the following command:
++
console +./vpn_data/setup.sh
The script will prompt you to set up various flags and values needed for setting up the services the first time.
+- +
+Run the server by running the following commands:
++
console +./vpn_data/start-vpn.sh
++NOTE
+It can take a few minutes on the first run for the server to set up all the services.
+Monitoring the server
+You can view the progress of the server by running:
++docker logs -f pkt-server +
You can also check the status of all services by running:
++./vpn_data/status.sh +
or using the AnodeVPN API:
++http://[server]:8099/api/0.4/server/status/ +
Understanding the process
+Configuration
+The
+configure.sh
script is designed to set up and configure the server environment. Below is a detailed explanation of its functionality:Initialization and Default Values:
+The script initializes several flags and variables with default values:
++
+- no_vpn_flag: Indicates whether VPN should be disabled (default: false).
+- cjdns_flag: Indicates whether CJDNS should be enabled (default: true).
+- with_pktd_flag: Indicates whether PKTD should be enabled (default: false).
+- pktd_passwd: Stores the PKTD password (default: empty).
+- pktd_user: Stores the PKTD username (default: "x").
+Configuration File Handling:
+The script checks if the configuration file
+/data/config.json
exists. If it does, it reads the existing configuration; otherwise, it copies a template configuration from/server/config.json
to/data/config
.json.Configuration Synchronization:
+If the configuration file exists, the script ensures that all fields from the template configuration are present in the existing configuration. Missing fields are added with their default values from the template.
+Flag Parsing:
+The script parses command-line arguments to set various flags:
++
+- --no-vpn: Disables VPN.
+- --with-pktd: Enables PKTD.
+- --pktd-passwd=: Sets the PKTD password.
+Configuration Modification:
+Based on the parsed flags, the script modifies the configuration: Sets the VPN exit status based on no_vpn_flag. Enables or disables PKTD based on with_pktd_flag. Generates a random PKTD password if none is provided. Updates the PKTD username and password in the configuration.
+PKT Wallet Initialization:
+Starts the PKT Wallet daemon and checks if a wallet already exists. If not, it creates a new wallet and unlocks it.
+VPN Server Configuration:
+Retrieves the PKT Wallet secret for the VPN server and ensures the
+cjdroute.conf
configuration file is valid. If the file does not exist, it generates a new one and seeds it with the retrieved secret.Security Configuration:
+Modifies the cjdroute.conf file to set specific security parameters.
+Script Deployment:
+Finally it copies several utility scripts from the server directory to the data directory for further use.
+Initialization
+The
+init.sh
starts everytime the docker container is launched and is responsible for setting up and initializing various services and configurations on the server.+
+- Server Configuration Check: It first checks if the server has already been configured by looking if cjdroute.conf exists. If the file is not found, the script exits.
+- User Creation: It creates two users, cjdns and speedtest. They are used for running the cjdns and speed-test (iperf3) services, respectively.
+- Configuration Updates: It reads the config.json configuration file and updates several configuration settings related to different services.
+- PKT Wallet Initialization: It starts the PKT Wallet service and checks if a wallet already exists. If the wallet exists, it attempts to unlock it. If the unlock request times out, it restarts the wallet service.
+- Cjdns Service: If cjdns is enabled, it sets up the necessary environment and starts the cjdns service. It also configures network settings and firewall rules to allow cjdns to function properly.
+- PKTD Service: If PKTD is enabled, it constructs and runs the command to start the PKTD service with the appropriate configuration.
+- Network Interface Check: It waits for tun0 network interface that is expected to be created by cjdroute to become available and then sets up firewall rules for network traffic.
+- NFTables Initialization: It initializes NFTables, which is a framework for packet filtering and network address translation.
+- VPN Server: If the VPN server is enabled, it starts the VPN server and sets up the pricing for the VPN service.
+- Speed Test Service: It sets up the environment for running speed tests and starts the necessary services.
+- Cjdns Peers: It adds peers for the cjdns network, the peers used are set in
+/server/cjdnspeers.json
file.- IKEv2 and OpenVPN: If IKEv2 or OpenVPN are enabled, it runs the respective configuration scripts to set up these VPN services.
+- Node Exporter: It starts the Node Exporter service for Prometheus monitoring.
+- SNI Proxy: If SNI Proxy is enabled, it starts the SNI Proxy service.
+- Cron Job for Payments: It adds a cron job to handle payments on a weekly basis.
+- Watchdog Service: If cjdns is enabled, it starts a watchdog service to monitor and maintain the cjdns service the AnodeVPN server and other services depending on the configuration of the server.
+- Keep-Alive: Finally, it keeps the container running indefinitely by tailing
+/dev/null
.Monitoring with watchdog
+The
+watchdog.sh
is monitoring the cjdroute service and if it stops it will restart it, when the cjdroute is restarted the AnodeVPN server is also restarted.It will also check for the
+pluto
service which is the IKEv2 Ipsec VPN server and if it stops it will restart it. Similarly for theopenvpn
service.Finally the watchdog also checks the validity of vpnclients created by the AnodeVPN server and if their time has expired it will remove them.
+Checking the status
+You can check the status of the services at any time either by running
++```console +vpn_data/status.sh +``` +
or by using the AnodeVPN API:
++```console +http://[server]:8099/api/0.4/server/status/ +``` +
Next to each service you will see the process id if that service is running, otherwise it will be
+0
. e.g.+{ + "hostname": "kraut2.pkteer.com", + "pktwallet": 67, + "cjdns": 82, + "anodeserver": 114, + "ikev2": 4012, + "openvpn": 4135, + "watchdog": 4116, + "date_time": "2024-07-17 10:08:19" +} +
Understanding the services and files
+Launching the server
+The
+vpn_data/start-vpn.sh
andvpn_data/start.sh
scripts are designed to set up and run a VPN server using Docker. Here's a step-by-step explanation of what the script does:+
+- Environment Setup: It checks for the presence of necessary commands (jq, dirname, and docker). If any of these commands are missing, the script exits with an error message.
+- Directory Navigation: It changes the working directory to the location of the script.
+- Cjdns Port Extraction: It reads the cjdroute.conf file to extract the port number used by the cjdjns service. If the port number is not found in the expected format, it attempts to extract it using an alternative method.
+- Configuration Reading: It reads the config.json file to get the region and city information. If either the region or city is not specified, the script exits with an error message.
+- Cjdns RPC Port Setup: If the cjdns RPC (Remote Procedure Call) is enabled, it extracts the RPC port from the cjdroute.conf file and updates the configuration to expose the RPC port.
+- Docker Container Execution: It runs a Docker container with various configurations:
+Sets the timezone based on the region and city defined in
+vpn_data/config.json
. Configures logging, network capabilities, and device access. Sets system control parameters for IPv6 and IPv4 forwarding. Maps several ports for different services:+
+- reads the CJDNS port from the cjdroute.conf file and maps it to the host.
+- 5201 port for the speed-test (iperf3) service.
+- 64764 to the host for pktd service.
+- 443 for the SNI Proxy service.
+- 80 for the SNI Proxy service.
+- 500 for the IKEv2 Ipsec VPN server (pluto service).
+- 4500 for the IKEv2 Ipsec VPN server (pluto service).
+- 943 for the OpenVPN server.
+- 1194 for the OpenVPN server.
+Mounts necessary directories for data persistency and configuration files.
++
+- /etc/openvpn to vpn_data/openvpn.
+- /server/vpnclients to vpn_data/vpnclients.
+- /data to vpn_data where the configuration files are stored,
+cjdroute.conf
andconfig.json
and others.Optionally maps the CJDNS RPC port if it is enabled. Runs the container in detached mode with elevated privileges. The script ensures that all necessary configurations are in place and starts the VPN server within a Docker container, making it ready for use.
+Cjdns
+Cjdns is running on the server using a generated
+cjdroute.conf
file.+
+- The
+cjdroute.conf
file is generated by the configure script- It is being launched by the init script which is run on the server start.
+- For persistency the file is stored in the
+vpn_data
directory and used by the cjdns service.You can manually edit the file to add more cjdns peers.
+++Note
+Changing other parts of the configuration manually may end up breaking the service.
++
+- Wathdog is configured to keep cjdns running all the time. If the service stops, the watchdog will restart it.
+- +
+If cjdroute is for some reason stuck or frozen you can kill it by running
++
docker exec -it pkt-server killall cjdroute
and the watchdog will restart it.
+AnodeVPN Server
+The server is running the AnodeVPN server to authorize clients and offer API access to the VPN services such as:
++
+- +
+Add domain to SNI proxy
++
http://[server]:8099/api/0.4/server/domain/add/
+
console +json { "domain": "example.com", "cjdnsIpv6": "fc00:0000:0000:0000:0000:0000:0000:0001" }
- +
+Remove domain from SNI proxy
++
http://[server]:8099/api/0.4/server/domain/remove/
+
console +json { "domain": "example.com", "cjdnsIpv6": "fc00:0000:0000:0000:0000:0000:0000:0001" }
- +
+Request new PKT address
++
http://[server]:8099/api/0.4/server/premium/address/
+
console +json {}
- +
+Request new client VPN certificates
++
http://[server]:8099/api/0.4/server/vpnaccess/
+
console +json { "address": "pkt1...." }
For more details see the AnodeVPN
+IKEv2 Ipsec VPN Server
+The IKEv2 Ipsec VPN server is running on the server and is used to provide VPN services to clients with access to cjdns network.
+For setting up the server the init script will launch the
+vpn_configure.sh
if theikev2:enabled
flag is set to true, which will set up the server.We also use the
+ikev2.sh
script to add/remove clients through the AnodeVPN API. The files generated are copied inserver/vpnclients
directory which is mapped tovpn_data/vpnclients/
on the docker host.For more details look into the
+setup-ipsec-vpn
documentation for configuring the server, managing clients and troubleshooting.++NOTE
+Unfortunately although IKEv2 clients can connect to the server from a Windows client and get VPN access, the clients are not able to access the CJDNS network. This is a known issue and we are working on a solution, for this reason we have added the OpenVPN server as an alternative for Windows users.
+OpenVPN Server
+The openvpn is initialized by the init script if the
+openvpn.enabled
flag is set to true inconfig.json
and is used to provide VPN services to clients with access to cjdns network.The server is configured using the
+openvpn_configure.sh
which is used to generate the certificates needed.Then for adding new clients the
+createOpenVpnClient.sh
script is used by the AnodeVPN Server API to generate the client certificates and keys. The files are stored in thevpn_data/vpnclients/
directory and can be used to connect to the server.++NOTE
+The OpenVPN server is running on the server and is used to provide VPN services to clients with access to cjdns network. This was added on top of the IKEv2 for Windows users to be able to access the cjdns network, but it can be used by any OpenVPN client on any platform.
+SNI Proxy
+Proxies incoming HTTP and TLS connections based on the hostname contained in the initial request of the TCP session. This enables websites that are hosted on CJDNS network to become available via HTTPS name-based virtual hosting.
+The SNI proxy will start if the
+sniproxy.enabled
flag is set to true in theconfig.json
file.The sniproxy is using the
+sniproxy.conf
file to route the requests to the correct server.The server contains the default configuration for the sniproxy and is being edited by the
+adddomain.sh
andremovedomain.sh
scripts which are used by the AnodeVPN API to add and remove domains respectively from the proxy.For troubleshooting you can view the sniproxy logs. The access log is stored in
vpn_data/sniproxy-access.log
and the error log is stored invpn_data/sniproxy-error.log
.
- diff --git a/site/infra/infrastructure/index.html b/site/infra/infrastructure/index.html index 2cd49d2..08d069e 100644 --- a/site/infra/infrastructure/index.html +++ b/site/infra/infrastructure/index.html @@ -331,15 +331,15 @@ -
Infrastructure¶
-Introduction¶
+Infrastructure
+Introduction
This strategic technology upgrade of PKT on Base coincides with the launch of a novel Stake-to-Earn protocol. This offers participants significant daily PKT rewards for staking PKT.
Coming October 30, 2024 is Infrastructure Day, when users will be required to pair each stake with an infrastructure node to continue earning staking rewards. There are 5 different node types, ranging in operational complexity, with different infrastructure requirements and yields.
Instead of mining, PKT holders can stake their tokens and pair with infrastructure nodes to earn yields. To incentivize operators to make long term commitments to run infrastructure for the network, there are yield bonus multipliers based on staking duration.
-Infrastructure Yields¶
+Infrastructure Yields
Starting on Infrastructure Day, October 30, 2024, each stake will be required to pair with at least one PKT Network infrastructure node in order to continue earning yields.
Operators will be able to assign yield credits to each PKT infrastructure node. Instead of all yield credits competing for one bucket of yields, there will be one bucket for each of the 5 types of infrastructure in the PKT network. One lockup can assign yield credits to multiple units of infrastructure, but one unit of infrastructure can only be assigned yield credits from one lockup.
-Cjdns Nodes¶
+Cjdns Nodes
40% of all yields will go to cjdns nodes which have an open port and public peering credentials, so anyone can connect.
- Operators can assign up to $5,000 worth of yield credits per cjdns node, with each yield credit being valued at 1 PKT
diff --git a/site/infra/nameserver/index.html b/site/infra/nameserver/index.html index 4df9d0b..d553a0d 100644 --- a/site/infra/nameserver/index.html +++ b/site/infra/nameserver/index.html @@ -331,7 +331,7 @@ -Setup a Nameserver Node¶
+Setup a Nameserver Node
PKT is developing a DNS (Domain Name System) that leverages the PKT Network to map domain names to cjdns IP addresses. More information on how to set up a Nameserver Node will be available prior to Infrastructure Day on October 30, 2024.
diff --git a/site/infra/route-server/index.html b/site/infra/route-server/index.html index 03041ae..f933c94 100644 --- a/site/infra/route-server/index.html +++ b/site/infra/route-server/index.html @@ -331,7 +331,7 @@ -
Setup a Route Server Node¶
+Setup a Route Server Node
The route server is used to route traffic on the PKT network. More information on how to set up a Route Server Node will be available prior to Infrastructure Day on October 30, 2024.
diff --git a/site/infra/vpn-exit/index.html b/site/infra/vpn-exit/index.html index d4911c8..ced4ebb 100644 --- a/site/infra/vpn-exit/index.html +++ b/site/infra/vpn-exit/index.html @@ -331,7 +331,7 @@ -
VPN Exit¶
+VPN Exit
30% of all yields will go to VPN exits which provide internet access to people in the network.
- You will be able to assign up to $5,000 worth of yield credits per VPN exit.
@@ -340,7 +340,7 @@VPN ExitDomains Nodes¶
Domains Nodes
15% of all yields will go to the holders of PKT domains.
-Nameserver¶
+Nameserver
10% of all yields go to operators of Nameservers.
- There is no limit to the number of yield credits that can be assigned to one nameserver, but you must have a pkt domain in order to run one.
@@ -367,7 +367,7 @@NameserverRoute Servers¶
+Route Servers
5% of all yields go to the operators of Route Servers
- There is no limit to the number of yield credits that can be assigned to one route server, but you must have a nameserver (and thus a pkt domain) in order to run one.
diff --git a/site/infra/vpn/index.html b/site/infra/vpn/index.html index 109ced8..9722b0a 100644 --- a/site/infra/vpn/index.html +++ b/site/infra/vpn/index.html @@ -331,7 +331,7 @@ -PKT VPN¶
+PKT VPN
PKT is a VPN powered network, with privacy and security built-in. There is continuous development of low cost VPN services and hosting.
PKT is a VPN-powered network with privacy and security as a cornerstone of its infrastructure. This network is designed with built-in features that ensure all data transmitted is secure and private, leveraging the robust capabilities of VPN technology.
The community is continuously developing VPN solutions, aiming to democratize access to secure internet connections. These initiatives are crucial in enabling reliable, low-cost VPN access.
diff --git a/site/learn/network-steward/index.html b/site/learn/network-steward/index.html index 6a5df59..5e3930e 100644 --- a/site/learn/network-steward/index.html +++ b/site/learn/network-steward/index.html @@ -327,13 +327,13 @@ -What is the Network Steward?¶
-Introducing the Network Steward¶
+What is the Network Steward?
+Introducing the Network Steward
The Network Steward is a mechanism built into the PKT blockchain to ensure there is continuous funding to build out the project roadmap. Since PKT is completely decentralized, with no central company, foundation or investors behind the project, the Network Steward is able to provide perpetual funding for development.
As part of the consensus rules of the PKT blockchain, the publicly visible Network Steward wallet address receives 20% of every newly mined block. 100% of the funds are mandated to be paid out in the form of grants towards funding the Network Steward’s areas of interest, including open-source technology development of the PKT Network. Unlike a pre-mine or founder's fee, the recipient of the Network Steward payout can be changed by a PoS vote. All coins that are not allocated within 129,600 blocks (~3 months) are automatically burned. More than 13% of the mined coins have been burned through 2022.
You can check out the status of the burned coins and PoS vote to re-elect the Network Steward page on the block explorer page [here].
-
https://explorer.pkt.cash/address pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2
Who is the Network Steward?¶
+Who is the Network Steward?
This Network Steward address is a multi-signature group that requires 3 out of 5 signatures in order to make a payment. The current Network Stewards* are:
- Cjd — cjdns original author
@@ -343,7 +343,7 @@Who is the Network Steward?How does the Network Steward Operate?¶
+How does the Network Steward Operate?
The persons in custody of the Network Steward wallet periodically meet to award grants in accordance with a strict criteria and mandate.
The current mandate is that funds are to be used for:
@@ -352,7 +352,7 @@
How does the Network Steward Opera
- Purchasing property such as proprietary software or radio frequency spectrum rights in order to put these things in the commons.
It is the belief of the PKT blockchain founding developers that any unaccountable authority, no matter how benevolent, will eventually fall victim to corruption, inefficiency or simple failure to innovate. Because of this, the PKT blockchain has an impeachment solution whereby every holder of PKT is able to cast a vote to impeach the Network Steward so a new Network Steward can take its place. Impeachment is not an insignificant event. For it to occur, it requires more than a 50% of the total PKT ever mined to “VoteFor” impeachment. If impeachment does occur, what follows is an automatic vote count and a change to the Network Steward address.
-How are Grants Awarded?¶
+How are Grants Awarded?
Grants are awarded based on a funding criteria that is outlined on the Network Steward Github [here]. You start by socializing what you want to do with the community (try PKT.Chat, Discord or Telegram). When you have rough consensus, you move that conversation to a formal proposal.
There are currently two ways to propose a project to the PKT Network Steward. If your project is large and has the benefit of accountants to be able to verify that the money has been spent appropriately, you can make a proposal directly to the Network Steward through its github [here].
Click [here] to submit a proposal @@ -360,8 +360,8 @@
How are Grants Awarded?The Network Steward opens calls with a specified budget from time to time. Anyone can apply during these open calls. The Network Steward meets several times per year to review submitted projects. The minutes of these meetings are published in the github repository, along with the ongoing project statuses. Every transaction made by the Network Steward can be seen in the block explorer and is referred to in the Network Steward's github repository explaining the project that was funded.
To make a proposal, you must create a pull request to the github repository and name it according to the naming convention defined in the repository readme. This adds a new project markdown file, as per the project template. Getting a proposal accepted is much like getting a pull request merged into a project.
If you want to propose a smaller project and have the accounting and official reporting managed for you, you can propose to the User Operated Internet fund [here], which is funded by the Network Steward and administered by NLnet. NLnet is a well respected public benefit organization that is experienced at managing technology development projects.
-Network Steward Voting¶
-How voting works¶
+Network Steward Voting
+How voting works
A vote consists of one two parts, VoteFor and VoteAgainst. VoteAgainst is a vote for impeachment, while VoteFor is a vote for who should become network steward in the event of an impeachment.
A network steward is represented as a transaction output script rather than a script encoded key. An easy way to get the script for a given address is to pay some money to it and then explore the raw transaction and copy the output.
Exploring a coinbase transaction we can see the output being paid to the network steward https://explorer.pkt.cash/address/ and the script for this output is
@@ -369,7 +369,7 @@How voting worksHow to vote¶
+How to vote
Voting is done by configuring your wallet to vote, whenever you spend money, your wallet will include a vote in every future payment of PKT which is made. If you want to speed up the voting process, you can configure your wallet to vote and then transfer all of your PKT to another wallet, in order to be sure it will all be voting.
To configure your wallet to vote for https://explorer.pkt.cash/address/pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX and against https://explorer.pkt.cash/address, you would use the following workflow:
diff --git a/site/learn/packetcrypt/index.html b/site/learn/packetcrypt/index.html index 26d4047..6c26841 100644 --- a/site/learn/packetcrypt/index.html +++ b/site/learn/packetcrypt/index.html @@ -327,7 +327,7 @@ -What is PacketCrypt?¶
+What is PacketCrypt?
PacketCrypt is the world’s first bandwidth-hard proof of work. It is the software that miners install to mine PKT Cash and which constructs the unique foundation of the PKT Blockchain.
The PacketCrypt protocol is designed to reward miners in PKT Cash for transmitting data around the world. This incentivizes and requires high CPU encryption plus maximum bandwidth throughput to optimize yields. Miners are required to become hyper aware of and motivated to increase their bandwidth upload and download throughput to efficiently communicate with nodes across the network. PKT mining favors increased bandwidth over CPU power, rewarding people that connect high speed bandwidth infrastructure to the network.
PacketCrypt utilizes 2 distinct stages: announcement mining and block mining. Any internet connected device can become an announcement miner and mine PKT Cash by installing and running the PacketCrypt software. Announcement miners running PacketCrypt upload small, difficult to compress (1KB) messages called announcements to block miners.
diff --git a/site/learn/pkt-cash/index.html b/site/learn/pkt-cash/index.html index ddb9a24..f7e5ee1 100644 --- a/site/learn/pkt-cash/index.html +++ b/site/learn/pkt-cash/index.html @@ -327,7 +327,7 @@ -What is PKT Cash?¶
+What is PKT Cash?
PKT is a native coin that is mined by PKT mining pools and paid to announcement miners when running the PacketCrypt mining algorithm. There is no centralized issuer of PKT Cash, no pre-mine, and no centralized treasury. PKT Cash’s minimum value is the cost to mine the coin, which includes processing power, plus bandwidth.
PKT Cash is a Bitcoin fork and true proof of work, so it is a coin, not a token. PKT blocktimes are every 60 seconds, which makes PKT 10x faster than Bitcoin. Currently PKT can handle approximately 70-100 transactions per second. However, PKT Cash is designed for microtransactions with near-zero gas fees. In 2023, PKT Cash will become Lightning Network enabled using the PKT Lightning Daemon (PLD). PLD will enable PKT to process near-infinite transactions per second.
Since PKT Cash is generated from a fully decentralized fork of Bitcoin, it is considered to be a commodity, similar to Bitcoin. Additionally, since PKT is a fully decentralized clone of the Bitcoin codebase, the legal and regulatory framing is probably similar.
diff --git a/site/learn/pkt-network/index.html b/site/learn/pkt-network/index.html index dcda459..f89f9ed 100644 --- a/site/learn/pkt-network/index.html +++ b/site/learn/pkt-network/index.html @@ -327,9 +327,9 @@ -PKT Documentation¶
+PKT Documentation
Documentation for the PKT project
-Wallet setup¶
+Wallet setup
There are several wallets which you can choose from, the easiest to set up are
- PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux.
@@ -338,12 +338,12 @@Wallet setup
+You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.
-Mining¶
+Mining
PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.
-Running a pktd instance¶
+Running a pktd instance
You can setup a pktd instance using the instructions on pktd.
-Help and Community¶
+Help and Community
To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.
diff --git a/site/learn/pkt/index.html b/site/learn/pkt/index.html index 4d080db..9caafc3 100644 --- a/site/learn/pkt/index.html +++ b/site/learn/pkt/index.html @@ -327,16 +327,16 @@ -What is PKT?¶
+What is PKT?
PKT is an open source, layer 1 blockchain project and decentralized physical infrastructure (DePIN) mesh network powered by its global community. The project supports open internet access and scaling the decentralized web. The PKT project supports the core vision that basic, censorship-resistant internet access should be globally accessible. Rather than pay centralized companies for internet access, it’s designed so basic access can be free and people can pay providers when they need fast speeds. PKT utilizes the cjdns routing protocol to enable a decentralized, censorship-resistant, high-speed data network. The PKT Network is a completely sovereign part of the internet, which is accessible via VPN. Anyone can build censorship-resistant websites in the PKT Network. These websites can use their IPv6 web URL as a PKT payment address, streamlining peer-to-peer payments in the network. There are many reasons why open internet access is important, but none are more fundamental than lowering the barrier to entry so access to information and connectivity is available to everyone. By participating in the PKT project, and holding the PKT cryptocurrency, you are helping restore the founding ethos of the internet: decentralization.
-Why does PKT exist?¶
+Why does PKT exist?
Connectivity is humanity’s source of vitality, information and communication. PKT stands for the belief that internet access is a human entitlement. However, lowering the barrier for internet access is not in the best interest of centralized companies, internet service providers (ISP) and governments. Why? Because these entities are motivated by money and power, and their control is diminished if global internet access is free. Additionally, many corporations and governments don’t support free unlimited internet access due to regional or political censorship ideologies or capitalist priorities. Despite the founding principle for the internet to be decentralized, today, internet access is not. It is for these reasons that PKT is designed to usher in a new paradigm of connectivity. This helps realize a new era, where the physical infrastructure of the internet is powered by the people, and accessibility is open and free.
-How does PKT Expand Internet Access?¶
+How does PKT Expand Internet Access?
The PKT project presents an alternative approach to traditional internet service through mesh networking. First, PKT economically incentivizes individuals who have internet access to set up a PKT miner and contribute computer processing and bandwidth to secure the PKT blockchain. Similar to how Bitcoin miners earn BTC as they mine the Bitcoin, PKT miners earn PKT when they mine PKT. Since PKT mining requires bandwidth, this creates a general demand for bandwidth. Second, individuals with bandwidth can set up a cjdns node. Cjdns is the mesh networking protocol that enables the high speed data infrastructure for the PKT Network. As more people connect, this builds a decentralized, peer-to-peer network. Third, individuals can share mesh network internet access to the PKT Network. This internet access functions similar to a wifi access point. However, all connectivity is end-to-end encrypted. Wifi access point operators can choose to offer free access or paid access.
The objective of the PKT Network is to decouple the physical aspect of deploying and maintaining internet infrastructure (such as overhead and undersea cables), from the business and technical aspects of internet service such as billing, network engineering, and support. This way anyone can safely and securely become an internet provider via mesh networking, thus expanding internet access worldwide.
The fundamental value of dividing these internet service efforts is to empower everyday people to cover the cost of deploying and maintaining mesh network wifi access points. This ultimately lowers the cost of providing localized internet access and drives competition in the multi-trillion dollar annual internet industry. This can result in PKT’s mission to get the next billion people online.
-How can PKT Accomplish Its Goals?¶
+How can PKT Accomplish Its Goals?
Community projects can achieve the best results when focused on use cases, utility and community participation. When inspiring community participation, three core reasons people may take action:
- necessity
@@ -344,9 +344,9 @@How can PKT Accomplish Its Goals?they are being paid
In the mission to extend internet access and expand the decentralized web, PKT economically incentivizes individuals to participate. Additionally, many contributors truly believe in the mission to connect the unconnected. Since PKT is a fully decentralized community project, like Bitcoin, everyone in the community is part of the project team. There is no central authority or centralized infrastructure. However, there are many businesses and contributors in the PKT ecosystem who are developing the [roadmap]. This fosters the decentralized nature of the project. Visit the Ecosystem page [here] to see a (non-exhaustive) list of the major projects and contributors.
-How does the PKT blockchain work?¶
+How does the PKT blockchain work?
PKT is the world’s first and only bandwidth-hard proof-of-work blockchain. Anyone with internet access can install the mining software called PacketCrypt and start mining to earn PKT Cash. Just as Bitcoin introduced the dawn of a new era of digital money, PKT is introducing a new paradigm for how people can use their internet resources to expand internet accessibility. Click here to learn more about PacketCrypt.
-How can I set up a miner?¶
+How can I set up a miner?
For a tutorial on how to start mining PKT and earn PKT Cash, for this guide: [Intro to PKT Mining].
diff --git a/site/learn/wpkt/index.html b/site/learn/wpkt/index.html index 9095ea5..18513ce 100644 --- a/site/learn/wpkt/index.html +++ b/site/learn/wpkt/index.html @@ -327,7 +327,7 @@ -
What is WPKT?¶
+What is WPKT?
WPKT stands for wrapped PKT, thus the "W" in WPKT. WPKT exists on Binance Smart Chain blockchain. WPKT can only come into existence when someone sends PKT to the vault address, which converts the PKT into WPKT. As such, WPKT cannot be inflated since it has a 1-to-1 peg with PKT. Since there will only ever be 6 billion PKT in existence, there can never be more WPKT than the total amount of PKT in existence. WPKT is an BEP-20 token and is compatible with all platforms and wallets that accept and transact with the BEP-20 token standard.
To learn how to swap PKT to WPK or visa versa, click [here].
diff --git a/site/mining/index.html b/site/mining/index.html index b16e55c..3a3d206 100644 --- a/site/mining/index.html +++ b/site/mining/index.html @@ -327,7 +327,7 @@ -Mining¶
+Mining
PacketCrypt is a bandwidth hard proof of work, this means it requires lots of bandwidth to mine. Miners collaborate with one another by sending small messages (called Announcements) and the sending of these messages requires a large amount of bandwidth.
@@ -341,9 +341,9 @@MiningHow to Announcement mine¶
How to Announcement mine
There are a number of options available when it comes to installing the PacketCrpyt announcement miner. Choose whichever best suits your technical ability:
-1. Install a Pre-built Binary¶
+1. Install a Pre-built Binary
Pre-built packetcrypt binaries (for linux) or installation packages (for macos) and archives (for windows) can be downloaded from packetcrypt releases page.
- For windows, download the zip archive suffixed with
-windows.zip
@@ -358,7 +358,7 @@1. Install a Pre-built Binary2. Deploy a Docker Image¶
+2. Deploy a Docker Image
There is a PacketCrypt Docker image available, which can be used for announcement mining.
To install:
@@ -384,7 +384,7 @@
2. Deploy a Docker Image
$ docker run thomasjp0x42/packetcrypt ann -p <your_wallet_address> <pool_1>
More information can be found at the PacketCrypt DockerHub page
-3. Build From Source¶
+3. Build From Source
Building from source will generally offer the best mining performance but requires more technical knowledge than the previous two options.
First install rust if you haven't, see: rustup
git clone https://github.com/cjdelisle/packetcrypt_rs @@ -393,7 +393,7 @@
3. Build From SourcePacketCrypt GitHub repository for more detailed instructions.
-Begin Announcement Mining¶
+Begin Announcement Mining
Important
You cannot mine into the electrum wallet, You can only mine into the Command Line Wallet, the Pkt.World Wallet or the Mac GUI Wallet .
@@ -437,7 +437,7 @@Begin Announcement MiningHow to install a PKT miner on Mac¶ +
How to install a PKT miner on Mac
-
- Install the Zulu or CLI PKT Wallet from https://docs.pkt.cash
- Download the PacketCrypt.pkg for mac
@@ -450,7 +450,7 @@How to install a PKT miner on MacEnter the command:
$ ~/.cargo/bin/cargo build --release
- Enter the command:
$ ./target/release/packetcrypt ann -p [your PKT Wallet Address] [pool 1] [pool 2] [pool 3] [pool 4]
Choosing Pools to mine in¶
+Choosing Pools to mine in
You can mine in as many pools as you have the bandwidth to supply. The same data will be uploaded so your CPU is only used once. Currently the pools which are regularly winning blocks include:
- Pkteer:
@@ -462,9 +462,9 @@http://pool.pkteer.com
Choosing Pools to mine inLimiting System Resource Usage¶
+Limiting System Resource Usage
Limiting the system resources available to Packetcrypt may negatively effect your mining power but can be useful to conserve resources for other processess.
-Limit CPU Usage¶
+Limit CPU Usage
Announcement mining is a resource intensive process. By default, Packetcrypt will use 100% of the available CPU resources. CPU usage can be limited by assigning a limited number of threads to packetcrypt using the
-t
CLI parameter or"threads"
key if using a configuration file.Example of assigning four (4) threads to Packetcrypt:
packetcrypt ann -p <your_wallet_address> pool_1 [pool_2 pool_3 pool_4] -t 4 @@ -474,7 +474,7 @@
does not bring any additional value. To explain why it works like this, we need to examine the PacketCrypt algorithm rules and the in particular how the block mining software decides which announcements to use when attempting to mine a block. -Limit CPU UsageLimit Bandwidth Usage¶
+Limit Bandwidth Usage
Bandwidth usage is directly related to two main factors:
1 - Mining difficulty of the primary pool (the first pool listed in Packetcrypt pool configuration)
@@ -486,7 +486,7 @@
Limit Bandwidth UsageBlock Mining & Running a Pool¶ +
Block Mining & Running a Pool
Because each block miner must use as much bandwidth as all of the announcement miners combined, block mining is typically done at the location of the pool. Even a pool operator who wanted to support external block mining would find that the pool itself would need enough upload bandwidth @@ -508,7 +508,7 @@
Block Mining & Running a PoolPacketCrypt Data Flow¶
+PacketCrypt Data Flow
-
- █ Orange: Announcements are sent from the Announcement miners @@ -524,11 +524,11 @@
PacketCrypt Data Flow█ Brown: Master gets block templates from pktd instance
- Black dotted line: All nodes request configuration and block templates from Master node
More Information and PacketCrypt Pool Code¶
+More Information and PacketCrypt Pool Code
The code and documentation for running a pool is available on the C / nodejs version of the PacketCrypt project, the new Rust version only contains Announcement Miner and Announcement Handlers.
-Announcement Difficulty¶
+Announcement Difficulty
PacketCrypt is designed in such a way that a mining pool can double its effective power by:
- Doubling the total block mining computation effort
@@ -545,7 +545,7 @@Announcement Difficulty2
Announcement Set Selection¶
+Announcement Set Selection
PacketCrypt algorithm allows block miners to perform less work if they are able to prove that they had a certain number of "high value" announcements in memory at the time of mining, the exact ratio of actual work a block miner must do to the amount of work the PKT blockchain requires is called the @@ -571,7 +571,7 @@
Announcement Set SelectionOptimal Difficulty Curve¶
+Optimal Difficulty Curve
Knowing that the optimal announcement set is all of those announcements mined over the past 3 block periods, we can compute the overall power of a pool as the announcement difficulty is raised.
At announcement difficulty 1, announcements cannot be used for more than 1 block, but if we imagine @@ -585,8 +585,8 @@
Optimal Difficulty CurveFrom here, the power output of the power multiplier of the optimal announcement set halves for each doubling of the announcement difficulty, making the optimal difficulty
2
.
-FAQ for ANN Miners¶
-What does overflow mean?¶
+FAQ for ANN Miners
+What does overflow mean?
When the ann handler receives an announcement, it puts it into a queue, when the queue fills up it responds overflow immediately. The queue can become long, so you may receive "operation timed out" you're still being paid, when you receive "overflow" you are not being paid.
Unfortunately, you may also receive "operation timed out" because the handler is unresponsive, it's not obvious which is the reason from looking at the logs.
For example, what you will see in the AnnMiner Logs:
diff --git a/site/mining/pool_setup_guide/index.html b/site/mining/pool_setup_guide/index.html index 3776273..39add82 100644 --- a/site/mining/pool_setup_guide/index.html +++ b/site/mining/pool_setup_guide/index.html @@ -327,8 +327,8 @@ -Setting up a Pool¶
-Expectations¶
+Setting up a Pool
+Expectations
Note: It can be done all on a single machine, you just need to pay attention to ports etc. As of June 2022, the network difficulty is high, and given that half of the work is done at pool premises, it's recommended to run at least a dozen BlkMiner machines, with a significant (768GB recommended) ammount of RAM.
-Block mining & running a pool¶
+Block mining & running a pool
Starting your own pool requires setting up a number of services:
-
- pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes.
@@ -355,8 +355,8 @@Block mining & running a pool
- Paymaker (one) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners
General Information¶
-Repository Information:¶
+General Information
+Repository Information:
The following repositories hold the required programs to run a pool:
@@ -380,7 +380,7 @@
-Repository Information:
Assumed network Ranges:¶
+Assumed network Ranges:
In this guide we have two separate networks, the public network (198.51.100.0/24), and local network (10.0.16.0/24) to connect AnnHandlers and BlkMiner.
@@ -423,7 +423,7 @@
-Assumed network Ranges:
Assumed Port Ranges:¶
+Assumed Port Ranges:
@@ -455,9 +455,9 @@ Assumed Port Ranges:Installation¶ -
Machine 1¶
-PKTD node:¶
+Installation
+Machine 1
+PKTD node:
150GB of storage is required at a minimum to run the pktd node. Recommended size is around 250GB of NVMe storage.
-
- Install Golang
@@ -481,8 +481,8 @@PKTD node:Machine 2¶ -
Master | Paymaker | BlkHandler:¶
+Machine 2
+Master | Paymaker | BlkHandler:
@@ -507,8 +507,8 @@
- Install the required tools:
Master | Paymaker | BlkHandler:Machine 4 - 6¶ -
BlkMiner | AnnHandler | AnnMiner:¶
+Machine 4 - 6
+BlkMiner | AnnHandler | AnnMiner:
@@ -527,14 +527,14 @@
- Install the Required tools:
BlkMiner | AnnHandler | AnnMiner:
cd packetcrypt_rs ~/.cargo/bin/cargo build --release --features jemalloc
-Config of pool.js¶
+Config of pool.js
Information:
- pool.js is located at:
~/PacketCrypt/pool.example.js
- You need to edit this file, then run:
cp ~/PacketCrypt/pool.example.js ~/PacketCrypt/pool.js
-config.privateSeed¶
+config.privateSeed
Signing of announcements is rarely used, it breaks people mining into multiple pools, and you should set it to null unless "you know what you're doing"
This seed is used for deriving keys which will be used for signing announcements.
Setting this value to an alphanumeric value e.g
@@ -544,7 +544,7 @@config.privateSeedconfig.paymakerHttpPasswd¶
+config.paymakerHttpPasswd
Anyone who has this password can make http posts to the paymaker (claim that shares were won) You should make this random and also firewall the paymaker from the public. The upload will be done using Authorization Basic with a username of "x" and this as the password
@@ -552,7 +552,7 @@config.paymakerHttpPasswd
+You can put the paymaker behind an http proxy if you wish.
-config.masterUrl¶
+config.masterUrl
This is used by the paymaker and block handler when running them with pool.js, it is used to resolve where the master is.
You can either set this as a locally host or put your master behind a nginx proxy
config.masterUrl = 'http://localhost:8080'; @@ -561,13 +561,13 @@
config.masterUrlconfig.rpc¶
+config.rpc
The username and password set here, should be the same username and password used at the end of this guide for when you configure the pktd service.
user: 'x', pass: 'x',
-config.annHandlers¶
+config.annHandlers
Information:
- config.annHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port.
@@ -583,7 +583,7 @@config.annHandlersconfig.blkHandlers¶
+config.blkHandlers
Information:
- config.blkHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port.
@@ -605,7 +605,7 @@config.blkHandlersconfig.master¶
+config.master
Which port to run the master on
@@ -640,7 +640,7 @@port: 8080,
config.master
mineOldAnns: 0,
-config.payMaker¶
+config.payMaker
How the miners should access the paymaker (external address), replace the url with your own.
@@ -663,7 +663,7 @@url: 'pool.pktpool.io',
config.payMakerannCompressor¶ +
annCompressor
Store data in 1 minute aggregations
@@ -694,7 +694,7 @@timespanMs: 1000 * 60,
annCompressor
+-errorAddress: "pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2",
Config of pool.toml¶
+Config of pool.toml
Information: - pool.example.toml is located at:
@@ -706,7 +706,7 @@~/packetcrypt_rs/pool.example.toml
- You need to edit this file, then run:~/packetcrypt_rs/pool.example.toml ~/packetcrypt_rs/pool.toml
Config of pool.tomlann_handler.ah*¶
ann_handler.ah*
You can have multiple ann_handlers, you can do this by defining each one such as:
[ann_handler.ah0] "parameters" @@ -764,45 +764,45 @@
ann_handler.ah*NOTE: To bind low ports with non-root user run:¶
+NOTE: To bind low ports with non-root user run:
-
sudo setcap CAP_NET_BIND_SERVICE=+eip $(which packetcrypt)
Running Manually¶
-Machine 1¶
+Running Manually
+Machine 1
Information:
-
- These tasks need to be run in the order they are presented
- PKTD needs to have downloaded the full chain first, you will know when the node is upto date when height is equal to the current block on the explorer It can take 12+ hours to fully sync to the current block height
PKTD¶
+PKTD
--rpcuser
and--rpcpass
should match the values set in pool.js under config.rpc-./pktd/bin/pktd --rpcuser=XXX --rpcpass=XXX --miningaddr <your PKT wallet address>
Machine 2¶
-Master¶
+Machine 2
+Master
-node ./pool.js --master
Paymaker¶
+Paymaker
-node ./pool.js --payMaker
BlkHandler(s)¶
+BlkHandler(s)
Launch the BlkHandler nodes, specify
--blk0
for the first BlkHandler,--blk1
for the second, and so forth-cd PacketCrypt node ./pool.js --blk0 node ./pool.js --blk1
Machine 3¶
-AnnHandler¶
+Machine 3
+AnnHandler
-cd packetcrypt_rs ./target/release/packetcrypt ah --config /path/to/pool.toml ah0
Machine 4¶
-AnnHandler¶
+Machine 4
+AnnHandler
-cd packetcrypt_rs ./targer/release/packetcrypt ah --config /path/to/pool.toml ah1
Machine 5 and 6¶
-BlkMiner¶
+Machine 5 and 6
+BlkMiner
--threads
is the number of threads you want to dedicate to the Blkminer, the default is to use all available threads.--paymentaddr
is the wallet you want your coins to be mined into, it is advisable to not use the electrum wallet for this.--memorysizemb
is how much RAM you are allocating to block mining, Ideally you want to set as much as you can. @@ -810,8 +810,8 @@BlkMinerNGINX Setup (For allowing external AnnMining)¶ -
Machine 2¶
+NGINX Setup (For allowing external AnnMining)
+Machine 2
Update system and install Nginx
sudo apt update sudo apt install nginx diff --git a/site/network/open-ecosystem/index.html b/site/network/open-ecosystem/index.html index 055c0c2..b750582 100644 --- a/site/network/open-ecosystem/index.html +++ b/site/network/open-ecosystem/index.html @@ -331,7 +331,7 @@ -
An Open Ecosystem¶
+An Open Ecosystem
The PKT Network fosters an open ecosystem where diverse media platforms, including film, TV, gaming, sports, live streaming, marketplaces, and music, can thrive. This decentralized approach offers platforms and network hub to connect seamlessly with global audiences. This enables content discovery without geographical or regulatory barriers.
By leveraging blockchain technology, PKT ensures that all transactions within the network are conducted fairly and transparently. This not only democratizes access to diverse media content but also empowers creators and consumers to interact and transact directly, enhancing the integrity and vibrancy of the digital media landscape. PKT Network is reshaping how media is consumed and monetized worldwide.
diff --git a/site/network/what-is-network/index.html b/site/network/what-is-network/index.html index b1b9a68..b34d04b 100644 --- a/site/network/what-is-network/index.html +++ b/site/network/what-is-network/index.html @@ -331,7 +331,7 @@ -What is PKT Network?¶
+What is PKT Network?
The PKT Network is a decentralized media network. It is built to enable global media distribution with integrated payments, censorship-resistance and no geo-restrictions. The network is powered by the cjdns mesh networking protocol.
The PKT Network represents a transformative approach to media distribution, fundamentally redefining how content is shared and monetized across the globe. As a decentralized media network, PKT leverages the robust cjdns mesh networking protocol to facilitate a secure, censorship-resistant platform that is free from geo-restrictions and censorship. This design ensures that creators and audiences can share and consume media content without interference from centralized authorities or limitations imposed by traditional media distribution channels.
At the heart of PKT Network's innovation is its DePIN (Decentralized Physical Infrastructure) model. This incentivizes individuals across the world to contribute to the network's infrastructure. This community-driven approach not only decentralizes the control and maintenance of the network but also enhances its resilience and scalability. Contributors are rewarded through PKT’s Stake-to-Earn protocol, where participants lock up their PKT tokens and pair with infrastructure nodes that support network operations. In return, operators are rewarded based on the duration and amount of their stake. This incentivization scheme aligns individual interests with the overall health and growth of the network, promoting long-term commitment and stability.
diff --git a/site/pktd/index.html b/site/pktd/index.html index 7f343d4..fbc22fe 100644 --- a/site/pktd/index.html +++ b/site/pktd/index.html @@ -327,21 +327,21 @@ -Pktd¶
+Pktd
Pktd is the PKT full node blockchain software. It is a fork of btcd, the golang bitcoin instance.
-Running a full node¶
+Running a full node
If you want to run a full node in the PKT network, you can do so by downloading pktd and compiling it on a Linux or Mac server. Follow the process in Installation and the simply type
./bin/pktd
and it will start up and begin syncing the chain and helping verify the PKT network.NOTE: Running a full node requires over 40 GB of disk space to store the blockchain and is not necessary for participating in the project. If you just want to make a wallet, see PKT Electrum (gui) or PKTWallet (command line) wallets.
-Installation¶
-Install golang¶
+Installation
+Install golang
First, you need to install the go programming language, go to the golang website and learn how to install it on your system:
https://golang.org/doc/install
-Install git¶
+Install git
Next you will need to make sure you have git installed. The first thing to do is check whether you have it installed already:
git version @@ -350,7 +350,7 @@
then you’ll need to install it.Install gitcommand not found: git
Installation will depend on your system, for debian/ubuntu like systems you will want
-sudo apt install git
and for OSX with homebrew, you’ll wantbrew install git
.Install the components¶
+Install the components
Once you have golang and git fully installed and set up, you can use the following commands to install pktd, pktwallet and pktctl.
git clone https://github.com/pkt-cash/pktd diff --git a/site/pktd/migrating_from_electrum/index.html b/site/pktd/migrating_from_electrum/index.html index e808f55..8c37470 100644 --- a/site/pktd/migrating_from_electrum/index.html +++ b/site/pktd/migrating_from_electrum/index.html @@ -327,12 +327,12 @@ -
Migrating from Electrum to PKTWallet¶
+Migrating from Electrum to PKTWallet
If you have an electrum based wallet which becomes overloaded from too many transactions (e.g. from mining directly into it), then you will need to migrate your keys to a pktwallet instance.
-Step 1: Setup pktwallet¶
+Step 1: Setup pktwallet
Follow the instructions in pktwallet to get your wallet up and running
-Step 2: Export your keys¶
+Step 2: Export your keys
-
- In Electrum, click
@@ -343,19 +343,19 @@Wallet
->Private Keys
->Export
Step 2: Export your keysDo not copy the part which says
p2wpkh:
, just the letters after it- The key will look sometihng like this:
ci2TBp2HTWtyMQtizWMuugHxG6lNpInA1bSpLIWzjJS2AI8ObwV5
Step 3: Import key to pktwallet¶
+Step 3: Import key to pktwallet
-
- In a terminal window, run
pktctl --wallet getbalance
to verify that your wallet is working- Unlock your wallet using
pktctl --wallet walletpassphrase <the password you used when setting it up> 1000000
- Type
pktctl --wallet importprivkey <the key you just copied>
- You should see the address printed on the screen
Importing more keys¶
+Importing more keys
-
- When you import a key, it starts a rescan of the chain automatically, in order to import more you need to stop
pktctl --wallet stopresync
to stopSpeed things up¶
+Speed things up
If you know exactly when an address was paid, you can speed up the import by only rescanning blocks where it might have been paid. For example if you are sure that the address was not paid earlier than block number 600000 you can do the following:
@@ -363,7 +363,7 @@Speed things upCheck that it's working¶
+Check that it's working
It's recommended that you run pktwallet with
-d debug
flag in order to be able to see the debug logs. When you are resyncing you should see log lines like the following:1609188780 [DBG] wallet.go:2817 Rescan cycle [620100] @@ -372,7 +372,7 @@
Check that it's working
The number if the block number which is being scanned.
-Troubleshooting¶
+Troubleshooting
ErrBirthdayBlockNotSet: birthday block not set
- Your wallet is not synced yet, wait for it to become synced
diff --git a/site/pktd/pktwallet/index.html b/site/pktd/pktwallet/index.html index ef7e020..3260187 100644 --- a/site/pktd/pktwallet/index.html +++ b/site/pktd/pktwallet/index.html @@ -327,12 +327,12 @@ -pktwallet¶
+pktwallet
The command line PKT wallet
-First Time Installation and Launching¶
-Download pktd¶
-Microsoft Windows¶
+First Time Installation and Launching
+Download pktd
+Microsoft Windows
- Download the most recent zip archive suffixed with
@@ -346,7 +346,7 @@-windows.zip
available from
pktd releases pageMicrosoft WindowsMacOS and Linux¶
+MacOS and Linux
- Download one of the most recent packages available for Linux or MacOS from
@@ -366,13 +366,13 @@
pktd releases pageMacOS and LinuxCreating a New Wallet¶ +
Creating a New Wallet
To create a new PKT wallet, use the pktwallet --create command:
./bin/pktwallet --create
You will be prompted to follow a few steps. Make sure you write your seed words on paper so that you can recover your funds even if your computer is damaged. Do not skip this step. You will thank yourself later. Keep it secret. Keep it safe.
-Launching pktwallet¶
+Launching pktwallet
After creating your wallet, you can launch pktwallet with:
@@ -381,7 +381,7 @@./bin/pktwallet
Launching pktwalletthe pkt block explorer to see when your wallet is up to date. A complete sync from a new installation can take 12+ hours. During this time, the balance in your wallet will not be accurate and you will be unable to transact. You may, however, proceed with creating an address while syncing, as detailed below. -
Creating a New PKT Address¶
+Creating a New PKT Address
While pktwallet is running in the background (or in another terminal), use the following command:
@@ -389,7 +389,7 @@./bin/pktctl --wallet getnewaddress
Creating a New PKT AddressHow to install the PKT World Wallet (Windows only)¶
+How to install the PKT World Wallet (Windows only)
-
- Download the PKT World Wallet
- Follow the installation instructions
@@ -402,7 +402,7 @@How to install the PKT
- To begin mining using the PKT World Wallet, click Miner
- Start Mining
How to install a CLI Wallet¶
+How to install a CLI Wallet
If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps:
- Download pktd-v1.5.1-macos.pkg
@@ -418,7 +418,7 @@How to install a CLI WalletHow to start up CLI Wallet¶
How to start up CLI Wallet
-
- Open terminal
- Enter the command:
@@ -426,7 +426,7 @@$ cd pktd
How to start up CLI WalletHow to create new PKT wallet address¶
+How to create new PKT wallet address
-
- Make sure you have the CLI wallet running in a separate terminal window
- Open Terminal
@@ -434,7 +434,7 @@How to create new PKT wallet addre
- Enter command:
$ ~/pktd/bin/pktctl --wallet getnewaddress
Save your address in a safe place that is easily accessibleHow to send PKT from your CLI wallet¶
+How to send PKT from your CLI wallet
-
- Make sure you have the CLI wallet running in a separate terminal window
- Command click on file to open
@@ -444,7 +444,7 @@How to send PKT from your CLI wall xxxxx = PKT address you want to send from and to
$$$$ = amount of pkt you want to sendHow to install a CLI Wallet from Seed¶
+How to install a CLI Wallet from Seed
If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps:
-
- Download pktd-v1.5.1-macos.pkg
@@ -469,9 +469,9 @@How to install a CLI Wallet from
- Enter the command:
$ ~/pktd/bin/pktctl --wallet getaddressbalances 1 1
this is how you view all your (sub)wallet balancesUsing Your Wallet¶
+Using Your Wallet
pktctl is the program that interfaces with a running pktwallet instance. pktctl functions will not work if pktwallet is not running and accessible. Some functions will be limited until pktwallet is fully synchronized. Some functions require the wallet being unlocked before executing.
-Getting Your Balance¶
+Getting Your Balance
You can check your current PKT balance using pktctl or you can check the balances of each of your addresses if you have more than one.
@@ -484,7 +484,7 @@./bin/pktctl --wallet getbalance
Getting Your BalanceUnlocking Wallet¶
+Unlocking Wallet
While many functions can be performed while the wallet is locked, other functions first require the wallet to be unlocked, including sending PKT and folding. The passphrase used to unlock the wallet was set when creating the wallet.
To unlock your wallet for 120 seconds (this can be changed to your liking), use:
./bin/pktctl --wallet walletpassphrase <passphrase you used when creating wallet> 120 @@ -498,12 +498,12 @@
Unlocking WalletSending PKT¶
+Sending PKT
You can send PKT using the
sendtoaddress
command, but first you must unlock your wallet for sending, as shown in the previous step.To send cjd a 10 PKT tip:
-./bin/pktctl --wallet sendtoaddress pkt1qt8xe7dwpelngtcpsgn5nkj3pwwdm7gf3l4auax 10
Sending PKT from Specific Address¶
+Sending PKT from Specific Address
pktwallet gives you control over which addresses are used for making a payment. This means you can keep different PKT in your wallet separate, for example separating business transactions from personal transactions.
@@ -524,7 +524,7 @@Sending PKT from Specific Address
-
pktctl.exe --wallet sendfrom <their address> 10 [\"<your address>\"]
Sweeping an Address¶
+Sweeping an Address
With pktwallet, sending 0 PKT has special significance in that it will send "as much PKT as possible". To sweep
<old address>
address into<new address>
, you can use the following command:./bin/pktctl --wallet sendfrom <new address> 0 '["<old address>"]' @@ -535,7 +535,7 @@
Sweeping an AddressFolding Coins¶ +
Folding Coins
If you are the recipient of many transactions, such as is the case in mining, you may not be able to spend all of them at once. This is similar to someone who is paid in pennies having a difficult time using the pennies to buy a car. To solve this issue, you can consolidate all of the coins which were paid to you by folding.
Folding is sweeping an address to itself. Just like in sweeping, you may need to run the command many times before you have completely folded. See FAQs for more detail.
@@ -546,7 +546,7 @@Folding Coins
-
pktctl.exe --wallet sendfrom <address> 0 [\"<address>\"]
Alternative GUI Wallets¶
+Alternative GUI Wallets
@@ -559,16 +559,16 @@
- Electrum for PKT (Windows, MacOS, Linux)
Alternative GUI WalletsZulu Wallet (MacOS) -
FAQs¶
-I have several machines mining, do I need the wallet running on each machine?¶
+FAQs
+I have several machines mining, do I need the wallet running on each machine?
-NO! In fact, the wallet doesn't need to be running at all to mine, but you do need to ensure you have control of the address you are mining to.
Should I leave pktwallet running?¶
+Should I leave pktwallet running?
-It is not a requirement to have pktwallet running to mine. However, if you leave it running, it will stay synced. This will save time when performing pktctl functions, such as folding and sending coins. If pktwallet has not been running for some time, it will need time to sync up to the current block from the time it last ran. As a safety precaution, don't forget to lock your wallet if you do keep it running.
How often should I fold and why?¶
+How often should I fold and why?
diff --git a/site/pktwalletgui/index.html b/site/pktwalletgui/index.html index 9eb6b5b..fec42cc 100644 --- a/site/pktwalletgui/index.html +++ b/site/pktwalletgui/index.html @@ -327,10 +327,10 @@ -The purpose of folding is to turn all your small payments (such as from mining) into quickly and easily spendable coins. If you are multi-pool mining and have rewards in every block, you will have roughly 1440 unconsolidated transactions per day - one for each block at a rate of ~ 1 block/min. If you do not fold these transactions, after awhile you'll have a huge amount of transactions to process if you wish to send the sum or portion thereof of these smaller transactions. So, while folding isn't required and will have no impact on mining if you do or do not, you're doing yourself a favor later by keeping the transactions as consolidated as possible. It is typical to fold as much as possible every day or every few days when you think about it, depending on your use case. It can also be scripted. Note that folding is a transaction itself. Depending on how much you have to fold, you may need to run the command many times. You also may need to wait for coins to confirm before folding more. Once the folding command fails or you see a very low number in the outputcount field from running
./bin/pktctl --wallet getaddressbalances 1 1
or on PKT block explorer under Unconsolidated Txns, you have successfully folded the best you can for that point in time.PKT Wallet MacOS GUI¶
+PKT Wallet MacOS GUI
NOTE: The PKT Wallet GUI handles mining income well and is a good wallet for those hoping to hold a copy of the blockchain and to keep ownership of their own keys and passphrases for multiple addresses.
-First setup¶
-MacOS¶
+First setup
+MacOS
-
- Download pktwallet-(version).dmg
@@ -345,7 +345,7 @@MacOS&
- Continue with Setting up your wallet or Load Existing Wallet From Seed below.
Setting up your wallet¶
+Setting up your wallet
Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe.
A video tutorial is available for this method:
@@ -365,7 +365,7 @@Setting up your walletClick "Balances" again to display your balances. By default, accounts with zero PKT will not be displayed unless you click "Get All Addresses"
Load Existing Wallet From Seed¶
+Load Existing Wallet From Seed
Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe.
A video tutorial is available for this method:
@@ -390,7 +390,7 @@Load Existing Wallet From Seed
Receiving PKT¶
+Receiving PKT
-
- To receive coins, you need to create a new PKT address
- Click the "Receive" tab
@@ -401,7 +401,7 @@Receiving PKTWhen PKT gets sent to your new address, you will get a notification. It says "unconfirmed" because the transaction has not yet been included in the history of the blockchain.
- Congratulations, you have received your first PKT. It make take some time before the transaction is confirmed by the network and the PKT is formally in your account.
Sending PKT¶
+Sending PKT
-
- To pay PKT to someone else, click on the Send tab and paste the address to be paid
- Type a description of the payment, this is just for you, it will not be sent to the person you are paying
@@ -414,13 +414,13 @@Sending PKTJust like when receiving, your transaction will appear first as "unconfirmed" and then later it will switch to a clock when it has been included in the blockchain.
- When people consider a transaction to be "complete" depends on the merchant, but in after some time the transaction will be confirmed and the PKT be in the recipient's account. Congratulations, you've sent PKT!
About Units¶
+About Units
-
- Each PKT is made up of 1000 milli-PKT, denoted
mPKT
- Each milli-PKT is sub-divided into 1000 micro-PKT, denoted
uPKT
- Each micro-PKT is sub-divided into 1000 nano-PKT, denoted
nPKT
Statistical Verification¶
+Statistical Verification
PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as
MIN(100%, K / distance_from_tip)
whereK
is a constant which we set at20
to make PKT Electrum verify around 200 blocks total.With
K = 20
, the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance diff --git a/site/search/search_index.json b/site/search/search_index.json index 8b699cf..bb60168 100644 --- a/site/search/search_index.json +++ b/site/search/search_index.json @@ -1 +1 @@ -{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"PKT Documentation \u00b6 Documentation for the PKT project PKT Network \u00b6 PKT Network is a fast, resilient, and censorship-resistant media network powered by the people. Instead of relying on centralized companies for its network infrastructure, PKT is a decentralized physical infrastructure (DePIN) project. This means the network is powered by its global community of economically incentivized users. Staking \u00b6 PKT economically incentivizes people to stake and earn PKT. Each stake must be assigned to an infrastructure node that powers the PKT Network. Supporting the network has never been easier. Get started today. Migration airdrop \u00b6 Infrastructure \u00b6 The PKT Network relies on its community to operate its underlying infrastructure. This is made possible by staking, which requires people to lockup PKT tokens to earn rewards. Beginning in October 26, 2024, each stake must be paired with an infrastructure node to continue receiving rewards. This ensures that the economic incentives in fact scale the underlying network. This ensures providers are rewarded to maintain reliable and accessible network resources. Tokenomics \u00b6 Affiliate \u00b6 How to buy PKT \u00b6 Wallets \u00b6 PKT works with all Ethereum compatible wallets. The wallets that are most recommended for staking and storing PKT are the Coinbase Wallet and MetaMask. Utility \u00b6 PKT functions as a versatile utility network built on the Base blockchain. The Base blockchain is a L2 that delivers fast, low cost payments using the Ethereum network. The PKT Network delivers a digital foundation for apps, products and platforms to access and service global customers. Governance \u00b6 Community \u00b6 PKT is a community-based project. There is no company, no foundation, no equity investors and no DAO. Join the community to connect with other Pkteers who are believe in geting paid to support the future of the media industry. Brand Assets \u00b6","title":"Home"},{"location":"#pkt-documentation","text":"Documentation for the PKT project","title":"PKT Documentation"},{"location":"#pkt-network","text":"PKT Network is a fast, resilient, and censorship-resistant media network powered by the people. Instead of relying on centralized companies for its network infrastructure, PKT is a decentralized physical infrastructure (DePIN) project. This means the network is powered by its global community of economically incentivized users.","title":"PKT Network"},{"location":"#staking","text":"PKT economically incentivizes people to stake and earn PKT. Each stake must be assigned to an infrastructure node that powers the PKT Network. Supporting the network has never been easier. Get started today.","title":"Staking"},{"location":"#migration-airdrop","text":"","title":"Migration airdrop"},{"location":"#infrastructure","text":"The PKT Network relies on its community to operate its underlying infrastructure. This is made possible by staking, which requires people to lockup PKT tokens to earn rewards. Beginning in October 26, 2024, each stake must be paired with an infrastructure node to continue receiving rewards. This ensures that the economic incentives in fact scale the underlying network. This ensures providers are rewarded to maintain reliable and accessible network resources.","title":"Infrastructure"},{"location":"#tokenomics","text":"","title":"Tokenomics"},{"location":"#affiliate","text":"","title":"Affiliate"},{"location":"#how-to-buy-pkt","text":"","title":"How to buy PKT"},{"location":"#wallets","text":"PKT works with all Ethereum compatible wallets. The wallets that are most recommended for staking and storing PKT are the Coinbase Wallet and MetaMask.","title":"Wallets"},{"location":"#utility","text":"PKT functions as a versatile utility network built on the Base blockchain. The Base blockchain is a L2 that delivers fast, low cost payments using the Ethereum network. The PKT Network delivers a digital foundation for apps, products and platforms to access and service global customers.","title":"Utility"},{"location":"#governance","text":"","title":"Governance"},{"location":"#community","text":"PKT is a community-based project. There is no company, no foundation, no equity investors and no DAO. Join the community to connect with other Pkteers who are believe in geting paid to support the future of the media industry.","title":"Community"},{"location":"#brand-assets","text":"","title":"Brand Assets"},{"location":"PKT_FAQ/","text":"PKT FAQ \u00b6 This is a community defined FAQ, edit this page to improve it. General \u00b6 What is PKT? \u00b6 PKT allows users to monetize their unused internet bandwidth. By participating in the PKT Network you are helping to build a faster, stronger, and more secure, decentralized network. What is PKT Cash? \u00b6 PKT is a native mined coin based on an open source project. There are multiple companies in the PKT ecosystem but no company \"behind PKT.\" What wallets are available? \u00b6 If you're not mining, the best wallet is PKT Electrum , which was developed as part of a Network Steward funded project and supports Windows, Mac and Linux. However, mining into electrum will break it and if you do it, you will need to export your keys to recover funds. If you use Microsoft Windows, the best wallet to use is PKT.world wallet If you use Mac and want to mine, you can use Zulu Wallet If you are using a server, you can use the CLI wallet which is the base code for the PKT.world wallet and Zulu wallet. There is an ongoing wallet called MatterFi which is based on the powerful OpenTransactions technology. You are invited to help beta-test this wallet in #matterfi on pkt.chat. Where can I buy or sell PKT? \u00b6 Currently there are two ways to buy and sell, you can buy wrapped PKT on pancakeswap and then un-wrap it using the ODAPP (NOTE: in order to use wrapped PKT, you will need Binance Smart Chain BNB to pay gas fees. Also note that ODAPP charges 3.5% when wrapping or unwrapping) If you would like a more human experience of buying or selling, you can come to ye ol' telegram chat where PKT has been traded since the beginning. Remember that telegram is a place where scammers lurk, so always read and follow the guidelines and always use escrow, even after you have traded with somebody multiple times. What is the path towards being publicly listed on exchanges? \u00b6 PKT is a decentralized project like Bitcoin, not a centralized token. Community members are having conversations with different exchanges and you can do it too. There are no more details at this time about the particular listing initiatives. The differentiating factors vs. Bitcoin and other crypto coins? \u00b6 The differences from Bitcoin are: PacketCrypt bandwidth hard proof of work replaces SHA-256 1 minute block time 6 billion coins total Mining yields decrease 10% every 100 days in what is called the decimation 20% of each mined block goes to the Network Steward wallet, which funds R&D of the ecosystem Vision \u00b6 What is value proposition of PKT? \u00b6 The PKT project is focused on building a decentralized bandwidth marketplace to decouple the business and technical aspects of internet service from the physical aspect of maintaining infrastructure. The fundamental value is division of labor and lowering the barrier of entry for internet service competition. What is a Cloud ISP? \u00b6 There is an explanation video about Cloud ISPs on Twitter. The role of a Cloud ISP is to perform the technical and administrative aspects of internet service so that the aspects of infrastructure operation can be done by individuals, small businesses and community groups. What do you see as the greatest challenge to PKTs long-term success? \u00b6 Historically, crypto projects achieve the best results when they are focused on use cases and utility. PKT is focusing on building a decentralized bandwidth marketplace where people can earn PKT with their internet and use PKT to pay for connectivity. The greatest challenge is getting the next billion people connected to the internet. What are the applications and software currently being explored? \u00b6 A free to use VPN service called AnodeVPN will be launched in 2021, and users can pay for their VPN speed with PKT Cash. Internet bandwidth sharing and mesh networking are also currently in the stages of development. Mining \u00b6 How is PKT mined? \u00b6 PKT is mined using the novel PacketCrypt bandwidth-hard mining algorithm which requires bandwidth to mine. It uses a combination of CPU and bandwidth, you get an advantage by working together with other miners which requires bandwidth. How will the growth in mining impact the coin? \u00b6 As more people mine PacketCrypt, they will need to invest in more network infrastructure which will become useful later on for making the internet faster and more accessible. What wallet do I use for mining? \u00b6 For mining it's recommended to use the command line PKTWallet due to the amount of mining transactions and it's ability to scale. If you use a Mac then you can also use the PKT-Cash-Wallet for MacOS. Is there an easy way to start mining? \u00b6 There are mining instructions for mining on the PKT website. PktPal is a business in the community which offers turn-key mining solutions. Do miners mining on a single pool have any benefit over miners mining on multi pool? \u00b6 Multi-pool mining means submitting the exact same announcements to multiple pools. So if you have the bandwidth available it will always benefit you to mine in all of the major pools. Network Steward \u00b6 What is the Network Steward? \u00b6 The Network Steward is part of the consensus rules of the PKT blockchain. 20% of every newly mined block goes to a wallet address and then those coins are 100% paid out in grants to help build open-source technology and develop the PKT Network. Network Steward funds must be deployed within 90 days or else they are burned. This address was initially set to a multi-signature group, but it can be changed by a PoS based vote process. Who is the Network Steward currently? \u00b6 A group of 5 volunteers including the original author of the code. More information can be found [here]: (https://pkt.cash/network-steward) How is the (current) Network Steward using the funds? \u00b6 The Network Steward follows a project evaluation process. No funds have ever been deployed except to fund projects which were proposed by members of the public in an open competitive process. The Network Steward operates with full transparency. Every transaction made by the Network Steward can be seen in the block explorer and is refered to in the Network Steward's github repository explaining the project which that transaction helped to fund. Has the Network Steward burned any funds? \u00b6 You can check out the stats on burned coins in the block explorer Network Steward page . How do I submit a proposal? \u00b6 There are currently two ways to propose a project to the PKT Network Steward, if your project is large and has the benefit of accountants to be able to verify that the money has been spent appropriately, you can make a proposal directly to the NS through the NS github Network Steward's Github . The NS opens calls from time to time with a specified budget and during these calls anyone can apply. If you want to propose a smaller project and have the accounting and official reporting managed for you, you can propose to the User Operated Internet fund which is funded by the Network Steward but is administored by NLnet, a well respected public benefit organization which is experienced at managing these types of projects. Dilligence \u00b6 Who is the creator? Is he actively involved? What's his ownership? \u00b6 PKT was created by Caleb James DeLisle, the creator of cjdns. Cjdns is the only decentralized mesh networking protocol which is designed to function in even if some of the nodes in the network are adversarial. Caleb has been mining PKT similarly to everybody else in the project. Who stands to benefit the most from growth and adaption? \u00b6 The early miners and adopters of PKT will benefit greatly. PKT also benefits everybody because it will lead to a lower cost and highly competitive internet service ecosystem. Are there any regulatory or compliance liabilities? \u00b6 PKT is a fully decentralized fork of Bitcoin, so it is similarly considered to be a commodity. What legal disclosures need to made with investments into this? Or are there none? \u00b6 Because PKT is a fully decentralized clone of the Bitcoin codebase, the legal and regulatory framing is probably similar. Communication \u00b6 Has any branding or marketing already been completed? \u00b6 PKT is a decentralized project so there is no official brand for PKT, however the website pkt.cash, logos, and other materials were developed as part of a Network Steward funded project and are usable under the Creative Commons license. Are any brand ambassadors already engaged? \u00b6 PKT is not a centralized project so anybody can be an ambassador. There are a number of companies and initiatives which currently exist in the PKT ecosystem including AnodeVPN and Pkt Pal. Commercial \u00b6 How can I contact the PKT Team \u00b6 You are the PKT team, PKT is a fully decentralized project like Bitcoin, so everyone is the team. The bad news is there is no central authority who can write you a check, but the good news is there are a few businesses in the PKT ecosystem who might be prepared to buy your services. See PKT Commercial for a (non-exhaustive) list. Can I build X with PKT? \u00b6 YES , the PKT community encourages all types of (legal, responsible) business activity in the PKT ecosystem. The ODAPP bridge was created by a community member and was not in the original PKT vision but this bridge is now an important part of the infrastructure of the PKT ecosystem. You can also build your commercial venture and the we in the PKT community will do what we can to help you be successful.","title":"PKT FAQ"},{"location":"PKT_FAQ/#pkt-faq","text":"This is a community defined FAQ, edit this page to improve it.","title":"PKT FAQ"},{"location":"PKT_FAQ/#general","text":"","title":"General"},{"location":"PKT_FAQ/#what-is-pkt","text":"PKT allows users to monetize their unused internet bandwidth. By participating in the PKT Network you are helping to build a faster, stronger, and more secure, decentralized network.","title":"What is PKT?"},{"location":"PKT_FAQ/#what-is-pkt-cash","text":"PKT is a native mined coin based on an open source project. There are multiple companies in the PKT ecosystem but no company \"behind PKT.\"","title":"What is PKT Cash?"},{"location":"PKT_FAQ/#what-wallets-are-available","text":"If you're not mining, the best wallet is PKT Electrum , which was developed as part of a Network Steward funded project and supports Windows, Mac and Linux. However, mining into electrum will break it and if you do it, you will need to export your keys to recover funds. If you use Microsoft Windows, the best wallet to use is PKT.world wallet If you use Mac and want to mine, you can use Zulu Wallet If you are using a server, you can use the CLI wallet which is the base code for the PKT.world wallet and Zulu wallet. There is an ongoing wallet called MatterFi which is based on the powerful OpenTransactions technology. You are invited to help beta-test this wallet in #matterfi on pkt.chat.","title":"What wallets are available?"},{"location":"PKT_FAQ/#where-can-i-buy-or-sell-pkt","text":"Currently there are two ways to buy and sell, you can buy wrapped PKT on pancakeswap and then un-wrap it using the ODAPP (NOTE: in order to use wrapped PKT, you will need Binance Smart Chain BNB to pay gas fees. Also note that ODAPP charges 3.5% when wrapping or unwrapping) If you would like a more human experience of buying or selling, you can come to ye ol' telegram chat where PKT has been traded since the beginning. Remember that telegram is a place where scammers lurk, so always read and follow the guidelines and always use escrow, even after you have traded with somebody multiple times.","title":"Where can I buy or sell PKT?"},{"location":"PKT_FAQ/#what-is-the-path-towards-being-publicly-listed-on-exchanges","text":"PKT is a decentralized project like Bitcoin, not a centralized token. Community members are having conversations with different exchanges and you can do it too. There are no more details at this time about the particular listing initiatives.","title":"What is the path towards being publicly listed on exchanges?"},{"location":"PKT_FAQ/#the-differentiating-factors-vs-bitcoin-and-other-crypto-coins","text":"The differences from Bitcoin are: PacketCrypt bandwidth hard proof of work replaces SHA-256 1 minute block time 6 billion coins total Mining yields decrease 10% every 100 days in what is called the decimation 20% of each mined block goes to the Network Steward wallet, which funds R&D of the ecosystem","title":"The differentiating factors vs. Bitcoin and other crypto coins?"},{"location":"PKT_FAQ/#vision","text":"","title":"Vision"},{"location":"PKT_FAQ/#what-is-value-proposition-of-pkt","text":"The PKT project is focused on building a decentralized bandwidth marketplace to decouple the business and technical aspects of internet service from the physical aspect of maintaining infrastructure. The fundamental value is division of labor and lowering the barrier of entry for internet service competition.","title":"What is value proposition of PKT?"},{"location":"PKT_FAQ/#what-is-a-cloud-isp","text":"There is an explanation video about Cloud ISPs on Twitter. The role of a Cloud ISP is to perform the technical and administrative aspects of internet service so that the aspects of infrastructure operation can be done by individuals, small businesses and community groups.","title":"What is a Cloud ISP?"},{"location":"PKT_FAQ/#what-do-you-see-as-the-greatest-challenge-to-pkts-long-term-success","text":"Historically, crypto projects achieve the best results when they are focused on use cases and utility. PKT is focusing on building a decentralized bandwidth marketplace where people can earn PKT with their internet and use PKT to pay for connectivity. The greatest challenge is getting the next billion people connected to the internet.","title":"What do you see as the greatest challenge to PKTs long-term success?"},{"location":"PKT_FAQ/#what-are-the-applications-and-software-currently-being-explored","text":"A free to use VPN service called AnodeVPN will be launched in 2021, and users can pay for their VPN speed with PKT Cash. Internet bandwidth sharing and mesh networking are also currently in the stages of development.","title":"What are the applications and software currently being explored?"},{"location":"PKT_FAQ/#mining","text":"","title":"Mining"},{"location":"PKT_FAQ/#how-is-pkt-mined","text":"PKT is mined using the novel PacketCrypt bandwidth-hard mining algorithm which requires bandwidth to mine. It uses a combination of CPU and bandwidth, you get an advantage by working together with other miners which requires bandwidth.","title":"How is PKT mined?"},{"location":"PKT_FAQ/#how-will-the-growth-in-mining-impact-the-coin","text":"As more people mine PacketCrypt, they will need to invest in more network infrastructure which will become useful later on for making the internet faster and more accessible.","title":"How will the growth in mining impact the coin?"},{"location":"PKT_FAQ/#what-wallet-do-i-use-for-mining","text":"For mining it's recommended to use the command line PKTWallet due to the amount of mining transactions and it's ability to scale. If you use a Mac then you can also use the PKT-Cash-Wallet for MacOS.","title":"What wallet do I use for mining?"},{"location":"PKT_FAQ/#is-there-an-easy-way-to-start-mining","text":"There are mining instructions for mining on the PKT website. PktPal is a business in the community which offers turn-key mining solutions.","title":"Is there an easy way to start mining?"},{"location":"PKT_FAQ/#do-miners-mining-on-a-single-pool-have-any-benefit-over-miners-mining-on-multi-pool","text":"Multi-pool mining means submitting the exact same announcements to multiple pools. So if you have the bandwidth available it will always benefit you to mine in all of the major pools.","title":"Do miners mining on a single pool have any benefit over miners mining on multi pool?"},{"location":"PKT_FAQ/#network-steward","text":"","title":"Network Steward"},{"location":"PKT_FAQ/#what-is-the-network-steward","text":"The Network Steward is part of the consensus rules of the PKT blockchain. 20% of every newly mined block goes to a wallet address and then those coins are 100% paid out in grants to help build open-source technology and develop the PKT Network. Network Steward funds must be deployed within 90 days or else they are burned. This address was initially set to a multi-signature group, but it can be changed by a PoS based vote process.","title":"What is the Network Steward?"},{"location":"PKT_FAQ/#who-is-the-network-steward-currently","text":"A group of 5 volunteers including the original author of the code. More information can be found [here]: (https://pkt.cash/network-steward)","title":"Who is the Network Steward currently?"},{"location":"PKT_FAQ/#how-is-the-current-network-steward-using-the-funds","text":"The Network Steward follows a project evaluation process. No funds have ever been deployed except to fund projects which were proposed by members of the public in an open competitive process. The Network Steward operates with full transparency. Every transaction made by the Network Steward can be seen in the block explorer and is refered to in the Network Steward's github repository explaining the project which that transaction helped to fund.","title":"How is the (current) Network Steward using the funds?"},{"location":"PKT_FAQ/#has-the-network-steward-burned-any-funds","text":"You can check out the stats on burned coins in the block explorer Network Steward page .","title":"Has the Network Steward burned any funds?"},{"location":"PKT_FAQ/#how-do-i-submit-a-proposal","text":"There are currently two ways to propose a project to the PKT Network Steward, if your project is large and has the benefit of accountants to be able to verify that the money has been spent appropriately, you can make a proposal directly to the NS through the NS github Network Steward's Github . The NS opens calls from time to time with a specified budget and during these calls anyone can apply. If you want to propose a smaller project and have the accounting and official reporting managed for you, you can propose to the User Operated Internet fund which is funded by the Network Steward but is administored by NLnet, a well respected public benefit organization which is experienced at managing these types of projects.","title":"How do I submit a proposal?"},{"location":"PKT_FAQ/#dilligence","text":"","title":"Dilligence"},{"location":"PKT_FAQ/#who-is-the-creator-is-he-actively-involved-whats-his-ownership","text":"PKT was created by Caleb James DeLisle, the creator of cjdns. Cjdns is the only decentralized mesh networking protocol which is designed to function in even if some of the nodes in the network are adversarial. Caleb has been mining PKT similarly to everybody else in the project.","title":"Who is the creator? Is he actively involved? What's his ownership?"},{"location":"PKT_FAQ/#who-stands-to-benefit-the-most-from-growth-and-adaption","text":"The early miners and adopters of PKT will benefit greatly. PKT also benefits everybody because it will lead to a lower cost and highly competitive internet service ecosystem.","title":"Who stands to benefit the most from growth and adaption?"},{"location":"PKT_FAQ/#are-there-any-regulatory-or-compliance-liabilities","text":"PKT is a fully decentralized fork of Bitcoin, so it is similarly considered to be a commodity.","title":"Are there any regulatory or compliance liabilities?"},{"location":"PKT_FAQ/#what-legal-disclosures-need-to-made-with-investments-into-this-or-are-there-none","text":"Because PKT is a fully decentralized clone of the Bitcoin codebase, the legal and regulatory framing is probably similar.","title":"What legal disclosures need to made with investments into this? Or are there none?"},{"location":"PKT_FAQ/#communication","text":"","title":"Communication"},{"location":"PKT_FAQ/#has-any-branding-or-marketing-already-been-completed","text":"PKT is a decentralized project so there is no official brand for PKT, however the website pkt.cash, logos, and other materials were developed as part of a Network Steward funded project and are usable under the Creative Commons license.","title":"Has any branding or marketing already been completed?"},{"location":"PKT_FAQ/#are-any-brand-ambassadors-already-engaged","text":"PKT is not a centralized project so anybody can be an ambassador. There are a number of companies and initiatives which currently exist in the PKT ecosystem including AnodeVPN and Pkt Pal.","title":"Are any brand ambassadors already engaged?"},{"location":"PKT_FAQ/#commercial","text":"","title":"Commercial"},{"location":"PKT_FAQ/#how-can-i-contact-the-pkt-team","text":"You are the PKT team, PKT is a fully decentralized project like Bitcoin, so everyone is the team. The bad news is there is no central authority who can write you a check, but the good news is there are a few businesses in the PKT ecosystem who might be prepared to buy your services. See PKT Commercial for a (non-exhaustive) list.","title":"How can I contact the PKT Team"},{"location":"PKT_FAQ/#can-i-build-x-with-pkt","text":"YES , the PKT community encourages all types of (legal, responsible) business activity in the PKT ecosystem. The ODAPP bridge was created by a community member and was not in the original PKT vision but this bridge is now an important part of the infrastructure of the PKT ecosystem. You can also build your commercial venture and the we in the PKT community will do what we can to help you be successful.","title":"Can I build X with PKT?"},{"location":"affiliate/","text":"Affiliates Rewards \u00b6 PKT also has an affiliate program built into the protocol. Each connected wallet receives an affiliate code. If an individual (Affiliate-2) stakes using an affiliate code from someone (Affiliate-1), then Affiliate-2 receives a 1% yield bonus, in perpetuity. Affiliate-1, who provided the affiliate code, receives a 4% yield bonus on the stake of Affiliate-2, in perpetuity. Affiliate-1 also receives a 1% yield bonus, in perpetuity, on the stake of anyone that Affiliate-2 provides their affiliate code to. These rewards incentivize organic growth within the ecosystem, while scaling the network worldwide.","title":"Affiliate"},{"location":"affiliate/#affiliates-rewards","text":"PKT also has an affiliate program built into the protocol. Each connected wallet receives an affiliate code. If an individual (Affiliate-2) stakes using an affiliate code from someone (Affiliate-1), then Affiliate-2 receives a 1% yield bonus, in perpetuity. Affiliate-1, who provided the affiliate code, receives a 4% yield bonus on the stake of Affiliate-2, in perpetuity. Affiliate-1 also receives a 1% yield bonus, in perpetuity, on the stake of anyone that Affiliate-2 provides their affiliate code to. These rewards incentivize organic growth within the ecosystem, while scaling the network worldwide.","title":"Affiliates Rewards"},{"location":"airdrop/","text":"Migration Airdrop \u00b6 How to claim Airdrop \u00b6 If you own PacketCrypt proof-of-work (\u201cPoW\u201d) coins you will need to swap into tokens of PKT on Base. All PacketCrypt. Install a Web3 wallet like MetaMask or Coinbase Wallet Buy enough Base Ethereum that you are able to pay a very small transaction fee Add the PKT contract address to your Web3 wallet Copy your wallet address Open your legacy PKT wallet (PKT World, Anode, CLI) Choose to copy the private key for one of the addresses in your legacy PKT wallet that has coins you want to swap Download the migration app here Paste the private key into the migration app Paste your new Web3 wallet address into the migration app The migration app will compute a digital signature Open the new PKT dashboard app on pkt.cash Navigate to the migration tab Paste the signature from the migration app Click submit and this will claim your tokens of PKT on Base, which will be sent to the Web3 wallet address you provided You can repeat this process for each wallet address you want to swap (you can use the same Web3 wallet address, or a new Web3 wallet address of your choice. Note It will only be possible to swap PKT on Base for PoW coins via OTC. FYI If you have tokens on WPKT, you will need to await for the Odapp custodian to inform the community how to redeem WPKT for PKT on Base.","title":"Migration airdrop"},{"location":"airdrop/#migration-airdrop","text":"","title":"Migration Airdrop"},{"location":"airdrop/#how-to-claim-airdrop","text":"If you own PacketCrypt proof-of-work (\u201cPoW\u201d) coins you will need to swap into tokens of PKT on Base. All PacketCrypt. Install a Web3 wallet like MetaMask or Coinbase Wallet Buy enough Base Ethereum that you are able to pay a very small transaction fee Add the PKT contract address to your Web3 wallet Copy your wallet address Open your legacy PKT wallet (PKT World, Anode, CLI) Choose to copy the private key for one of the addresses in your legacy PKT wallet that has coins you want to swap Download the migration app here Paste the private key into the migration app Paste your new Web3 wallet address into the migration app The migration app will compute a digital signature Open the new PKT dashboard app on pkt.cash Navigate to the migration tab Paste the signature from the migration app Click submit and this will claim your tokens of PKT on Base, which will be sent to the Web3 wallet address you provided You can repeat this process for each wallet address you want to swap (you can use the same Web3 wallet address, or a new Web3 wallet address of your choice. Note It will only be possible to swap PKT on Base for PoW coins via OTC. FYI If you have tokens on WPKT, you will need to await for the Odapp custodian to inform the community how to redeem WPKT for PKT on Base.","title":"How to claim Airdrop"},{"location":"buy-pkt/","text":"How to Buy PKT \u00b6 To buy PKT on Base: First you need Ethereum on Base in your web3 wallet. If you don\u2019t have a web3 wallet, get a Coinbase Wallet or MetaMask wallet here. You can buy Ethereum on Base directly in your Coinbase Wallet. Or you can buy from another exchange or crypto on-ramp and transfer to your wallet. If you already have Ethereum, but need to convert it to Ethereum on Base, you can use a bridge here . Once you have Ethereum on Base, you can swap PKT directly in your web3 wallet. NOTE If you already own PKT from the Packetcrypt proof-of-work coin, you are eligible to claim your 1:1 PKT airdrop on Base here. You will be eligible to claim \u2153 of your PKT airdrop now, \u2153 on February 21, 2025, and \u2153 on August 21, 2025.","title":"How to buy PKT"},{"location":"buy-pkt/#how-to-buy-pkt","text":"To buy PKT on Base: First you need Ethereum on Base in your web3 wallet. If you don\u2019t have a web3 wallet, get a Coinbase Wallet or MetaMask wallet here. You can buy Ethereum on Base directly in your Coinbase Wallet. Or you can buy from another exchange or crypto on-ramp and transfer to your wallet. If you already have Ethereum, but need to convert it to Ethereum on Base, you can use a bridge here . Once you have Ethereum on Base, you can swap PKT directly in your web3 wallet. NOTE If you already own PKT from the Packetcrypt proof-of-work coin, you are eligible to claim your 1:1 PKT airdrop on Base here. You will be eligible to claim \u2153 of your PKT airdrop now, \u2153 on February 21, 2025, and \u2153 on August 21, 2025.","title":"How to Buy PKT"},{"location":"cjdns_websites/","text":"Setup your website on cjdns network \u00b6 Install Yunohost by following the detailed instructions provided here . Once the installation is complete, log in as an administrator at yunohost.local . Perform a system update, which may take some time. Navigate to Tools -> Yunohost Settings -> Security, and under NGINX, disable \"Force HTTPS.\" Click Save to apply the changes. Reboot your Yunohost server to make the tun device available. Navigate to Tools->Shutdown and click Reboot. Return to yunohost.local after the update and navigate to the Applications menu. Click on Install, search for \"wordpress,\" select it, and proceed with the installation. Go back to the Applications menu, select \"All apps\" next to the search bar and then search for \"cjdns\", select it and install it. Once cjdns has installed your cjdns ipv6 will be displayed, Copy it. Ssh into your yunohost and edit your nginx configuration nano /etc/nginx/conf.d/[domain.com].conf there under the server section add your cjdns ipv6 as a server_name , make sure to put it with in square brackets [] and also remove any leading zeros from each section if there are any. For example: fc3d:2895:0b0c:cf4a:3d3b:216f:7268:a34a becomes [fc3d:2895:b0c:cf4a:3d3b:216f:7268:a34a] Save the conf file and run nginx -t to check for any errors and then `systemctl restart nginx` to restart the server. Congratulations now you have your new website available for everyone in the cjdns network. You can access it by using a browser and go to http://[your-cjdns-ipv6]/blog For example: `http://[fc3d:2895:b0c:cf4a:3d3b:216f:7268:a34a]/blog`","title":"Setup your website on cjdns network"},{"location":"cjdns_websites/#setup-your-website-on-cjdns-network","text":"Install Yunohost by following the detailed instructions provided here . Once the installation is complete, log in as an administrator at yunohost.local . Perform a system update, which may take some time. Navigate to Tools -> Yunohost Settings -> Security, and under NGINX, disable \"Force HTTPS.\" Click Save to apply the changes. Reboot your Yunohost server to make the tun device available. Navigate to Tools->Shutdown and click Reboot. Return to yunohost.local after the update and navigate to the Applications menu. Click on Install, search for \"wordpress,\" select it, and proceed with the installation. Go back to the Applications menu, select \"All apps\" next to the search bar and then search for \"cjdns\", select it and install it. Once cjdns has installed your cjdns ipv6 will be displayed, Copy it. Ssh into your yunohost and edit your nginx configuration nano /etc/nginx/conf.d/[domain.com].conf there under the server section add your cjdns ipv6 as a server_name , make sure to put it with in square brackets [] and also remove any leading zeros from each section if there are any. For example: fc3d:2895:0b0c:cf4a:3d3b:216f:7268:a34a becomes [fc3d:2895:b0c:cf4a:3d3b:216f:7268:a34a] Save the conf file and run nginx -t to check for any errors and then `systemctl restart nginx` to restart the server. Congratulations now you have your new website available for everyone in the cjdns network. You can access it by using a browser and go to http://[your-cjdns-ipv6]/blog For example: `http://[fc3d:2895:b0c:cf4a:3d3b:216f:7268:a34a]/blog`","title":"Setup your website on cjdns network"},{"location":"commercial/","text":"PKT Commercial \u00b6 This is a mostly un-moderated list of classified advertisements and offers. Buyer beware, anyone can contribute their own offer and pkt.cash does not verify them. Add yourself \u00b6 Make a Pull Request to This page to add your offer. Keep it short and to the point NO PICTURES, no color text, no big fonts Use the appropriate category Hardware \u00b6 Pktpal.com \u00b6 Buy a PKT Cube which will mine PKT with your unused internet and provides easy-to-use PkteerOS wallet. Hosting \u00b6 Space-hosting.net \u00b6 Mining servers for rent PKT Cloud Mining Service \u00b6 AMAPOOL.com \u00b6 Your best choice towards a fully automated PKT cloud mining solution.","title":"PKT Commercial"},{"location":"commercial/#pkt-commercial","text":"This is a mostly un-moderated list of classified advertisements and offers. Buyer beware, anyone can contribute their own offer and pkt.cash does not verify them.","title":"PKT Commercial"},{"location":"commercial/#add-yourself","text":"Make a Pull Request to This page to add your offer. Keep it short and to the point NO PICTURES, no color text, no big fonts Use the appropriate category","title":"Add yourself"},{"location":"commercial/#hardware","text":"","title":"Hardware"},{"location":"commercial/#pktpalcom","text":"Buy a PKT Cube which will mine PKT with your unused internet and provides easy-to-use PkteerOS wallet.","title":"Pktpal.com"},{"location":"commercial/#hosting","text":"","title":"Hosting"},{"location":"commercial/#space-hostingnet","text":"Mining servers for rent","title":"Space-hosting.net"},{"location":"commercial/#pkt-cloud-mining-service","text":"","title":"PKT Cloud Mining Service"},{"location":"commercial/#amapoolcom","text":"Your best choice towards a fully automated PKT cloud mining solution.","title":"AMAPOOL.com"},{"location":"communication/","text":"Ethical Communication Guidelines \u00b6 This is a guideline for ethical communications about the project. It is recognized that to accomplish the goals, it is imperative that there is a community who understands and uses the technology, so communication cannot be avoided. However, poor communication, even made with the best intentions, risks harming the reputation of the project and the general public. So these guidelines exist to help community members represent the project in the best way possible. A Far Higher Standard \u00b6 Within the cryptocurrency ecosystem, there are a significant number of outright criminal activities. Beyond those there is a wide grey area of communication activities which have not been subject to any regulatory enforcement, but still fall far outside of what these guidelines establish as ethical. Community members are cautioned that due to the scale of these \"grey\" activities, there is a large body of publications, influencers, marketers, \"shills\" and other professionals who, if consulted or emulated, are highly likely to put a person in ethical peril, because these guidelines establish a far higher standard of communication ethics than that which is generally considered to be legal. Principle of No Expected Return \u00b6 It is acknowledged that buying, selling and mining are central aspects of cryptocurrency use, so it is difficult to effectively communicate about the project without ever addressing reasons why a person might do these things. Therefore these guidelines offer a pre-approved narrative which is considered to be maximally protective of the reputation of the project while also providing a healthy perspective regarding the risks associated with cryptocurrency. The Principle of No Expected Return is that one should buy or mine a cryptocurrency if and only if they believe strongly enough in the vision of the project that they would be proud to own the coin even if they were never able to sell it. In the early days of Bitcoin, it was widely believed that it would be legislated out of existence or otherwise collapse, and so this principle was pervasive throughout the community. Many people chose to hold Bitcoin as a political statement regarding the morality of modern financial institutions, especially after the 2008 financial crisis. The key components of the Principle of No Expected Return are: * A clear understanding of what the technology is and what it is not. * A belief in the social change which that technology can realistically facilitate. * The mental and financial preparedness to lose any money or effort that is used to acquire the coin, as one has when one makes a donation. When you\u2019re considering buying a coin, you need to ask yourself: If you were to lose everything you put into a coin, would you look back on the day you bought it, proud to have been a part of the project at that time? If the answer is no, then you\u2019re either planning to buy too much, or you\u2019re just not ready. Guidelines \u00b6 Dishonest, intentionally misleading, or otherwise unlawful communication is obviously unethical, but beyond that there is no clear definition for unethical communication, though one could characterise it in the words of Justice Stewart, \"I know it when I see it\". These non-exhaustive guidelines exist to give community members an understanding of the types of communication which are most likely to be unethical. They are listed in order of importance with the most important first. Communications which follow the letter, but not the spirit, of these guidelines are unethical. One example of this is token disclaimers such as \"this is not financial advice\". Disclaimers can be useful for helping a person understand the limitations and caveats of a communication, but a token disclaimer exists more to make the communicator seem innocent than to help the audience have a clearer understanding. The use of fine print, or disclaimers which \"feel out of place\" in the overall communication should be regarded as red flags, and communicators using these should review the objectives of their message and whether it is being communicated clearly. Communications which a person of sound judgement could plausibly interpret as presenting a low risk low effort opportunity to make money , or \u201csomething for nothing\u201d, are unethical. Presenting an opportunity can take many forms including implication though specific selection of facts, or an over-celebratory tone. Generally speaking, communications should be explicit about their objective so that there is minimal chance of mis-interpretation. Communications which a person suffering impaired judgement has an unusually high likelihood of interpreting as a low risk low effort opportunity to make money are unethical. Topics like \u201cwinning\u201d, \u201cpump\u201d, \u201cFOMO\u201d, \u201cYOLO\u201d (spend all of your money), \u201cmoon\u201d, and the idea of being rich, may strike the average person as nothing more than a bit of low-culture humour, but for a pathological gambler these can trigger a harmful thought process and should be avoided. Communications related to investment and trading of the coin should be addressed to investors and traders \u2014 professionals who know how hard it is to reliably beat the market and who make decisions based on their own unique portfolio and risk management strategy. Any kind of communication around these topics which has a celebratory tone, or which could reasonably be interpreted as investment advice is not ethical. Communications which focus entirely on explaining a piece of technology, without any mention or implication of buying, selling, price, or potential future growth (including growth in usage of the technology), are probably ethical. Communications which address the topic of buying, selling or mining, but are specifically focused on the Principle of No Expected Return, are probably ethical. Examples to Avoid \u00b6 These passages are examples of the type of communication which is likely to be problematic. Context is key, and in the context of a communication which clearly transmits an ethical core message, a passing mention of money probably does not make the whole communication unethical. But if the core message is not communicated with adequate clarity, then even the slightest mention of topics like the following may make the communication unethical. \"price has grown by 50% over the past 3 months\" \"George has made $700 mining with his old computer\" \"reaping the rewards for something you put zero effort in!\"\" \"build a fund for rainy days\" \"earning passive income at any time of day, even when sleeping\" \"early adopters have the most to gain\" \"miners who accumulate the coin are rewarded whenever there is significant price appreciation\" \"so many people trust cryptocurrency investment\" \"gain financially by facilitating connectivity\" While some of these statements may be factual, they share a common narrative that there is an opportunity, it is easy, and it leads to making money. This is a stark contrast from the Principle of No Expected Return. Better Examples \u00b6 Honest communications addressing topics like the following are more likely to be ethical. \"price has been on the rise, but this can be affected by current events outside the project, so core community members are more focused on continuous progress toward the goal\" \"'I pay for my internet, so I might as well use it\"', said George who has been mining with his old computer\" \"we all know internet is over-priced, but now there is a community of people trying to do something about it\" \"'I know cryptocurrencies are risky, and tomorrow it could all be worth nothing, but I'm spending money I can afford on a something I believe in' said Tom, who recently bought coins\" \"the control that big telecoms have over our everyday lives can make people feel powerless, but now there\u2019s an easy way to push back\" \"sometimes the price goes up and sometimes it goes down. Being part of the community is about believing that democratised internet is possible\"","title":"Ethical Communication Guidelines"},{"location":"communication/#ethical-communication-guidelines","text":"This is a guideline for ethical communications about the project. It is recognized that to accomplish the goals, it is imperative that there is a community who understands and uses the technology, so communication cannot be avoided. However, poor communication, even made with the best intentions, risks harming the reputation of the project and the general public. So these guidelines exist to help community members represent the project in the best way possible.","title":"Ethical Communication Guidelines"},{"location":"communication/#a-far-higher-standard","text":"Within the cryptocurrency ecosystem, there are a significant number of outright criminal activities. Beyond those there is a wide grey area of communication activities which have not been subject to any regulatory enforcement, but still fall far outside of what these guidelines establish as ethical. Community members are cautioned that due to the scale of these \"grey\" activities, there is a large body of publications, influencers, marketers, \"shills\" and other professionals who, if consulted or emulated, are highly likely to put a person in ethical peril, because these guidelines establish a far higher standard of communication ethics than that which is generally considered to be legal.","title":"A Far Higher Standard"},{"location":"communication/#principle-of-no-expected-return","text":"It is acknowledged that buying, selling and mining are central aspects of cryptocurrency use, so it is difficult to effectively communicate about the project without ever addressing reasons why a person might do these things. Therefore these guidelines offer a pre-approved narrative which is considered to be maximally protective of the reputation of the project while also providing a healthy perspective regarding the risks associated with cryptocurrency. The Principle of No Expected Return is that one should buy or mine a cryptocurrency if and only if they believe strongly enough in the vision of the project that they would be proud to own the coin even if they were never able to sell it. In the early days of Bitcoin, it was widely believed that it would be legislated out of existence or otherwise collapse, and so this principle was pervasive throughout the community. Many people chose to hold Bitcoin as a political statement regarding the morality of modern financial institutions, especially after the 2008 financial crisis. The key components of the Principle of No Expected Return are: * A clear understanding of what the technology is and what it is not. * A belief in the social change which that technology can realistically facilitate. * The mental and financial preparedness to lose any money or effort that is used to acquire the coin, as one has when one makes a donation. When you\u2019re considering buying a coin, you need to ask yourself: If you were to lose everything you put into a coin, would you look back on the day you bought it, proud to have been a part of the project at that time? If the answer is no, then you\u2019re either planning to buy too much, or you\u2019re just not ready.","title":"Principle of No Expected Return"},{"location":"communication/#guidelines","text":"Dishonest, intentionally misleading, or otherwise unlawful communication is obviously unethical, but beyond that there is no clear definition for unethical communication, though one could characterise it in the words of Justice Stewart, \"I know it when I see it\". These non-exhaustive guidelines exist to give community members an understanding of the types of communication which are most likely to be unethical. They are listed in order of importance with the most important first. Communications which follow the letter, but not the spirit, of these guidelines are unethical. One example of this is token disclaimers such as \"this is not financial advice\". Disclaimers can be useful for helping a person understand the limitations and caveats of a communication, but a token disclaimer exists more to make the communicator seem innocent than to help the audience have a clearer understanding. The use of fine print, or disclaimers which \"feel out of place\" in the overall communication should be regarded as red flags, and communicators using these should review the objectives of their message and whether it is being communicated clearly. Communications which a person of sound judgement could plausibly interpret as presenting a low risk low effort opportunity to make money , or \u201csomething for nothing\u201d, are unethical. Presenting an opportunity can take many forms including implication though specific selection of facts, or an over-celebratory tone. Generally speaking, communications should be explicit about their objective so that there is minimal chance of mis-interpretation. Communications which a person suffering impaired judgement has an unusually high likelihood of interpreting as a low risk low effort opportunity to make money are unethical. Topics like \u201cwinning\u201d, \u201cpump\u201d, \u201cFOMO\u201d, \u201cYOLO\u201d (spend all of your money), \u201cmoon\u201d, and the idea of being rich, may strike the average person as nothing more than a bit of low-culture humour, but for a pathological gambler these can trigger a harmful thought process and should be avoided. Communications related to investment and trading of the coin should be addressed to investors and traders \u2014 professionals who know how hard it is to reliably beat the market and who make decisions based on their own unique portfolio and risk management strategy. Any kind of communication around these topics which has a celebratory tone, or which could reasonably be interpreted as investment advice is not ethical. Communications which focus entirely on explaining a piece of technology, without any mention or implication of buying, selling, price, or potential future growth (including growth in usage of the technology), are probably ethical. Communications which address the topic of buying, selling or mining, but are specifically focused on the Principle of No Expected Return, are probably ethical.","title":"Guidelines"},{"location":"communication/#examples-to-avoid","text":"These passages are examples of the type of communication which is likely to be problematic. Context is key, and in the context of a communication which clearly transmits an ethical core message, a passing mention of money probably does not make the whole communication unethical. But if the core message is not communicated with adequate clarity, then even the slightest mention of topics like the following may make the communication unethical. \"price has grown by 50% over the past 3 months\" \"George has made $700 mining with his old computer\" \"reaping the rewards for something you put zero effort in!\"\" \"build a fund for rainy days\" \"earning passive income at any time of day, even when sleeping\" \"early adopters have the most to gain\" \"miners who accumulate the coin are rewarded whenever there is significant price appreciation\" \"so many people trust cryptocurrency investment\" \"gain financially by facilitating connectivity\" While some of these statements may be factual, they share a common narrative that there is an opportunity, it is easy, and it leads to making money. This is a stark contrast from the Principle of No Expected Return.","title":"Examples to Avoid"},{"location":"communication/#better-examples","text":"Honest communications addressing topics like the following are more likely to be ethical. \"price has been on the rise, but this can be affected by current events outside the project, so core community members are more focused on continuous progress toward the goal\" \"'I pay for my internet, so I might as well use it\"', said George who has been mining with his old computer\" \"we all know internet is over-priced, but now there is a community of people trying to do something about it\" \"'I know cryptocurrencies are risky, and tomorrow it could all be worth nothing, but I'm spending money I can afford on a something I believe in' said Tom, who recently bought coins\" \"the control that big telecoms have over our everyday lives can make people feel powerless, but now there\u2019s an easy way to push back\" \"sometimes the price goes up and sometimes it goes down. Being part of the community is about believing that democratised internet is possible\"","title":"Better Examples"},{"location":"governance-nsc/","text":"Network Steward Charter \u00b6 Anyone considering becoming Network Steward will need to publicly declare themselves to be a candidate. Upon declaring candidacy, a proposal should be publicly shared. The proposal should outline the basis and intentions of the Network Steward if elected. Please find suggestions for how to structure a proposal, as the criteria for evaluation is public. Short term impact \u00b6 Short term impact constitutes the project's capability to help the achievement of the PKT project's immediate objectives. For example, a project to search for breakthroughs in wireless technology may be well aligned with PKT's objectives in the long term but will not bear fruit for a significant amount of time. Specific questions useful for evaluating short term impact: Will this project facilitate PKT\u2019s roadmap? Will this project help PKT to distinguish itself from other blockchain projects? Does this project provide a piece of infrastructure which is considered necessary? Long term impact \u00b6 Long term impact constitutes a project's capability to pay dividends to the PKT ecosystem over the long term. Long term impact is important because it fosters a snowball effect of returns on the investment of Network Steward funds. Specific questions useful for evaluating long term impact: Will this project help advance \"infrastructure operator\" roles? Will this project provide key infrastructure/institutions necessary to the emergence of a healthy ecosystem? Does this project bypass a tragedy-of-the-commons problem which blocks the natural emergence of a piece of key infrastructure? Scope and use of resources \u00b6 Use of resources is the question of how \"expensive\" a project is and its ability to fit within the budget. Short and long term impact will be evaluated with attention to the impact/cost ratio. Note that volunteer time/effort spent by the Network Steward, or their team in order to oversee the project will be taken into account, so all other things being equal, a few large projects are preferable to a large number of smaller ones. Some questions which may be useful for evaluating scope and use of resources include: Do the metrics for success justify the amount of effort placed on the project? Does the cost for effort seem to be a good deal (attention shall be given to the skill sets of declared participants)? Are there competitive aspects with the project to promote efficient use of resources? Risk control \u00b6 Risk control is about the question of how likely a project is to fail at delivering the expected result. Projects which are inherently more risky will be evaluated more stringently on their proposed risk control. Specific questions useful to the evaluation of risk control include: How evenly is the effort spaced over the milestones of the project? How evenly is the payment spaced over the milestones of the project? How well did the candidate specify success criteria for the project? To what extent are the risks defined and planned for in the project proposal? To what extent are the difficulties and potential blockers moved to the early parts of the project? What evidence is there that the Network Steward is capable of delivering? Hazard control \u00b6 The objective of the Network Steward is for the community to elect someone who will build or oversee projects that benefit the entire PKT ecosystem equally without unfairly benefitting any one participant over any other. Hazard control is about preventing any incentive or the perception of an incentive which would promote a corruption of the process from its objective. Public perceptions are almost as important as the real thing because the perception of hazard discourages new participants from joining the PKT ecosystem and encourages existing participants to submit projects which are at least as corrupt as they imagine the average project to be. Some questions which may be useful to the evaluation of hazard control include: To what extent is the project safe from any real or perceived conflicts of interest? To what extent are the results of this project equally advantageous to all participants in the PKT ecosystem? To what extent does the proposal structure the project such that success will be more advantageous to the applicant than failure? The use of milestones, deliverables and evenly spaced payments conditioned on deliveries is encouraged. To what extent does the project control the risk of arbitrage profit opportunity for the applicant? An example of arbitrage profit opportunity appears when there is a lack of market agreement on the cost of the deliverables which the project will produce. Logo design is a good example of a deliverable for which there lacks market agreement on the cost. While PepeiCo saw fit to spend one million dollars on their logo, the Nike logo was bought for a mere $35. In the case of such an expenditure, the overall community may be unable to verify whether a project constitutes a million dollars worth of diligent effort or a $35 drawing sold at a markup. Did the applicant declare and control for any potential conflicts of interest? Potentially unacceptable projects \u00b6 Some projects may be judged by the community to be unacceptable under any conditions. An intuitive example would be a proposal to build an assassination market which is blatantly illegal and contrary to the objectives of the project. These judgements will be made by individual voters. Some questions which are useful in the evaluation of acceptability: Does the project seem more likely to benefit the PKT ecosystem than to harm it? Does the project seem unlikely to cause significant damage to the perceived legitimacy of the PKT ecosystem? Delayed milestones \u00b6 While it is not in the interest of the community to rush projects, it is important to guard against the possibility of candidates applying for projects and then not doing the work - planning to abandon the project unless there is a precipitous increase in the price at which they can sell PKT.","title":"Network Steward Charter"},{"location":"governance-nsc/#network-steward-charter","text":"Anyone considering becoming Network Steward will need to publicly declare themselves to be a candidate. Upon declaring candidacy, a proposal should be publicly shared. The proposal should outline the basis and intentions of the Network Steward if elected. Please find suggestions for how to structure a proposal, as the criteria for evaluation is public.","title":"Network Steward Charter"},{"location":"governance-nsc/#short-term-impact","text":"Short term impact constitutes the project's capability to help the achievement of the PKT project's immediate objectives. For example, a project to search for breakthroughs in wireless technology may be well aligned with PKT's objectives in the long term but will not bear fruit for a significant amount of time. Specific questions useful for evaluating short term impact: Will this project facilitate PKT\u2019s roadmap? Will this project help PKT to distinguish itself from other blockchain projects? Does this project provide a piece of infrastructure which is considered necessary?","title":"Short term impact"},{"location":"governance-nsc/#long-term-impact","text":"Long term impact constitutes a project's capability to pay dividends to the PKT ecosystem over the long term. Long term impact is important because it fosters a snowball effect of returns on the investment of Network Steward funds. Specific questions useful for evaluating long term impact: Will this project help advance \"infrastructure operator\" roles? Will this project provide key infrastructure/institutions necessary to the emergence of a healthy ecosystem? Does this project bypass a tragedy-of-the-commons problem which blocks the natural emergence of a piece of key infrastructure?","title":"Long term impact"},{"location":"governance-nsc/#scope-and-use-of-resources","text":"Use of resources is the question of how \"expensive\" a project is and its ability to fit within the budget. Short and long term impact will be evaluated with attention to the impact/cost ratio. Note that volunteer time/effort spent by the Network Steward, or their team in order to oversee the project will be taken into account, so all other things being equal, a few large projects are preferable to a large number of smaller ones. Some questions which may be useful for evaluating scope and use of resources include: Do the metrics for success justify the amount of effort placed on the project? Does the cost for effort seem to be a good deal (attention shall be given to the skill sets of declared participants)? Are there competitive aspects with the project to promote efficient use of resources?","title":"Scope and use of resources"},{"location":"governance-nsc/#risk-control","text":"Risk control is about the question of how likely a project is to fail at delivering the expected result. Projects which are inherently more risky will be evaluated more stringently on their proposed risk control. Specific questions useful to the evaluation of risk control include: How evenly is the effort spaced over the milestones of the project? How evenly is the payment spaced over the milestones of the project? How well did the candidate specify success criteria for the project? To what extent are the risks defined and planned for in the project proposal? To what extent are the difficulties and potential blockers moved to the early parts of the project? What evidence is there that the Network Steward is capable of delivering?","title":"Risk control"},{"location":"governance-nsc/#hazard-control","text":"The objective of the Network Steward is for the community to elect someone who will build or oversee projects that benefit the entire PKT ecosystem equally without unfairly benefitting any one participant over any other. Hazard control is about preventing any incentive or the perception of an incentive which would promote a corruption of the process from its objective. Public perceptions are almost as important as the real thing because the perception of hazard discourages new participants from joining the PKT ecosystem and encourages existing participants to submit projects which are at least as corrupt as they imagine the average project to be. Some questions which may be useful to the evaluation of hazard control include: To what extent is the project safe from any real or perceived conflicts of interest? To what extent are the results of this project equally advantageous to all participants in the PKT ecosystem? To what extent does the proposal structure the project such that success will be more advantageous to the applicant than failure? The use of milestones, deliverables and evenly spaced payments conditioned on deliveries is encouraged. To what extent does the project control the risk of arbitrage profit opportunity for the applicant? An example of arbitrage profit opportunity appears when there is a lack of market agreement on the cost of the deliverables which the project will produce. Logo design is a good example of a deliverable for which there lacks market agreement on the cost. While PepeiCo saw fit to spend one million dollars on their logo, the Nike logo was bought for a mere $35. In the case of such an expenditure, the overall community may be unable to verify whether a project constitutes a million dollars worth of diligent effort or a $35 drawing sold at a markup. Did the applicant declare and control for any potential conflicts of interest?","title":"Hazard control"},{"location":"governance-nsc/#potentially-unacceptable-projects","text":"Some projects may be judged by the community to be unacceptable under any conditions. An intuitive example would be a proposal to build an assassination market which is blatantly illegal and contrary to the objectives of the project. These judgements will be made by individual voters. Some questions which are useful in the evaluation of acceptability: Does the project seem more likely to benefit the PKT ecosystem than to harm it? Does the project seem unlikely to cause significant damage to the perceived legitimacy of the PKT ecosystem?","title":"Potentially unacceptable projects"},{"location":"governance-nsc/#delayed-milestones","text":"While it is not in the interest of the community to rush projects, it is important to guard against the possibility of candidates applying for projects and then not doing the work - planning to abandon the project unless there is a precipitous increase in the price at which they can sell PKT.","title":"Delayed milestones"},{"location":"governance/","text":"Introduction \u00b6 The institution of the Network Steward will remain as it was before, and will continue to be elected via a weekly vote using the Electorium algorithm. However unlike the vote in legacy PKT, coins will need to be locked up in order to vote. There will be no specific lockup period required, and there will be no vote multiplier for using a longer lockup period, but each PKT, and each 1 PKT worth of locked up LP Token, will be worth one vote. The same voting mechanism will allow changes to both the Network Steward and the Executor. However, changing the Executor is a more solemn matter and so will only occur when 75% of all actively voting coins continually approve such change for 4 consecutive weeks. This 75% rule is borrowed from the requirement for approving changes to the US Constitution. The allocation of yields is however a more complex affair, and just as the mining pools had centrally decided the allocation of yields, the application of the rules laid out in the Infrastructure section will be managed by a centralized \u201cExecutor\u201d. How Does Electorium Work? \u00b6 Nobody ever sits down and asks themselves who is most fit to manage the affairs of the nation. Instead people argue over whether it\u2019s going to be the blue guy or the red guy, and they think that\u2019s democracy. It\u2019s quite possible that the entire partisan landscape as we know it is an artifact of a flawed voting system. The dream of the third party candidate is that if enough people would vote for him, he would no longer be \u201cthird party\u201d. But to get there, he needs to somehow overcome the objection that voting for him means losing a chance to vote against \"The Bad Guy\". Even the third party candidate does not ask the voter who is most fit to rule! If we could just cast all the politics and partisanship aside and get to the real heart of the question, everybody\u2019s answer would probably be different. We\u2019d most likely have a beautiful patchwork of nominations including businessmen, professors, soldiers, clergy, and other people of distinction. To address this, PKT uses a new vote counting algorithm called Electorium. It is in essence a search algorithm. It finds the candidate who cannot be beaten by anyone else, if we were to pretend that neither they, nor their challenger, voted for each other. So in the case of Alice and Bob, we pretend Alice is not voting for Bob, and Bob is not voting for Alice and we can easily find the winner. This computation of delegated votes is not as simple as it might seem. If Alice votes for Bob, and Bob votes for Alice, it is not immediately obvious who should win. Not only that, it is important that the counting process be fast. There is also another case where perhaps Alice votes for Bob, but Bob does not vote for Alice. It might seem that Bob is the clear winner, but if the majority of his votes have been received from or through Alice, then by these rules Alice still wins. However, if there is another candidate who receives more votes than Alice but less than Bob, Bob becomes the winner because Alice loses and is forced to delegate her votes. Delegated Voting \u00b6 Using Electorium you can vote for anyone, but no one is required to be a candidate. If you vote for someone who does not wish to be a candidate, your vote is simply delegated to whoever they vote for. Everyone who chooses to be a candidate automatically votes for themselves. If they vote for someone else, that vote is secondary to their implied vote for themselves. To put it differently, voting as a candidate will never cause you to lose. If a candidate explicitly votes for himself, his explicit vote is meaningless. It is the same as indicating his candidacy without voting at all. This voting system values each vote by the amount of PKT the voter holds. This is of course unlike a standard national election where every citizen gets an equal vote. But like almost all blockchains, PKT has nothing analogous to the concept of the citizen. One person can trivially pretend to be thousands, or even millions, of unique individuals. So PKT must by necessity adopt the model used in public corporations, where votes are weighted based on how much of the coin is held. This idea of weighting the vote based on skin in the game actually makes some sense as well. In a national election, every citizen could be considered to have the equal skin in the game, it is their life and family that is at stake. But in the case of a project or online community, a person with little investment can easily walk away, so they cannot be expected to make decisions with the same level of care as someone whose involvement is greater. Thus voting is done as proof-of-stake. Proof-of-stake voting is done publicly. The right to vote one\u2019s conscience without fear of repercussion is a fundamental part of the modern democratic process. But anonymous voting on a blockchain is largely uncharted territory, so it is not clear how, or even if, this could be achieved. In any case, there is one advantage to public voting, and that is public voting of the delegates. When you choose who is to represent you, you certainly should know what decisions they make. You might wonder what happens if you want to vote for somebody, but you don\u2019t like who they would vote for. Well you can\u2019t have it both ways, either you trust their judgment or you don\u2019t, and the beauty of this system is that it forces you to reconcile that. You also don\u2019t get to evade moral responsibility by choosing a lovable candidate who's guaranteed to lose. The question before you is who is most fit to lead, and you cannot vote without answering it. If you do vote, it is highly likely that your vote will somehow help elect the final winner. Secret voting, while important for the general public, is abhorrent when done in the senate chamber. In the Electorium system everyone is a potential senator, and everyone\u2019s vote is a matter of public record. You only need to vote once, and your vote counts in every election with whatever balance you have at the time of the election, until you either change it, or it expires. There is a vote expiration time of 1 year so that lost wallets will not affect the outcome of elections forever. Executor \u00b6 From launch day, the Executor will be hard coded. The role of the executor is not to make meaningful decisions, but rather to fit the facts to the written rules as best as possible. Questions like \u201cis this cjdns node really operational?\u201d or \u201cis that nameserver censoring domains?\u201d are not conducive to smart contract based validation, so these decisions will be made by the Executor. Prior to the end of 2024, a smart contract that will be developed will be an implementation of the Electorium voting algorithm to allow for replacement of the Executor.","title":"Introduction"},{"location":"governance/#introduction","text":"The institution of the Network Steward will remain as it was before, and will continue to be elected via a weekly vote using the Electorium algorithm. However unlike the vote in legacy PKT, coins will need to be locked up in order to vote. There will be no specific lockup period required, and there will be no vote multiplier for using a longer lockup period, but each PKT, and each 1 PKT worth of locked up LP Token, will be worth one vote. The same voting mechanism will allow changes to both the Network Steward and the Executor. However, changing the Executor is a more solemn matter and so will only occur when 75% of all actively voting coins continually approve such change for 4 consecutive weeks. This 75% rule is borrowed from the requirement for approving changes to the US Constitution. The allocation of yields is however a more complex affair, and just as the mining pools had centrally decided the allocation of yields, the application of the rules laid out in the Infrastructure section will be managed by a centralized \u201cExecutor\u201d.","title":"Introduction"},{"location":"governance/#how-does-electorium-work","text":"Nobody ever sits down and asks themselves who is most fit to manage the affairs of the nation. Instead people argue over whether it\u2019s going to be the blue guy or the red guy, and they think that\u2019s democracy. It\u2019s quite possible that the entire partisan landscape as we know it is an artifact of a flawed voting system. The dream of the third party candidate is that if enough people would vote for him, he would no longer be \u201cthird party\u201d. But to get there, he needs to somehow overcome the objection that voting for him means losing a chance to vote against \"The Bad Guy\". Even the third party candidate does not ask the voter who is most fit to rule! If we could just cast all the politics and partisanship aside and get to the real heart of the question, everybody\u2019s answer would probably be different. We\u2019d most likely have a beautiful patchwork of nominations including businessmen, professors, soldiers, clergy, and other people of distinction. To address this, PKT uses a new vote counting algorithm called Electorium. It is in essence a search algorithm. It finds the candidate who cannot be beaten by anyone else, if we were to pretend that neither they, nor their challenger, voted for each other. So in the case of Alice and Bob, we pretend Alice is not voting for Bob, and Bob is not voting for Alice and we can easily find the winner. This computation of delegated votes is not as simple as it might seem. If Alice votes for Bob, and Bob votes for Alice, it is not immediately obvious who should win. Not only that, it is important that the counting process be fast. There is also another case where perhaps Alice votes for Bob, but Bob does not vote for Alice. It might seem that Bob is the clear winner, but if the majority of his votes have been received from or through Alice, then by these rules Alice still wins. However, if there is another candidate who receives more votes than Alice but less than Bob, Bob becomes the winner because Alice loses and is forced to delegate her votes.","title":"How Does Electorium Work?"},{"location":"governance/#delegated-voting","text":"Using Electorium you can vote for anyone, but no one is required to be a candidate. If you vote for someone who does not wish to be a candidate, your vote is simply delegated to whoever they vote for. Everyone who chooses to be a candidate automatically votes for themselves. If they vote for someone else, that vote is secondary to their implied vote for themselves. To put it differently, voting as a candidate will never cause you to lose. If a candidate explicitly votes for himself, his explicit vote is meaningless. It is the same as indicating his candidacy without voting at all. This voting system values each vote by the amount of PKT the voter holds. This is of course unlike a standard national election where every citizen gets an equal vote. But like almost all blockchains, PKT has nothing analogous to the concept of the citizen. One person can trivially pretend to be thousands, or even millions, of unique individuals. So PKT must by necessity adopt the model used in public corporations, where votes are weighted based on how much of the coin is held. This idea of weighting the vote based on skin in the game actually makes some sense as well. In a national election, every citizen could be considered to have the equal skin in the game, it is their life and family that is at stake. But in the case of a project or online community, a person with little investment can easily walk away, so they cannot be expected to make decisions with the same level of care as someone whose involvement is greater. Thus voting is done as proof-of-stake. Proof-of-stake voting is done publicly. The right to vote one\u2019s conscience without fear of repercussion is a fundamental part of the modern democratic process. But anonymous voting on a blockchain is largely uncharted territory, so it is not clear how, or even if, this could be achieved. In any case, there is one advantage to public voting, and that is public voting of the delegates. When you choose who is to represent you, you certainly should know what decisions they make. You might wonder what happens if you want to vote for somebody, but you don\u2019t like who they would vote for. Well you can\u2019t have it both ways, either you trust their judgment or you don\u2019t, and the beauty of this system is that it forces you to reconcile that. You also don\u2019t get to evade moral responsibility by choosing a lovable candidate who's guaranteed to lose. The question before you is who is most fit to lead, and you cannot vote without answering it. If you do vote, it is highly likely that your vote will somehow help elect the final winner. Secret voting, while important for the general public, is abhorrent when done in the senate chamber. In the Electorium system everyone is a potential senator, and everyone\u2019s vote is a matter of public record. You only need to vote once, and your vote counts in every election with whatever balance you have at the time of the election, until you either change it, or it expires. There is a vote expiration time of 1 year so that lost wallets will not affect the outcome of elections forever.","title":"Delegated Voting"},{"location":"governance/#executor","text":"From launch day, the Executor will be hard coded. The role of the executor is not to make meaningful decisions, but rather to fit the facts to the written rules as best as possible. Questions like \u201cis this cjdns node really operational?\u201d or \u201cis that nameserver censoring domains?\u201d are not conducive to smart contract based validation, so these decisions will be made by the Executor. Prior to the end of 2024, a smart contract that will be developed will be an implementation of the Electorium voting algorithm to allow for replacement of the Executor.","title":"Executor"},{"location":"units/","text":"PKT Units and Fees \u00b6 As with all blockchains, every transaction of PKT is exact, however unlike other blockchains, the number of atomic units in the PKT coin is not a power of 10. With Bitcoin there are 100,000,000 atomic units (\"satoshis\") per bitcoin. With PKT there are 2 to the 30th power ( 1,073,741,824 ) atomic units. While this is strange number in base-10, in binary it is a perfectly even 1 followed by thirty zeros. The binary nature of PKT has a few caveats, for example it means sending 0.01 PKT is actually impossible. This is because 0.01 would corrispond to 10,737,418.24 atomic units. Since they are atomic (indivisible), this must be rounded to the nearest whole number: 10,737,418 . When this divided by 2 30 , it results in 0.009999999776482582 . Therefore, all GUI wallets and explorers adopt the following convension: PKT amounts are always expressed with two decimal places and rounded to nearest, so 1,084,479,242 atomic units is displayed as 1.01 PKT . If the amount is less than 1 PKT , the amount is displayed as milli-pkt or mPKT and multiplied by 1,000 , so 10,737,418 atomic units is displayed as 10.00 mPKT If the amount is less than 1 mPKT , the amount is displayed as micro-pkt or \u03bcPKT and multiplied by 1,000,000 , so 107,374 atomic units is displayed as 100.00 \u03bcPKT . If the amount is less than 1 \u03bcPKT , the amount is displayed as nano-pkt or nPKT and multiplied by 1,000,000,000 , so 107 atomic units is displayed as 99.64 nPKT . A single atomic unit is displayed as 0.93 nPKT . While these are the convensions adopted by all GUI wallets and explorers. Exchanges and merchants may choose to forbid transaction of amounts less than 1 PKT , thus they need only implement #1 because they will never display an amount of less than 1 PKT . Fees \u00b6 PKT uses bitcoin-like computation for determining fees. Because the blockchain has a 1 minute block time, there is generally plenty of space for transactions in the blocks and the typical fee is the minimum: 1 atomic unit per byte of transaction size. The size of a transaction depends on the number of transaction inputs and outputs. The number of outputs is simply the number of addresses you are paying, plus one more to re-route change back to yourself. The number of inputs depends on where the coins you are sending have been sourced from. If you are mining PKT, then you may have many tiny transactions which you need to aggregate in order to make a payment. Currently, wallets do not create transactions with more than 1,460 inputs. This results in a transaction of just under 100,000 bytes and thus costing right around 100,000 atomic units or 93.13 \u03bcPKT , that is micro-pkt or millionths of a PKT (for the largest possible transaction). A more typical transaction size would be around 1,000 bytes and thus cost 1,000 atomic units, or 931.32 nPKT (billionths of 1 PKT). In almost every case, the fees will disappear when the transaction is rounded to display the 2 decimal places. It is possible, though vanishingly unlikely that your wallet could display 10.00 PKT and after sending exactly 5 PKT your wallet displays 4.99 . This would happen if the actual amount you had was 9.555555556 PKT , rounded to 10.00 and after sending exactly 5 PKT , the miniscule fee caused it to cross a rounding boundary and become 4.555555553 . If you wish to perform analytical accounting, it is recommended that you deal exclusively in atomic units, represented as an int64, and only represent PKT for display purposes.","title":"PKT Units and Fees"},{"location":"units/#pkt-units-and-fees","text":"As with all blockchains, every transaction of PKT is exact, however unlike other blockchains, the number of atomic units in the PKT coin is not a power of 10. With Bitcoin there are 100,000,000 atomic units (\"satoshis\") per bitcoin. With PKT there are 2 to the 30th power ( 1,073,741,824 ) atomic units. While this is strange number in base-10, in binary it is a perfectly even 1 followed by thirty zeros. The binary nature of PKT has a few caveats, for example it means sending 0.01 PKT is actually impossible. This is because 0.01 would corrispond to 10,737,418.24 atomic units. Since they are atomic (indivisible), this must be rounded to the nearest whole number: 10,737,418 . When this divided by 2 30 , it results in 0.009999999776482582 . Therefore, all GUI wallets and explorers adopt the following convension: PKT amounts are always expressed with two decimal places and rounded to nearest, so 1,084,479,242 atomic units is displayed as 1.01 PKT . If the amount is less than 1 PKT , the amount is displayed as milli-pkt or mPKT and multiplied by 1,000 , so 10,737,418 atomic units is displayed as 10.00 mPKT If the amount is less than 1 mPKT , the amount is displayed as micro-pkt or \u03bcPKT and multiplied by 1,000,000 , so 107,374 atomic units is displayed as 100.00 \u03bcPKT . If the amount is less than 1 \u03bcPKT , the amount is displayed as nano-pkt or nPKT and multiplied by 1,000,000,000 , so 107 atomic units is displayed as 99.64 nPKT . A single atomic unit is displayed as 0.93 nPKT . While these are the convensions adopted by all GUI wallets and explorers. Exchanges and merchants may choose to forbid transaction of amounts less than 1 PKT , thus they need only implement #1 because they will never display an amount of less than 1 PKT .","title":"PKT Units and Fees"},{"location":"units/#fees","text":"PKT uses bitcoin-like computation for determining fees. Because the blockchain has a 1 minute block time, there is generally plenty of space for transactions in the blocks and the typical fee is the minimum: 1 atomic unit per byte of transaction size. The size of a transaction depends on the number of transaction inputs and outputs. The number of outputs is simply the number of addresses you are paying, plus one more to re-route change back to yourself. The number of inputs depends on where the coins you are sending have been sourced from. If you are mining PKT, then you may have many tiny transactions which you need to aggregate in order to make a payment. Currently, wallets do not create transactions with more than 1,460 inputs. This results in a transaction of just under 100,000 bytes and thus costing right around 100,000 atomic units or 93.13 \u03bcPKT , that is micro-pkt or millionths of a PKT (for the largest possible transaction). A more typical transaction size would be around 1,000 bytes and thus cost 1,000 atomic units, or 931.32 nPKT (billionths of 1 PKT). In almost every case, the fees will disappear when the transaction is rounded to display the 2 decimal places. It is possible, though vanishingly unlikely that your wallet could display 10.00 PKT and after sending exactly 5 PKT your wallet displays 4.99 . This would happen if the actual amount you had was 9.555555556 PKT , rounded to 10.00 and after sending exactly 5 PKT , the miniscule fee caused it to cross a rounding boundary and become 4.555555553 . If you wish to perform analytical accounting, it is recommended that you deal exclusively in atomic units, represented as an int64, and only represent PKT for display purposes.","title":"Fees"},{"location":"useful_tools/","text":"PKT Useful Tools \u00b6 This is a mostly un-moderated list of FREE tools, websites and software built by the PKT Cash community. Beware, anyone can contribute their own links and pkt.cash does not verify them. Add yourself \u00b6 Make a Pull Request to This page to add your link. Keep it short and to the point NO PICTURES, no color text, no big fonts No commercial products or services (these can be added here ) Chain Analysis \u00b6 Pkt.world Explorer \u00b6 The Pkt.world blockchain explorer gives insights into the blockchain, active mining pools and their performance, and your mining profits. PktPool.io \u00b6 Analytics dashboard covering many aspects of the PKT blockchain including a block explorer, transaction graphs, mining rewards, WPKT transactions and much more. Packetscan.io \u00b6 Packetscan is a block explorer for the PKT Cash blockchain. Look up transactions, blocks, addresess, balances, chain stats and more. Mining Yield and Performance Calculators \u00b6 MinePKT.com \u00b6 Ke/s calculator to see your profits! Mining Profitability Calculator \u00b6 Estimate performance and potential PKT Cash announcement miner earnings for a huge selection of CPUs. Mining Tools \u00b6 Minr \u00b6 A simple to use GUI for PacketCrypt. Available on MacOS, Windows and Linux. Configuration Generator \u00b6 Quickly generate and download a PacketCrypt config.json file. Miscellaneous \u00b6 Decimation Tracker \u00b6 When will the next PKT Cash decimation be? Never miss another decimation with the PKT Watch Decimation Tracker. PKT Tips \u00b6 Mining tips and tricks for memebers who are new to the PKT project.","title":"PKT Useful Tools"},{"location":"useful_tools/#pkt-useful-tools","text":"This is a mostly un-moderated list of FREE tools, websites and software built by the PKT Cash community. Beware, anyone can contribute their own links and pkt.cash does not verify them.","title":"PKT Useful Tools"},{"location":"useful_tools/#add-yourself","text":"Make a Pull Request to This page to add your link. Keep it short and to the point NO PICTURES, no color text, no big fonts No commercial products or services (these can be added here )","title":"Add yourself"},{"location":"useful_tools/#chain-analysis","text":"","title":"Chain Analysis"},{"location":"useful_tools/#pktworld-explorer","text":"The Pkt.world blockchain explorer gives insights into the blockchain, active mining pools and their performance, and your mining profits.","title":"Pkt.world Explorer"},{"location":"useful_tools/#pktpoolio","text":"Analytics dashboard covering many aspects of the PKT blockchain including a block explorer, transaction graphs, mining rewards, WPKT transactions and much more.","title":"PktPool.io"},{"location":"useful_tools/#packetscanio","text":"Packetscan is a block explorer for the PKT Cash blockchain. Look up transactions, blocks, addresess, balances, chain stats and more.","title":"Packetscan.io"},{"location":"useful_tools/#mining-yield-and-performance-calculators","text":"","title":"Mining Yield and Performance Calculators"},{"location":"useful_tools/#minepktcom","text":"Ke/s calculator to see your profits!","title":"MinePKT.com"},{"location":"useful_tools/#mining-profitability-calculator","text":"Estimate performance and potential PKT Cash announcement miner earnings for a huge selection of CPUs.","title":"Mining Profitability Calculator"},{"location":"useful_tools/#mining-tools","text":"","title":"Mining Tools"},{"location":"useful_tools/#minr","text":"A simple to use GUI for PacketCrypt. Available on MacOS, Windows and Linux.","title":"Minr"},{"location":"useful_tools/#configuration-generator","text":"Quickly generate and download a PacketCrypt config.json file.","title":"Configuration Generator"},{"location":"useful_tools/#miscellaneous","text":"","title":"Miscellaneous"},{"location":"useful_tools/#decimation-tracker","text":"When will the next PKT Cash decimation be? Never miss another decimation with the PKT Watch Decimation Tracker.","title":"Decimation Tracker"},{"location":"useful_tools/#pkt-tips","text":"Mining tips and tricks for memebers who are new to the PKT project.","title":"PKT Tips"},{"location":"utility/","text":"Introduction \u00b6 The migration of PKT to the Base blockchain represents a technology evolution for the PKT community and a vastly improved user experience. Base opens up a world of possibilities with best-in-class hardware and software wallets, decentralized finance (DeFi), marketplaces, real-world assets (RWAs), and non-fungible tokens (NFTs). Moreover, the move to Base blockchain enhances interoperability with other significant projects within the Optimism and broader Ethereum ecosystems. This compatibility extends PKT\u2019s reach and functionality, integrating it into a larger network of blockchain applications and services. Such connectivity fosters potential collaborations and innovations across different platforms and industries and helps drive utility for PKT token holders.","title":"Introduction"},{"location":"utility/#introduction","text":"The migration of PKT to the Base blockchain represents a technology evolution for the PKT community and a vastly improved user experience. Base opens up a world of possibilities with best-in-class hardware and software wallets, decentralized finance (DeFi), marketplaces, real-world assets (RWAs), and non-fungible tokens (NFTs). Moreover, the move to Base blockchain enhances interoperability with other significant projects within the Optimism and broader Ethereum ecosystems. This compatibility extends PKT\u2019s reach and functionality, integrating it into a larger network of blockchain applications and services. Such connectivity fosters potential collaborations and innovations across different platforms and industries and helps drive utility for PKT token holders.","title":"Introduction"},{"location":"vote/","text":"Casting a Vote \u00b6 To cast a vote, you need to install PKT-Lightning-Wallet on your computer. git clone https://github.com/cjdelisle/PKT-Lightning-Wallet cd PKT-Lightning-Wallet ./do Then you can create a new wallet to test the voting system: ./bin/pld --create --wallet=voting_test_jan24_2024 Once you have created it, start pld using: ./bin/pld --wallet=voting_test After it is running, open another window, navigate to the same folder, and make a new address: ./bin/pldctl wallet/address/create Once you have the new address, send yourself a few PKT in order to vote with it. You can check your balance using: ./bin/pldctl wallet/address/balances Before you can vote, you will first need to unlock the wallet: ./bin/pldctl unlock And after you have unlocked the wallet using the password you configured earlier, you can finally cast your vote: ./bin/pldctl wallet/transaction/sendvote \\ --from_address=\\ \u2014-vote_for=pkt1q2yt8djdlykf2d9ukmw0q5z5tur05xm674tq6y8 If all goes well, you should see a transaction ID as the result, and within a few minutes you will be able to look up that transaction on any of the block explorers. A few words of caution: If you use the CLI pktwallet, PKT-Lightning-Wallet will open your same wallet.db file and it responds the same way to the --wallet flag. PKT-Lightning-Wallet is still in development do not use it to open a large wallet yet!","title":"Casting a Vote"},{"location":"vote/#casting-a-vote","text":"To cast a vote, you need to install PKT-Lightning-Wallet on your computer. git clone https://github.com/cjdelisle/PKT-Lightning-Wallet cd PKT-Lightning-Wallet ./do Then you can create a new wallet to test the voting system: ./bin/pld --create --wallet=voting_test_jan24_2024 Once you have created it, start pld using: ./bin/pld --wallet=voting_test After it is running, open another window, navigate to the same folder, and make a new address: ./bin/pldctl wallet/address/create Once you have the new address, send yourself a few PKT in order to vote with it. You can check your balance using: ./bin/pldctl wallet/address/balances Before you can vote, you will first need to unlock the wallet: ./bin/pldctl unlock And after you have unlocked the wallet using the password you configured earlier, you can finally cast your vote: ./bin/pldctl wallet/transaction/sendvote \\ --from_address= \\ \u2014-vote_for=pkt1q2yt8djdlykf2d9ukmw0q5z5tur05xm674tq6y8 If all goes well, you should see a transaction ID as the result, and within a few minutes you will be able to look up that transaction on any of the block explorers. A few words of caution: If you use the CLI pktwallet, PKT-Lightning-Wallet will open your same wallet.db file and it responds the same way to the --wallet flag. PKT-Lightning-Wallet is still in development do not use it to open a large wallet yet!","title":"Casting a Vote"},{"location":"wallets/","text":"Wallets \u00b6 The Base blockchain is an Ethereum layer-2 scaling solution that employs advanced wallet technology to enhance user experience. Wallets on the Base blockchain deliver great user interface, interaction with smart contracts, and low transaction fees with faster processing times. The two recommended wallets are: MetaMask : MetaMask is one of the most popular wallets for interacting with Ethereum and Ethereum-based layer-2 networks including Base. It is widely recognized for its ease of use and robust security features. It functions as a browser extension and a mobile app, providing users with a secure way to manage their identities on different sites and sign blockchain transactions. Given its integration capabilities with Base, MetaMask allows users to easily switch between the Ethereum mainnet and the Base network, making it a versatile tool for both new and experienced users. Coinbase Wallet : Another excellent option for Base users is the Coinbase Wallet. It offers a user-friendly interface that supports not only cryptocurrency transactions but also interactions with dApps directly. This makes it ideal for those who prefer an all-in-one solution for managing their digital assets and engaging with the blockchain ecosystem. Both wallets provide key functionalities needed for operating on the Base network, including secure storage of assets, easy access to dApps, and support for Ethereum\u2019s ERC-20 tokens and NFTs, including PKT on Base.","title":"Wallets"},{"location":"wallets/#wallets","text":"The Base blockchain is an Ethereum layer-2 scaling solution that employs advanced wallet technology to enhance user experience. Wallets on the Base blockchain deliver great user interface, interaction with smart contracts, and low transaction fees with faster processing times. The two recommended wallets are: MetaMask : MetaMask is one of the most popular wallets for interacting with Ethereum and Ethereum-based layer-2 networks including Base. It is widely recognized for its ease of use and robust security features. It functions as a browser extension and a mobile app, providing users with a secure way to manage their identities on different sites and sign blockchain transactions. Given its integration capabilities with Base, MetaMask allows users to easily switch between the Ethereum mainnet and the Base network, making it a versatile tool for both new and experienced users. Coinbase Wallet : Another excellent option for Base users is the Coinbase Wallet. It offers a user-friendly interface that supports not only cryptocurrency transactions but also interactions with dApps directly. This makes it ideal for those who prefer an all-in-one solution for managing their digital assets and engaging with the blockchain ecosystem. Both wallets provide key functionalities needed for operating on the Base network, including secure storage of assets, easy access to dApps, and support for Ethereum\u2019s ERC-20 tokens and NFTs, including PKT on Base.","title":"Wallets"},{"location":"wrapped_pkt/","text":"Steps to swap PKT to wPKT \u00b6 Buy PKT on Bittrex Global (Non-USA traders) or BitMart (Global traders) Create a metamask wallet and connect to the Binance Smart Chain Goto www.ODApp.io Connect your metamask wallet Please note there is a %0.075 fee associated with swapping Pre-commit your wallet by entering the PKT sender address. This is the address that you will be sending your PKT from. (Please note: This address must be from a PKT wallet (Electrum, Zulu or PKT World. Once you commit this address it is the only address you can use to convert PKT to wPKT and wPKT to PKT. After you submit you should see Pair Successfully Committed. Click Get WPKT Using the PKT wallet address you used in step 5, Send the amount of PKT you want to wrap to wPKT to ODApp's \"VAULT\" address, pkt1qex9d4fjwc0nqr3x0hex6ds5vpu67efjdlm6ckz Make sure to copy the Transaction ID as you will need this in the coming steps For security, you will need to wait about 7 minutes to claim your WPKT. For transactions greater than 7 million PKT could take up to 3 hours to complete. Enter your PKT transaction ID, the address you sent your PKT from, and the BSC address you would like your WPKT sent to. You will need to hold some BNB coin in your metamask wallet to pay for fees in this process. If successful the following notification will populate and you will then have the ability to add wPKT token to your wallet. This will prompt your metamask wallet to open and allow you to add your tokens. Go check your wPKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into etherscan.io and you should see the transaction on the blockchain. Steps to swap wPKT to PKT \u00b6 You should already have either purchased wPKT on PancakeSwap or swapped your PKT into wPKT Please note there is a %.075 fee associated with swapping Log into your metmask wallet You must have some BNB in your wallet as you will need this for fees associated with swapping. Open your PKT wallet Goto www.ODApp.io and connect your metamask wallet Enter the amount of wPKT you want to convert to PKT Enter the PKT wallet address you would like the PKT deposited into The following prompt should show if you successfully burned the coins Press Recover PKT and this prompt should show Go check your PKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into https://explorer.pkt.cash and you should see the transaction on the blockchain.","title":"Wrapped pkt"},{"location":"wrapped_pkt/#steps-to-swap-pkt-to-wpkt","text":"Buy PKT on Bittrex Global (Non-USA traders) or BitMart (Global traders) Create a metamask wallet and connect to the Binance Smart Chain Goto www.ODApp.io Connect your metamask wallet Please note there is a %0.075 fee associated with swapping Pre-commit your wallet by entering the PKT sender address. This is the address that you will be sending your PKT from. (Please note: This address must be from a PKT wallet (Electrum, Zulu or PKT World. Once you commit this address it is the only address you can use to convert PKT to wPKT and wPKT to PKT. After you submit you should see Pair Successfully Committed. Click Get WPKT Using the PKT wallet address you used in step 5, Send the amount of PKT you want to wrap to wPKT to ODApp's \"VAULT\" address, pkt1qex9d4fjwc0nqr3x0hex6ds5vpu67efjdlm6ckz Make sure to copy the Transaction ID as you will need this in the coming steps For security, you will need to wait about 7 minutes to claim your WPKT. For transactions greater than 7 million PKT could take up to 3 hours to complete. Enter your PKT transaction ID, the address you sent your PKT from, and the BSC address you would like your WPKT sent to. You will need to hold some BNB coin in your metamask wallet to pay for fees in this process. If successful the following notification will populate and you will then have the ability to add wPKT token to your wallet. This will prompt your metamask wallet to open and allow you to add your tokens. Go check your wPKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into etherscan.io and you should see the transaction on the blockchain.","title":"Steps to swap PKT to wPKT"},{"location":"wrapped_pkt/#steps-to-swap-wpkt-to-pkt","text":"You should already have either purchased wPKT on PancakeSwap or swapped your PKT into wPKT Please note there is a %.075 fee associated with swapping Log into your metmask wallet You must have some BNB in your wallet as you will need this for fees associated with swapping. Open your PKT wallet Goto www.ODApp.io and connect your metamask wallet Enter the amount of wPKT you want to convert to PKT Enter the PKT wallet address you would like the PKT deposited into The following prompt should show if you successfully burned the coins Press Recover PKT and this prompt should show Go check your PKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into https://explorer.pkt.cash and you should see the transaction on the blockchain.","title":"Steps to swap wPKT to PKT"},{"location":"adv_learning/buy-pkt/","text":"PKT Documentation \u00b6 Documentation for the PKT project Wallet setup \u00b6 There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features. Mining \u00b6 PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page. Running a pktd instance \u00b6 You can setup a pktd instance using the instructions on pktd . Help and Community \u00b6 To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"PKT Documentation"},{"location":"adv_learning/buy-pkt/#pkt-documentation","text":"Documentation for the PKT project","title":"PKT Documentation"},{"location":"adv_learning/buy-pkt/#wallet-setup","text":"There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.","title":"Wallet setup"},{"location":"adv_learning/buy-pkt/#mining","text":"PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.","title":"Mining"},{"location":"adv_learning/buy-pkt/#running-a-pktd-instance","text":"You can setup a pktd instance using the instructions on pktd .","title":"Running a pktd instance"},{"location":"adv_learning/buy-pkt/#help-and-community","text":"To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"Help and Community"},{"location":"adv_learning/cryptoeconomics/","text":"Cryptoeconomics \u00b6 PKT blockchain is based on the Bitcoin codebase and implements two fundamental changes: Replacing SHA256 with the PacketCrypt proof of work. Adding a Network Steward that receives 20% of every coinbase payout to provide grants that meets its funding criteria. There are a total of 6 billion PKT, which will be mined over 63 years. Instead of an abrupt halving event every 4 years, like with Bitcoin, PKT uses a steady decay called a decimation, which is a 10% reduction in the block rewards every 100 days. Payout of PKT vs. BTC as percent of total coins Payout of PKT vs. BTC as percent of total coins PKT is designed around fast cheap transacting in small denominations. This is why there will be a total of 6 billion PKT mined compared to 21 million for Bitcoin. Furthermore, each PKT is subdividable into 1,073,741,824 units (2 to the 30th power) whereas there are only 100 million satoshis per Bitcoin. When the Bitcoin price reached almost $62,000 in October 2021, the price of a satoshi was 0.06 cents. This cost per satoshi is impractical for microtransactions, even with nearly free transacting over the Lightning Network. PKT Cash provides an economic incentive for people to connect bandwidth to the PKT Network. The Network Steward is designed to ensure funding is available to build-out an expansive, decentralized internet infrastructure with open-source technology.","title":"Cryptoeconomics"},{"location":"adv_learning/cryptoeconomics/#cryptoeconomics","text":"PKT blockchain is based on the Bitcoin codebase and implements two fundamental changes: Replacing SHA256 with the PacketCrypt proof of work. Adding a Network Steward that receives 20% of every coinbase payout to provide grants that meets its funding criteria. There are a total of 6 billion PKT, which will be mined over 63 years. Instead of an abrupt halving event every 4 years, like with Bitcoin, PKT uses a steady decay called a decimation, which is a 10% reduction in the block rewards every 100 days. Payout of PKT vs. BTC as percent of total coins Payout of PKT vs. BTC as percent of total coins PKT is designed around fast cheap transacting in small denominations. This is why there will be a total of 6 billion PKT mined compared to 21 million for Bitcoin. Furthermore, each PKT is subdividable into 1,073,741,824 units (2 to the 30th power) whereas there are only 100 million satoshis per Bitcoin. When the Bitcoin price reached almost $62,000 in October 2021, the price of a satoshi was 0.06 cents. This cost per satoshi is impractical for microtransactions, even with nearly free transacting over the Lightning Network. PKT Cash provides an economic incentive for people to connect bandwidth to the PKT Network. The Network Steward is designed to ensure funding is available to build-out an expansive, decentralized internet infrastructure with open-source technology.","title":"Cryptoeconomics"},{"location":"adv_learning/pktd-full-node/","text":"How to Run a Pktd Full Node \u00b6 Pktd is the PKT full node blockchain software. It is a fork of btcd, the golang bitcoin instance. Running a full node \u00b6 If you want to run a full node in the PKT network, you can do so by downloading pktd and compiling it on a Linux or Mac server. Follow the process in Installation and the simply type ./bin/pktd and it will start up and begin syncing the chain and helping verify the PKT network. NOTE : Running a full node requires over 40 GB of disk space to store the blockchain and is not necessary for participating in the project. If you just want to make a wallet, see PKT Electrum (gui) or PKTWallet (command line) wallets. Installation \u00b6 Install golang \u00b6 First, you need to install the go programming language, go to the golang website and learn how to install it on your system: https://golang.org/doc/install Install git \u00b6 Next you will need to make sure you have git installed. The first thing to do is check whether you have it installed already: git version If it prints something like git version 2.21.1 you\u2019re in luck and you can continue. If it prints something more like command not found: git then you\u2019ll need to install it. Installation will depend on your system, for debian/ubuntu like systems you will want sudo apt install git and for OSX with homebrew, you\u2019ll want brew install git . Install the components \u00b6 Once you have golang and git fully installed and set up, you can use the following commands to install pktd, pktwallet and pktctl. git clone https://github.com/pkt-cash/pktd cd pktd ./do If you see something like: Everything looks good at the end of typing ./do then you should be ready to start using pktd.","title":"How to Run a Pktd Full Node"},{"location":"adv_learning/pktd-full-node/#how-to-run-a-pktd-full-node","text":"Pktd is the PKT full node blockchain software. It is a fork of btcd, the golang bitcoin instance.","title":"How to Run a Pktd Full Node"},{"location":"adv_learning/pktd-full-node/#running-a-full-node","text":"If you want to run a full node in the PKT network, you can do so by downloading pktd and compiling it on a Linux or Mac server. Follow the process in Installation and the simply type ./bin/pktd and it will start up and begin syncing the chain and helping verify the PKT network. NOTE : Running a full node requires over 40 GB of disk space to store the blockchain and is not necessary for participating in the project. If you just want to make a wallet, see PKT Electrum (gui) or PKTWallet (command line) wallets.","title":"Running a full node"},{"location":"adv_learning/pktd-full-node/#installation","text":"","title":"Installation"},{"location":"adv_learning/pktd-full-node/#install-golang","text":"First, you need to install the go programming language, go to the golang website and learn how to install it on your system: https://golang.org/doc/install","title":"Install golang"},{"location":"adv_learning/pktd-full-node/#install-git","text":"Next you will need to make sure you have git installed. The first thing to do is check whether you have it installed already: git version If it prints something like git version 2.21.1 you\u2019re in luck and you can continue. If it prints something more like command not found: git then you\u2019ll need to install it. Installation will depend on your system, for debian/ubuntu like systems you will want sudo apt install git and for OSX with homebrew, you\u2019ll want brew install git .","title":"Install git"},{"location":"adv_learning/pktd-full-node/#install-the-components","text":"Once you have golang and git fully installed and set up, you can use the following commands to install pktd, pktwallet and pktctl. git clone https://github.com/pkt-cash/pktd cd pktd ./do If you see something like: Everything looks good at the end of typing ./do then you should be ready to start using pktd.","title":"Install the components"},{"location":"adv_learning/sell-pkt/","text":"PKT Documentation \u00b6 Documentation for the PKT project Wallet setup \u00b6 There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features. Mining \u00b6 PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page. Running a pktd instance \u00b6 You can setup a pktd instance using the instructions on pktd . Help and Community \u00b6 To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"PKT Documentation"},{"location":"adv_learning/sell-pkt/#pkt-documentation","text":"Documentation for the PKT project","title":"PKT Documentation"},{"location":"adv_learning/sell-pkt/#wallet-setup","text":"There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.","title":"Wallet setup"},{"location":"adv_learning/sell-pkt/#mining","text":"PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.","title":"Mining"},{"location":"adv_learning/sell-pkt/#running-a-pktd-instance","text":"You can setup a pktd instance using the instructions on pktd .","title":"Running a pktd instance"},{"location":"adv_learning/sell-pkt/#help-and-community","text":"To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"Help and Community"},{"location":"adv_learning/swap-pkt-wrapped-pkt/","text":"How to Swap PKT and Wrapped PKT \u00b6 Steps to swap PKT to wPKT \u00b6 Buy PKT on Bittrex Global (Non-USA traders) or BitMart (Global traders) Create a metamask wallet and connect to the Binance Smart Chain Goto www.ODApp.io Connect your metamask wallet Please note there is a %0.075 fee associated with swapping Pre-commit your wallet by entering the PKT sender address. This is the address that you will be sending your PKT from. (Please note: This address must be from a PKT wallet (Electrum, Zulu or PKT World. Once you commit this address it is the only address you can use to convert PKT to wPKT and wPKT to PKT. After you submit you should see Pair Successfully Committed. Click Get WPKT Using the PKT wallet address you used in step 5, Send the amount of PKT you want to wrap to wPKT to ODApp's \"VAULT\" address, pkt1qex9d4fjwc0nqr3x0hex6ds5vpu67efjdlm6ckz Make sure to copy the Transaction ID as you will need this in the coming steps For security, you will need to wait about 7 minutes to claim your WPKT. For transactions greater than 7 million PKT could take up to 3 hours to complete. Enter your PKT transaction ID, the address you sent your PKT from, and the BSC address you would like your WPKT sent to. You will need to hold some BNB coin in your metamask wallet to pay for fees in this process. If successful the following notification will populate and you will then have the ability to add wPKT token to your wallet. This will prompt your metamask wallet to open and allow you to add your tokens. Go check your wPKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into etherscan.io and you should see the transaction on the blockchain. Steps to swap wPKT to PKT \u00b6 You should already have either purchased wPKT on PancakeSwap or swapped your PKT into wPKT Please note there is a %.075 fee associated with swapping Log into your metmask wallet You must have some BNB in your wallet as you will need this for fees associated with swapping. Open your PKT wallet Go to www.ODApp.io and connect your metamask wallet Enter the amount of wPKT you want to convert to PKT Enter the PKT wallet address you would like the PKT deposited into The following prompt should show if you successfully burned the coins Press Recover PKT and this prompt should show Go check your PKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into https://explorer.pkt.cash and you should see the transaction on the blockchain.","title":"How to Swap PKT and Wrapped PKT"},{"location":"adv_learning/swap-pkt-wrapped-pkt/#how-to-swap-pkt-and-wrapped-pkt","text":"","title":"How to Swap PKT and Wrapped PKT"},{"location":"adv_learning/swap-pkt-wrapped-pkt/#steps-to-swap-pkt-to-wpkt","text":"Buy PKT on Bittrex Global (Non-USA traders) or BitMart (Global traders) Create a metamask wallet and connect to the Binance Smart Chain Goto www.ODApp.io Connect your metamask wallet Please note there is a %0.075 fee associated with swapping Pre-commit your wallet by entering the PKT sender address. This is the address that you will be sending your PKT from. (Please note: This address must be from a PKT wallet (Electrum, Zulu or PKT World. Once you commit this address it is the only address you can use to convert PKT to wPKT and wPKT to PKT. After you submit you should see Pair Successfully Committed. Click Get WPKT Using the PKT wallet address you used in step 5, Send the amount of PKT you want to wrap to wPKT to ODApp's \"VAULT\" address, pkt1qex9d4fjwc0nqr3x0hex6ds5vpu67efjdlm6ckz Make sure to copy the Transaction ID as you will need this in the coming steps For security, you will need to wait about 7 minutes to claim your WPKT. For transactions greater than 7 million PKT could take up to 3 hours to complete. Enter your PKT transaction ID, the address you sent your PKT from, and the BSC address you would like your WPKT sent to. You will need to hold some BNB coin in your metamask wallet to pay for fees in this process. If successful the following notification will populate and you will then have the ability to add wPKT token to your wallet. This will prompt your metamask wallet to open and allow you to add your tokens. Go check your wPKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into etherscan.io and you should see the transaction on the blockchain.","title":"Steps to swap PKT to wPKT"},{"location":"adv_learning/swap-pkt-wrapped-pkt/#steps-to-swap-wpkt-to-pkt","text":"You should already have either purchased wPKT on PancakeSwap or swapped your PKT into wPKT Please note there is a %.075 fee associated with swapping Log into your metmask wallet You must have some BNB in your wallet as you will need this for fees associated with swapping. Open your PKT wallet Go to www.ODApp.io and connect your metamask wallet Enter the amount of wPKT you want to convert to PKT Enter the PKT wallet address you would like the PKT deposited into The following prompt should show if you successfully burned the coins Press Recover PKT and this prompt should show Go check your PKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into https://explorer.pkt.cash and you should see the transaction on the blockchain.","title":"Steps to swap wPKT to PKT"},{"location":"community/avoid-examples/","text":"Examples to Avoid \u00b6 These passages are examples of the type of communication which is likely to be problematic. Context is key, and in the context of a communication which clearly transmits an ethical core message, a passing mention of money probably does not make the whole communication unethical. But if the core message is not communicated with adequate clarity, then even the slightest mention of topics like the following may make the communication unethical. \"Reaping the rewards for something you put zero effort in.\" \"Easy money.\u201d \"So many people trust cryptocurrency as an investment.\" While some of these statements may be factual, they share a common narrative that there is an opportunity, it is easy, and it leads to making money. This is a stark contrast from the Principle of No Expected Return.","title":"Examples to Avoid"},{"location":"community/avoid-examples/#examples-to-avoid","text":"These passages are examples of the type of communication which is likely to be problematic. Context is key, and in the context of a communication which clearly transmits an ethical core message, a passing mention of money probably does not make the whole communication unethical. But if the core message is not communicated with adequate clarity, then even the slightest mention of topics like the following may make the communication unethical. \"Reaping the rewards for something you put zero effort in.\" \"Easy money.\u201d \"So many people trust cryptocurrency as an investment.\" While some of these statements may be factual, they share a common narrative that there is an opportunity, it is easy, and it leads to making money. This is a stark contrast from the Principle of No Expected Return.","title":"Examples to Avoid"},{"location":"community/better-examples/","text":"Better Examples \u00b6 Honest communications addressing topics like the following are more likely to be ethical. \"Price has been on the rise, but this can be affected by market events outside the project.\" \"We all know internet is over-priced, but now there is a community of people trying to do something about it\" \"I know cryptocurrencies are risky, and tomorrow it could all be worth nothing, but I'm spending money I can afford to lose on a something I believe in\"\" \"The control that big telecoms have over our everyday lives can make people feel powerless, but now there\u2019s an easy way to push back\" \"Sometimes the price goes up and sometimes it goes down. Being part of the community is about believing that democratized internet and a decentralized media network is possible.\"","title":"Better Examples"},{"location":"community/better-examples/#better-examples","text":"Honest communications addressing topics like the following are more likely to be ethical. \"Price has been on the rise, but this can be affected by market events outside the project.\" \"We all know internet is over-priced, but now there is a community of people trying to do something about it\" \"I know cryptocurrencies are risky, and tomorrow it could all be worth nothing, but I'm spending money I can afford to lose on a something I believe in\"\" \"The control that big telecoms have over our everyday lives can make people feel powerless, but now there\u2019s an easy way to push back\" \"Sometimes the price goes up and sometimes it goes down. Being part of the community is about believing that democratized internet and a decentralized media network is possible.\"","title":"Better Examples"},{"location":"community/code_of_conduct/","text":"Code of Conduct \u00b6 We are here to talk about PKT. If it's not PKT related, don't post it here. Not reading the rules is not an excuse for breaking the rules. No OTC trading allowed. This is a place to build the community and create a positive dialogue amongst Pkteers. If the conversation turns negative, the moderators reserve the right to ban or block anyone. Hate speech is not permitted and can result in being banned. This means no sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language. We ask that Pkteers keep the conversation civil and respectful. No violence, threats of violence or violent language directed against another person. No name calling, attacks, or bad mouthing others. No posting or displaying sexually explicit or violent material. No personal insults, particularly those related to gender, sexual orientation, race, religion, or disability No unwelcome sexual attention. This includes, sexualized comments or jokes, and unwelcomed sexual advances. No self-promotion whether direct or indirect unless with written admin approval. No shilling (promoting) of assets is permitted. Moderators reserve the right to moderate, block or remove posts that are factually inaccurate, deemed inappropriate or lack substantiation. Spamming will result in being banned. No trolling - No antagonizing people in any of the PKT chats by deliberately posting inflammatory, irrelevant, or offensive comments, images, memes, stickers or other disruptive content. If it doesn't relate to PKT don't post it or you will be banned. Contact people \u00b6 If someone has made you feel unsafe or unwelcome, please contact one of the admins of the group. We will do our best to address your matter quickly and with discretion. Jeremy Berger: telegram: @jeremy_berger / pkt.chat: @jeremyb Caleb James DeLisle: pkt.chat: @cjd","title":"Code of Conduct"},{"location":"community/code_of_conduct/#code-of-conduct","text":"We are here to talk about PKT. If it's not PKT related, don't post it here. Not reading the rules is not an excuse for breaking the rules. No OTC trading allowed. This is a place to build the community and create a positive dialogue amongst Pkteers. If the conversation turns negative, the moderators reserve the right to ban or block anyone. Hate speech is not permitted and can result in being banned. This means no sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language. We ask that Pkteers keep the conversation civil and respectful. No violence, threats of violence or violent language directed against another person. No name calling, attacks, or bad mouthing others. No posting or displaying sexually explicit or violent material. No personal insults, particularly those related to gender, sexual orientation, race, religion, or disability No unwelcome sexual attention. This includes, sexualized comments or jokes, and unwelcomed sexual advances. No self-promotion whether direct or indirect unless with written admin approval. No shilling (promoting) of assets is permitted. Moderators reserve the right to moderate, block or remove posts that are factually inaccurate, deemed inappropriate or lack substantiation. Spamming will result in being banned. No trolling - No antagonizing people in any of the PKT chats by deliberately posting inflammatory, irrelevant, or offensive comments, images, memes, stickers or other disruptive content. If it doesn't relate to PKT don't post it or you will be banned.","title":"Code of Conduct"},{"location":"community/code_of_conduct/#contact-people","text":"If someone has made you feel unsafe or unwelcome, please contact one of the admins of the group. We will do our best to address your matter quickly and with discretion. Jeremy Berger: telegram: @jeremy_berger / pkt.chat: @jeremyb Caleb James DeLisle: pkt.chat: @cjd","title":"Contact people"},{"location":"community/ethica-communication-guidelines/","text":"Ethical Communication Guidelines \u00b6 This is a guideline for ethical communications about the project. It is recognized that for PKT to accomplish its goals, there must be a community who understands and uses the technology. In this way communication cannot be avoided. However, poor communication, even made with the best intentions, risks harming the reputation of the project and the general public. So these guidelines exist to help community members represent the project in the best way possible. A Far Higher Standard \u00b6 Within the cryptocurrency ecosystem, there are a significant number of outright criminal activities. Beyond those, there is a wide gray area of communication activities which have not been subject to any regulatory enforcement, but still fall far outside of what these guidelines established as ethical. Community members are cautioned that due to the scale of these \"gray\" activities, there is a large body of publications, influencers, marketers, \"shills\" and other professionals who, if consulted or emulated, are highly likely to put a person in ethical peril. The reason is because these guidelines establish a far higher standard of communication ethics than that which is generally considered to be legal. Principle of No Expected Return \u00b6 It is acknowledged that buying and selling are central aspects of the cryptocurrency ecosystem, so it is difficult to effectively communicate about the project without ever addressing reasons why a person might do these things. Therefore these guidelines offer a pre-approved narrative which is considered to be maximally protective of the reputation of the project while also providing a healthy perspective regarding the risks associated with cryptocurrency. The Principle of No Expected Return is that one should buy cryptocurrency if and only if they believe strongly enough in the vision of the project that they would be proud to own the coin even if they were never able to sell it. In the early days of Bitcoin, it was widely believed that it would be legislated out of existence or otherwise collapse, and so this principle was pervasive throughout the community. Many people chose to hold Bitcoin as a political statement regarding the morality of modern financial institutions, especially after the 2008 financial crisis. The key components of the Principle of No Expected Return are: * A clear understanding of what the technology is and what it is not. * A belief in the social change which that technology can realistically facilitate. * The mental and financial preparedness to lose any money or effort that is used to acquire the token, as one has when one makes a donation. When you\u2019re considering buying a token, you need to ask yourself: If you were to lose everything you put into a token, would you look back on the day you bought it, proud to have been a part of the project at that time? If the answer is no, then you\u2019re either planning to buy too much, or you\u2019re just not ready. Guidelines \u00b6 Dishonest, intentionally misleading, or otherwise unlawful communication is obviously unethical. Beyond that there is no clear definition for unethical communication, though one could characterize it in the words of Justice Stewart, \"I know it when I see it\". These non-exhaustive guidelines exist to give community members an understanding of the types of communication which are most likely to be unethical. They are listed in order of importance with the most important first. Communications which follow the letter, but not the spirit, of these guidelines are unethical. One example of this is token disclaimers such as \"this is not financial advice\". Disclaimers can be useful for helping a person understand the limitations and caveats of a communication, but a token disclaimer exists more to make the communicator seem innocent than to help the audience have a clearer understanding. The use of fine print, or disclaimers which \"feel out of place\" in the overall communication should be regarded as red flags, and communicators using these should review the objectives of their message and whether it is being communicated clearly. Communications which a person of sound judgment could plausibly interpret as presenting a low risk low effort opportunity to make money , or \u201csomething for nothing\u201d, are unethical. Presenting an opportunity can take many forms including implication though specific selection of facts, or an over-celebratory tone. Generally speaking, communications should be explicit about their objective so that there is minimal chance of mis-interpretation. Communications in which a person suffering impaired judgment has an unusually high likelihood of interpreting as a low risk low effort opportunity to make money are unethical. Topics like \u201cwinning\u201d, \u201cpump\u201d, \u201cFOMO\u201d, \u201cYOLO\u201d (spend all of your money), \u201cmoon\u201d, and the idea of being rich, may strike the average person as nothing more than a bit of low-culture humor, but for a pathological gambler these can trigger a harmful thought process and should be avoided. Communications related to investment and trading of the token should be addressed to investors and traders \u2014 professionals who know how hard it is to reliably beat the market and who make decisions based on their own unique portfolio and risk management strategy. Any kind of communication around these topics which has a celebratory tone, or which could reasonably be interpreted as investment advice is not ethical. Communications which focus entirely on explaining a piece of technology, without any mention or implication of buying, selling, price, or potential future growth (including growth in usage of the technology), are probably ethical. Communications which address the topic of buying, selling or staking, but are specifically focused on the Principle of No Expected Return, are probably ethical.","title":"Ethical Communication Guidelines"},{"location":"community/ethica-communication-guidelines/#ethical-communication-guidelines","text":"This is a guideline for ethical communications about the project. It is recognized that for PKT to accomplish its goals, there must be a community who understands and uses the technology. In this way communication cannot be avoided. However, poor communication, even made with the best intentions, risks harming the reputation of the project and the general public. So these guidelines exist to help community members represent the project in the best way possible.","title":"Ethical Communication Guidelines"},{"location":"community/ethica-communication-guidelines/#a-far-higher-standard","text":"Within the cryptocurrency ecosystem, there are a significant number of outright criminal activities. Beyond those, there is a wide gray area of communication activities which have not been subject to any regulatory enforcement, but still fall far outside of what these guidelines established as ethical. Community members are cautioned that due to the scale of these \"gray\" activities, there is a large body of publications, influencers, marketers, \"shills\" and other professionals who, if consulted or emulated, are highly likely to put a person in ethical peril. The reason is because these guidelines establish a far higher standard of communication ethics than that which is generally considered to be legal.","title":"A Far Higher Standard"},{"location":"community/ethica-communication-guidelines/#principle-of-no-expected-return","text":"It is acknowledged that buying and selling are central aspects of the cryptocurrency ecosystem, so it is difficult to effectively communicate about the project without ever addressing reasons why a person might do these things. Therefore these guidelines offer a pre-approved narrative which is considered to be maximally protective of the reputation of the project while also providing a healthy perspective regarding the risks associated with cryptocurrency. The Principle of No Expected Return is that one should buy cryptocurrency if and only if they believe strongly enough in the vision of the project that they would be proud to own the coin even if they were never able to sell it. In the early days of Bitcoin, it was widely believed that it would be legislated out of existence or otherwise collapse, and so this principle was pervasive throughout the community. Many people chose to hold Bitcoin as a political statement regarding the morality of modern financial institutions, especially after the 2008 financial crisis. The key components of the Principle of No Expected Return are: * A clear understanding of what the technology is and what it is not. * A belief in the social change which that technology can realistically facilitate. * The mental and financial preparedness to lose any money or effort that is used to acquire the token, as one has when one makes a donation. When you\u2019re considering buying a token, you need to ask yourself: If you were to lose everything you put into a token, would you look back on the day you bought it, proud to have been a part of the project at that time? If the answer is no, then you\u2019re either planning to buy too much, or you\u2019re just not ready.","title":"Principle of No Expected Return"},{"location":"community/ethica-communication-guidelines/#guidelines","text":"Dishonest, intentionally misleading, or otherwise unlawful communication is obviously unethical. Beyond that there is no clear definition for unethical communication, though one could characterize it in the words of Justice Stewart, \"I know it when I see it\". These non-exhaustive guidelines exist to give community members an understanding of the types of communication which are most likely to be unethical. They are listed in order of importance with the most important first. Communications which follow the letter, but not the spirit, of these guidelines are unethical. One example of this is token disclaimers such as \"this is not financial advice\". Disclaimers can be useful for helping a person understand the limitations and caveats of a communication, but a token disclaimer exists more to make the communicator seem innocent than to help the audience have a clearer understanding. The use of fine print, or disclaimers which \"feel out of place\" in the overall communication should be regarded as red flags, and communicators using these should review the objectives of their message and whether it is being communicated clearly. Communications which a person of sound judgment could plausibly interpret as presenting a low risk low effort opportunity to make money , or \u201csomething for nothing\u201d, are unethical. Presenting an opportunity can take many forms including implication though specific selection of facts, or an over-celebratory tone. Generally speaking, communications should be explicit about their objective so that there is minimal chance of mis-interpretation. Communications in which a person suffering impaired judgment has an unusually high likelihood of interpreting as a low risk low effort opportunity to make money are unethical. Topics like \u201cwinning\u201d, \u201cpump\u201d, \u201cFOMO\u201d, \u201cYOLO\u201d (spend all of your money), \u201cmoon\u201d, and the idea of being rich, may strike the average person as nothing more than a bit of low-culture humor, but for a pathological gambler these can trigger a harmful thought process and should be avoided. Communications related to investment and trading of the token should be addressed to investors and traders \u2014 professionals who know how hard it is to reliably beat the market and who make decisions based on their own unique portfolio and risk management strategy. Any kind of communication around these topics which has a celebratory tone, or which could reasonably be interpreted as investment advice is not ethical. Communications which focus entirely on explaining a piece of technology, without any mention or implication of buying, selling, price, or potential future growth (including growth in usage of the technology), are probably ethical. Communications which address the topic of buying, selling or staking, but are specifically focused on the Principle of No Expected Return, are probably ethical.","title":"Guidelines"},{"location":"community/press-media-assets/","text":"Brand Assets \u00b6 Download the PKT Logo and wordmark assets here . Before use, please see the trademark guidelines for these assets here .","title":"Brand Assets"},{"location":"community/press-media-assets/#brand-assets","text":"Download the PKT Logo and wordmark assets here . Before use, please see the trademark guidelines for these assets here .","title":"Brand Assets"},{"location":"dev/building-on-pkt/","text":"Building on PKT \u00b6 The PKT roadmap is composed of 4 Phases, based on having the fewest dependencies first. Collectively the 3 Phase will bring the PKT Network to scale. Phase 1: Launch \u00b6 Bandwidth Mining PacketCrypt was created and the mainnet PKT blockchain was launched in August 2019. Phase 1 focused on community growth, building out network infrastructure and unifying around PacketCrypt and bandwidth-hard mining. Major developments include multiple PKT wallets, community engagement via PKT Chat, the project task tracker, Network Steward and informational websites. Phase 2: Utilize \u00b6 Tokenized Bandwidth Leases Anyone who wants to use a VPN, create their own, or mine PKT will easily be able to do so via Anodium VPN. Technology development includes Token Strike, to issue tokens in the PKT ecosystem for near zero cost and without gas fees, a DeFi bridge between PKT, Ethereum and Binance Smart Chain, bandwidth lease function and infrastructure via cjdns, and an Edge Point Device to easily mine PacketCrypt and get on the internet via your neighbor. Phase 3: Scale \u00b6 Support Internet Sharing The alpha implementation of the virtual Cloud ISP provides the ability to trade, aggregate, and access tokenized bandwidth leases via cjdns. People can get on the internet via their neighbor with no privacy risk because all data is sent to a VPN. The Atomic Swap Market can transact in and out of PKT with high speed, low cost transactions between Lightning Network enabled coins such as PKT, Bitcoin, Litecoin and Ethereum. Desktop and mobile apps provide easy functionality across devices worldwide. Phase 4: Innovate \u00b6 Virtual ISPs The commercial expansion of Cloud ISPs signifies a healthy and active bandwidth market. People can lease bandwidth allotment guarantees and access the internet without using a traditional ISP. PKT Priority provides internet access with a minimum price free if there is available bandwidth. This will simplify local mesh networking by moving the network engineering component to the Cloud ISP. The stateless switch design central in the cjdns protocol will not only set new records for router performance/cost ratio, but will also allow for hundreds or even thousands of Cloud ISPs to send data through a single device, each according to their own routing policy.","title":"Building on PKT"},{"location":"dev/building-on-pkt/#building-on-pkt","text":"The PKT roadmap is composed of 4 Phases, based on having the fewest dependencies first. Collectively the 3 Phase will bring the PKT Network to scale.","title":"Building on PKT"},{"location":"dev/building-on-pkt/#phase-1-launch","text":"Bandwidth Mining PacketCrypt was created and the mainnet PKT blockchain was launched in August 2019. Phase 1 focused on community growth, building out network infrastructure and unifying around PacketCrypt and bandwidth-hard mining. Major developments include multiple PKT wallets, community engagement via PKT Chat, the project task tracker, Network Steward and informational websites.","title":"Phase 1: Launch"},{"location":"dev/building-on-pkt/#phase-2-utilize","text":"Tokenized Bandwidth Leases Anyone who wants to use a VPN, create their own, or mine PKT will easily be able to do so via Anodium VPN. Technology development includes Token Strike, to issue tokens in the PKT ecosystem for near zero cost and without gas fees, a DeFi bridge between PKT, Ethereum and Binance Smart Chain, bandwidth lease function and infrastructure via cjdns, and an Edge Point Device to easily mine PacketCrypt and get on the internet via your neighbor.","title":"Phase 2: Utilize"},{"location":"dev/building-on-pkt/#phase-3-scale","text":"Support Internet Sharing The alpha implementation of the virtual Cloud ISP provides the ability to trade, aggregate, and access tokenized bandwidth leases via cjdns. People can get on the internet via their neighbor with no privacy risk because all data is sent to a VPN. The Atomic Swap Market can transact in and out of PKT with high speed, low cost transactions between Lightning Network enabled coins such as PKT, Bitcoin, Litecoin and Ethereum. Desktop and mobile apps provide easy functionality across devices worldwide.","title":"Phase 3: Scale"},{"location":"dev/building-on-pkt/#phase-4-innovate","text":"Virtual ISPs The commercial expansion of Cloud ISPs signifies a healthy and active bandwidth market. People can lease bandwidth allotment guarantees and access the internet without using a traditional ISP. PKT Priority provides internet access with a minimum price free if there is available bandwidth. This will simplify local mesh networking by moving the network engineering component to the Cloud ISP. The stateless switch design central in the cjdns protocol will not only set new records for router performance/cost ratio, but will also allow for hundreds or even thousands of Cloud ISPs to send data through a single device, each according to their own routing policy.","title":"Phase 4: Innovate"},{"location":"dev/cjdns/","text":"Cjdns \u00b6 PKT is an ideological continuation of the cjdns mesh networking project, launched by PKT Lead Developer Caleb James DeLisle in 2011. Cjdns solves several weaknesses with internet function, such as data privacy, need for decentralization and optimized, efficient routing. Cjdns provides anyone with an IPv6 address, which is the basis for a global mesh network in which anyone can share their internet and become an internet service provider.","title":"Cjdns"},{"location":"dev/cjdns/#cjdns","text":"PKT is an ideological continuation of the cjdns mesh networking project, launched by PKT Lead Developer Caleb James DeLisle in 2011. Cjdns solves several weaknesses with internet function, such as data privacy, need for decentralization and optimized, efficient routing. Cjdns provides anyone with an IPv6 address, which is the basis for a global mesh network in which anyone can share their internet and become an internet service provider.","title":"Cjdns"},{"location":"dev/cloud-isp/","text":"Cloud ISP \u00b6 A Cloud ISP is a hybrid between a traditional ISP and a VPN provider. This technology is designed to reimagine internet service, so anyone can become an ISP. Cloud ISPs aggregate and broker Edge Point tokenized bandwidth leases, facilitate software defined networking, and oversee the administrative roles of internet service to customers. The Cloud ISP system is designed to manage two virtual assets: the virtual router lease and the bandwidth lease. A virtual router lease has a right to resources within the routing device for a limited time period. The bandwidth lease provides a minimum bandwidth link guarantee between two physical routing devices for a specific time period. The result is the PKT Network: an ultra fast independent network that is connected to the normal internet and powered by the people.","title":"Cloud ISP"},{"location":"dev/cloud-isp/#cloud-isp","text":"A Cloud ISP is a hybrid between a traditional ISP and a VPN provider. This technology is designed to reimagine internet service, so anyone can become an ISP. Cloud ISPs aggregate and broker Edge Point tokenized bandwidth leases, facilitate software defined networking, and oversee the administrative roles of internet service to customers. The Cloud ISP system is designed to manage two virtual assets: the virtual router lease and the bandwidth lease. A virtual router lease has a right to resources within the routing device for a limited time period. The bandwidth lease provides a minimum bandwidth link guarantee between two physical routing devices for a specific time period. The result is the PKT Network: an ultra fast independent network that is connected to the normal internet and powered by the people.","title":"Cloud ISP"},{"location":"dev/edge-points/","text":"Edge Point \u00b6 Edge Points are devices that are operated by an individual or business and maintain a network connection to the PKT Network. Edge Points will tokenize their bandwidth using TokenStrike and sell tokenized bandwidth to Cloud ISPs to broker connectivity to real customers. Edge Point technology will interface with PKT VPN and evolve to facilitate mesh network access points to the internet.","title":"Edge Point"},{"location":"dev/edge-points/#edge-point","text":"Edge Points are devices that are operated by an individual or business and maintain a network connection to the PKT Network. Edge Points will tokenize their bandwidth using TokenStrike and sell tokenized bandwidth to Cloud ISPs to broker connectivity to real customers. Edge Point technology will interface with PKT VPN and evolve to facilitate mesh network access points to the internet.","title":"Edge Point"},{"location":"dev/packetcrypt/","text":"PacketCrypt \u00b6 PacketCrypt is the world\u2019s first bandwidth-hard proof of work. Packet = Bandwidth and Crypt = Encryption. This technology incentivizes miners to increase bandwidth upload & download throughput. PKT mining favors increased bandwidth over CPU power, rewarding people that connect high speed bandwidth infrastructure to the PKT Network.","title":"PacketCrypt"},{"location":"dev/packetcrypt/#packetcrypt","text":"PacketCrypt is the world\u2019s first bandwidth-hard proof of work. Packet = Bandwidth and Crypt = Encryption. This technology incentivizes miners to increase bandwidth upload & download throughput. PKT mining favors increased bandwidth over CPU power, rewarding people that connect high speed bandwidth infrastructure to the PKT Network.","title":"PacketCrypt"},{"location":"dev/pkt-lightning-deamon/","text":"PKT Lighting \u00b6","title":"PKT Lighting"},{"location":"dev/pkt-lightning-deamon/#pkt-lighting","text":"","title":"PKT Lighting"},{"location":"dev/pkt-vpn/","text":"PKT VPN \u00b6 The PKT VPN is built to connect to, send and receive traffic through the cjdns network. PKT VPN enables users to get a base-line VPN for free, and pay for speed using microtransactions with PKT Cash. VPN server administrators will register as a public PKT VPN, accept client connections and route VPN traffic through the PKT network. Users can browse a list of VPNs, select the best VPN based on location and bandwidth load and surf the internet from behind a PKT VPN exit node. VPN creates utility for the PKT Network and offers financial incentive in addition to PKT Cash mining.","title":"PKT VPN"},{"location":"dev/pkt-vpn/#pkt-vpn","text":"The PKT VPN is built to connect to, send and receive traffic through the cjdns network. PKT VPN enables users to get a base-line VPN for free, and pay for speed using microtransactions with PKT Cash. VPN server administrators will register as a public PKT VPN, accept client connections and route VPN traffic through the PKT network. Users can browse a list of VPNs, select the best VPN based on location and bandwidth load and surf the internet from behind a PKT VPN exit node. VPN creates utility for the PKT Network and offers financial incentive in addition to PKT Cash mining.","title":"PKT VPN"},{"location":"dev/tokenstrike/","text":"TokenStrike \u00b6 TokenStrike is a unique protocol for the issuance and exchange of tokens and NFTs inside of the PKT ecosystem. TokenStrike is designed for micro-transactions, so tokens must be issued and exchanged with zero cost and without gas fees (gas fees for the exchange of ERC-20 tokens is unacceptable). TokenStrike tokens can be exchanged in a fully untrusted Lightning Network HTLC transaction. This is a scalable solution that fosters unlimited marketplace potential, including a decentralized bandwidth market, and sets PKT apart from every other layer 1 blockchain in the world. Edge Points will tokenize their bandwidth using TokenStrike and sell tokenized bandwidth to Cloud ISPs to broker connectivity to real customers. This collectively will interface with PKT VPN and evolve to facilitate software defined networking and content delivery across the internet.","title":"TokenStrike"},{"location":"dev/tokenstrike/#tokenstrike","text":"TokenStrike is a unique protocol for the issuance and exchange of tokens and NFTs inside of the PKT ecosystem. TokenStrike is designed for micro-transactions, so tokens must be issued and exchanged with zero cost and without gas fees (gas fees for the exchange of ERC-20 tokens is unacceptable). TokenStrike tokens can be exchanged in a fully untrusted Lightning Network HTLC transaction. This is a scalable solution that fosters unlimited marketplace potential, including a decentralized bandwidth market, and sets PKT apart from every other layer 1 blockchain in the world. Edge Points will tokenize their bandwidth using TokenStrike and sell tokenized bandwidth to Cloud ISPs to broker connectivity to real customers. This collectively will interface with PKT VPN and evolve to facilitate software defined networking and content delivery across the internet.","title":"TokenStrike"},{"location":"dev/wiif-sharing/","text":"PKT Documentation \u00b6 Documentation for the PKT project Wallet setup \u00b6 There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features. Mining \u00b6 PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page. Running a pktd instance \u00b6 You can setup a pktd instance using the instructions on pktd . Help and Community \u00b6 To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"PKT Documentation"},{"location":"dev/wiif-sharing/#pkt-documentation","text":"Documentation for the PKT project","title":"PKT Documentation"},{"location":"dev/wiif-sharing/#wallet-setup","text":"There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.","title":"Wallet setup"},{"location":"dev/wiif-sharing/#mining","text":"PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.","title":"Mining"},{"location":"dev/wiif-sharing/#running-a-pktd-instance","text":"You can setup a pktd instance using the instructions on pktd .","title":"Running a pktd instance"},{"location":"dev/wiif-sharing/#help-and-community","text":"To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"Help and Community"},{"location":"electrum/","text":"PKT electrum \u00b6 Important Electrum is a good lightweight wallet for making and receiving payments, but it lacks scalability and is not appropriate for mining , if you are interested in mining PKT, see pktwallet . First setup \u00b6 MacOS \u00b6 Download the file ending with .dmg from the latest PKT Electrum Releases Open Finder Double-click on your Downloads folder and find and click on electrum-pkt-4.0.2.dmg A new window will open with the PKT Electrum app, click and drag it into your Applications folder Press Command+Space to open your Spotlight Search and type PKT Electrum, when you see the PKT Electrum app, press the Enter key to open it. The first time PKT Electrum is opened, you will get a popup asking you if you want to open it, click open Continue with Setting up your wallet below Windows \u00b6 Download the file ending with .exe from the latest PKT Electrum Releases You will see a popup window telling you the application is not signed by a Microsoft Authorized Developer, always be sure you download PKT Electrum from the original website, do not run any app given to you in a chat, file-sharing or email attachment. Click \"More info\" to show additional options. Click the \"Run anyway\" button to launch PKT Electrum, you won't see this message again. Follow the steps in the setup process. Go to your desktop and you should see a new icon labeled PKT Electrum , click on it. Continue with Setting up your wallet below. Linux \u00b6 Download the file ending with .AppImage from the latest PKT Electrum Releases Click on the downloaded file and PKT Electrum should start up right away. Setting up your wallet \u00b6 Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. First you will be asked if you want to configure the server to connect to, unless you are an advanced user, just click \"next\" Next select your wallet, you give your wallet a name if you wish, or leave it as default_wallet , then click \"next\". You will be prompted to select which type of wallet you are creating, unless you are doing something fancy, you'll want to just click \"next\" Next you will have the option to create a wallet using a secret key from different sources, for the purposes of this tutorial just click next. Next you will be asked if you want to create a \"legacy\" style wallet, this is not needed so just click \"next\" Now PKT Electrum is going to create a seed , it takes the form of 12 words and from it your entire wallet is created If you have these 12 special words, you can recover your PKT even if your computer is lost or damaged If someone else gets access to these 12 words, they can steal all of your PKT It is recommended that you write this on paper and keep in a safe place. After you have written your seed, you will be asked to type it back in, the fast way to do this is by copy/paste to a text pad Now you'll be asked to write it back in, you can copy it from the text pad Make sure you really stored your seed on paper, we do not recommend storing it on any electronic device . Now you will need to pick a passphrase for your wallet This passphrase encrypts your wallet, protecting your PKT even if your computer is stolen Unlike your seed, the passphrase is useless without the wallet file We recommend using https://www.useapassphrase.com/ to pick a strong passphrase for you You can store your passphrase on your phone to have easy access Congratulations, you now have a PKT wallet! It will require about 5 minutes to synchronize with the PKT blockchain, but you can still use it while this is happening. Receiving PKT \u00b6 To receive coins, you need to create a new PKT address Click the \"Receive\" tab Type a description for the purpose of receiving the coins, this will appear in the notification when you get paid Set the expiration, if this is not an invoice , you can choose \"never\" After you click \"Request\", your wallet will create a new address and copy it to your clipboard so you can send it to the person paying you (or transfer money to your new wallet) When PKT gets sent to your new address, you will get a notification. It says \"unconfirmed\" because the transaction has not yet been included in the history of the blockchain. Once your transaction has been included in the blockchain, this icon will change to a clock and then after a few minutes, a checkmark Congratulations, you have received your first PKT Sending PKT \u00b6 To pay PKT to someone else, click on the Send tab and paste the address to be paid Type a description of the payment, this is just for you, it will not be sent to the person you are paying Enter the amount to be paid Click Pay You will be prompted to enter your wallet passphrase in order to decrypt the wallet for one brief moment to send the PKT Every transaction requires a fee for inclusion in the blockchain, this is a very small cost: 132 nPKT is one hundred and thirty two nano-PKT (that means billionths , i.e. 0.000000132 PKT) After you enter your passphrase and click \"send\", you will see a transaction ID , this set of numbers and letters uniquely identifies your transaction and can be used to view it in the block explorer. Just like when receiving, your transaction will appear first as \"unconfirmed\" and then later it will switch to a clock when it has been included in the blockchain. After waiting a few minutes, you will see a clock and then later a checkmark indicating your transaction has been included in the blockchain When people consider a transaction to be \"complete\" depends on the merchant, but in general it should be considered to be ok once it switches from \"unconfirmed\" to the clock icon. Congratulations, you've sent PKT! About Units \u00b6 Each PKT is made up of 1000 milli-PKT, denoted mPKT Each milli-PKT is sub-divided into 1000 micro-PKT, denoted uPKT Each micro-PKT is sub-divided into 1000 nano-PKT, denoted nPKT Advanced usage \u00b6 Recover from seed \u00b6 You can recover a PKT Electrum wallet from the seed you were given when you set it up. To do this follow the same instructions as for any other Electrum wallet: https://bitcoinelectrum.com/restoring-your-standard-wallet-from-seed/ Note that recovery from seed will not work to import addresses from other wallets such as a Gridnode. Multi-signature \u00b6 Setting up multi-signature in PKT Electrum is the same as with Bitcoin Electrum so you can follow this tutorial: https://electrum.readthedocs.io/en/latest/multisig.html How it works \u00b6 PKT Electrum is significantly similar to Bitcoin Electrum. It contacts one of a pool of community operated electrumx servers. Instead of syncing the entire chain it requests information about its addresses from the electrumx server and only downloads enough of the blockchain to verify that the electrumx server is not trying to trick it. In practice this means the wallet needs to check the proof of work and sync the block headers but not the rest of the blocks. Since PKT uses PacketCrypt proof of work, the work verification needs to be different. PacketCrypt headers are fairly large, between 4KB and 16KB, even at only 4KB each they make up 2.1GB of data per year. To maintain security without downloading an unacceptably large amount of data, PKT Electrum downloads only a small number of PacketCrypt proofs near the tip of the chain. If the wallet only downloaded (say) the most recent 100 PacketCrypt proofs, an attacking electrumx server would know exactly how many blocks it needed to mine in order to create a convincing fake chain, PKT Electrum makes this more difficult by using statistical verification. Statistical Verification \u00b6 PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as MIN(100%, K / distance_from_tip) where K is a constant which we set at 20 to make PKT Electrum verify around 200 blocks total. With K = 20 , the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance * block 25 has an 80% chance * block 50 has a 40% chance * block 80 has a 25% chance The distribution of likelyhood of verifying a block is shown by this chart: Running an ElectrumX server \u00b6 If you would like to participate in running your own ElectrumX server to help the PKT Electrum network, you can do so using a simple Docker command. Check out the Docker PKT Electrumx project for more information about how to run an instance.","title":"PKT electrum"},{"location":"electrum/#pkt-electrum","text":"Important Electrum is a good lightweight wallet for making and receiving payments, but it lacks scalability and is not appropriate for mining , if you are interested in mining PKT, see pktwallet .","title":"PKT electrum"},{"location":"electrum/#first-setup","text":"","title":"First setup"},{"location":"electrum/#macos","text":"Download the file ending with .dmg from the latest PKT Electrum Releases Open Finder Double-click on your Downloads folder and find and click on electrum-pkt-4.0.2.dmg A new window will open with the PKT Electrum app, click and drag it into your Applications folder Press Command+Space to open your Spotlight Search and type PKT Electrum, when you see the PKT Electrum app, press the Enter key to open it. The first time PKT Electrum is opened, you will get a popup asking you if you want to open it, click open Continue with Setting up your wallet below","title":"MacOS"},{"location":"electrum/#windows","text":"Download the file ending with .exe from the latest PKT Electrum Releases You will see a popup window telling you the application is not signed by a Microsoft Authorized Developer, always be sure you download PKT Electrum from the original website, do not run any app given to you in a chat, file-sharing or email attachment. Click \"More info\" to show additional options. Click the \"Run anyway\" button to launch PKT Electrum, you won't see this message again. Follow the steps in the setup process. Go to your desktop and you should see a new icon labeled PKT Electrum , click on it. Continue with Setting up your wallet below.","title":"Windows"},{"location":"electrum/#linux","text":"Download the file ending with .AppImage from the latest PKT Electrum Releases Click on the downloaded file and PKT Electrum should start up right away.","title":"Linux"},{"location":"electrum/#setting-up-your-wallet","text":"Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. First you will be asked if you want to configure the server to connect to, unless you are an advanced user, just click \"next\" Next select your wallet, you give your wallet a name if you wish, or leave it as default_wallet , then click \"next\". You will be prompted to select which type of wallet you are creating, unless you are doing something fancy, you'll want to just click \"next\" Next you will have the option to create a wallet using a secret key from different sources, for the purposes of this tutorial just click next. Next you will be asked if you want to create a \"legacy\" style wallet, this is not needed so just click \"next\" Now PKT Electrum is going to create a seed , it takes the form of 12 words and from it your entire wallet is created If you have these 12 special words, you can recover your PKT even if your computer is lost or damaged If someone else gets access to these 12 words, they can steal all of your PKT It is recommended that you write this on paper and keep in a safe place. After you have written your seed, you will be asked to type it back in, the fast way to do this is by copy/paste to a text pad Now you'll be asked to write it back in, you can copy it from the text pad Make sure you really stored your seed on paper, we do not recommend storing it on any electronic device . Now you will need to pick a passphrase for your wallet This passphrase encrypts your wallet, protecting your PKT even if your computer is stolen Unlike your seed, the passphrase is useless without the wallet file We recommend using https://www.useapassphrase.com/ to pick a strong passphrase for you You can store your passphrase on your phone to have easy access Congratulations, you now have a PKT wallet! It will require about 5 minutes to synchronize with the PKT blockchain, but you can still use it while this is happening.","title":"Setting up your wallet"},{"location":"electrum/#receiving-pkt","text":"To receive coins, you need to create a new PKT address Click the \"Receive\" tab Type a description for the purpose of receiving the coins, this will appear in the notification when you get paid Set the expiration, if this is not an invoice , you can choose \"never\" After you click \"Request\", your wallet will create a new address and copy it to your clipboard so you can send it to the person paying you (or transfer money to your new wallet) When PKT gets sent to your new address, you will get a notification. It says \"unconfirmed\" because the transaction has not yet been included in the history of the blockchain. Once your transaction has been included in the blockchain, this icon will change to a clock and then after a few minutes, a checkmark Congratulations, you have received your first PKT","title":"Receiving PKT"},{"location":"electrum/#sending-pkt","text":"To pay PKT to someone else, click on the Send tab and paste the address to be paid Type a description of the payment, this is just for you, it will not be sent to the person you are paying Enter the amount to be paid Click Pay You will be prompted to enter your wallet passphrase in order to decrypt the wallet for one brief moment to send the PKT Every transaction requires a fee for inclusion in the blockchain, this is a very small cost: 132 nPKT is one hundred and thirty two nano-PKT (that means billionths , i.e. 0.000000132 PKT) After you enter your passphrase and click \"send\", you will see a transaction ID , this set of numbers and letters uniquely identifies your transaction and can be used to view it in the block explorer. Just like when receiving, your transaction will appear first as \"unconfirmed\" and then later it will switch to a clock when it has been included in the blockchain. After waiting a few minutes, you will see a clock and then later a checkmark indicating your transaction has been included in the blockchain When people consider a transaction to be \"complete\" depends on the merchant, but in general it should be considered to be ok once it switches from \"unconfirmed\" to the clock icon. Congratulations, you've sent PKT!","title":"Sending PKT"},{"location":"electrum/#about-units","text":"Each PKT is made up of 1000 milli-PKT, denoted mPKT Each milli-PKT is sub-divided into 1000 micro-PKT, denoted uPKT Each micro-PKT is sub-divided into 1000 nano-PKT, denoted nPKT","title":"About Units"},{"location":"electrum/#advanced-usage","text":"","title":"Advanced usage"},{"location":"electrum/#recover-from-seed","text":"You can recover a PKT Electrum wallet from the seed you were given when you set it up. To do this follow the same instructions as for any other Electrum wallet: https://bitcoinelectrum.com/restoring-your-standard-wallet-from-seed/ Note that recovery from seed will not work to import addresses from other wallets such as a Gridnode.","title":"Recover from seed"},{"location":"electrum/#multi-signature","text":"Setting up multi-signature in PKT Electrum is the same as with Bitcoin Electrum so you can follow this tutorial: https://electrum.readthedocs.io/en/latest/multisig.html","title":"Multi-signature"},{"location":"electrum/#how-it-works","text":"PKT Electrum is significantly similar to Bitcoin Electrum. It contacts one of a pool of community operated electrumx servers. Instead of syncing the entire chain it requests information about its addresses from the electrumx server and only downloads enough of the blockchain to verify that the electrumx server is not trying to trick it. In practice this means the wallet needs to check the proof of work and sync the block headers but not the rest of the blocks. Since PKT uses PacketCrypt proof of work, the work verification needs to be different. PacketCrypt headers are fairly large, between 4KB and 16KB, even at only 4KB each they make up 2.1GB of data per year. To maintain security without downloading an unacceptably large amount of data, PKT Electrum downloads only a small number of PacketCrypt proofs near the tip of the chain. If the wallet only downloaded (say) the most recent 100 PacketCrypt proofs, an attacking electrumx server would know exactly how many blocks it needed to mine in order to create a convincing fake chain, PKT Electrum makes this more difficult by using statistical verification.","title":"How it works"},{"location":"electrum/#statistical-verification","text":"PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as MIN(100%, K / distance_from_tip) where K is a constant which we set at 20 to make PKT Electrum verify around 200 blocks total. With K = 20 , the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance * block 25 has an 80% chance * block 50 has a 40% chance * block 80 has a 25% chance The distribution of likelyhood of verifying a block is shown by this chart:","title":"Statistical Verification"},{"location":"electrum/#running-an-electrumx-server","text":"If you would like to participate in running your own ElectrumX server to help the PKT Electrum network, you can do so using a simple Docker command. Check out the Docker PKT Electrumx project for more information about how to run an instance.","title":"Running an ElectrumX server"},{"location":"infra/build-web/","text":"Build a Website in PKT Network \u00b6 How to set up your own self-hosted website on cjdns network \u00b6 The following setup has been tested on a Raspberry Pi 4. Go to https://yunohost.org/en/install Select Raspberry Pi Download the YunoHost image Go to https://www.raspberrypi.com/news/raspberry-pi-imager-imaging-utility/ Download Pi Imager Flash the YunoHost image to your SD card using the Pi Imager Then insert the SD card into your Raspberry Pi and boot it up. Access the YunoHost admin panel by going to https://yunohost.local Start the post-installation process In the Set main-domain select \"I want a domain for local usage / test only\" Complete the post-installation process Once the post-installation process is complete, go to the YunoHost admin panel and log in Select the \"Applications\" tab and click on \"Install\" Search for \"wordpress\" , select it. Scroll down and select \"administrator for this site\" Click on \"Install\" Upon completion go to \"Applications\" and click \"Install\" again Scroll down on \"Install custom app\" and paste the following link: https://github.com/dkoukoul/cjdns_ynh Click on \"Install\" On completion your cjdns ipv6 address will be displayed, copy it.","title":"Build a Website in PKT Network"},{"location":"infra/build-web/#build-a-website-in-pkt-network","text":"","title":"Build a Website in PKT Network"},{"location":"infra/build-web/#how-to-set-up-your-own-self-hosted-website-on-cjdns-network","text":"The following setup has been tested on a Raspberry Pi 4. Go to https://yunohost.org/en/install Select Raspberry Pi Download the YunoHost image Go to https://www.raspberrypi.com/news/raspberry-pi-imager-imaging-utility/ Download Pi Imager Flash the YunoHost image to your SD card using the Pi Imager Then insert the SD card into your Raspberry Pi and boot it up. Access the YunoHost admin panel by going to https://yunohost.local Start the post-installation process In the Set main-domain select \"I want a domain for local usage / test only\" Complete the post-installation process Once the post-installation process is complete, go to the YunoHost admin panel and log in Select the \"Applications\" tab and click on \"Install\" Search for \"wordpress\" , select it. Scroll down and select \"administrator for this site\" Click on \"Install\" Upon completion go to \"Applications\" and click \"Install\" again Scroll down on \"Install custom app\" and paste the following link: https://github.com/dkoukoul/cjdns_ynh Click on \"Install\" On completion your cjdns ipv6 address will be displayed, copy it.","title":"How to set up your own self-hosted website on cjdns network"},{"location":"infra/cjdns-node/","text":"Setup a Cjdns Node \u00b6 This guide will help you set up a cjdns node on a server. Requirements \u00b6 A server running debian based Linux (preferably Ubuntu 22.04) with docker installed Steps \u00b6 Create a data directory where the server configuration will be stored. mkdir vpn_data Get the latest docker image docker pull pkteer/pkt-server Configure the server by running the following command: docker run -it --rm -v $(pwd)/vpn_data:/data pkteer/pkt-server /configure.sh --novpn The configure process will create: * a cjdroute.conf at data/cjdroute.conf * PKT wallet at data/pktwallet/pkt/wallet.db * store the wallet's seed phrase at data/pktwallet/pkt/seed.txt configure.sh can take the following flags: * --no-vpn: To configure the server without setting up the VPN server * --with-pktd: To configure the server with a local PKT daemon * --pktd-passwd= : To set a password for the PKT daemon Alternatively you can edit the config.json file manually. NOTE Make sure to safely store your seed phrase in order to be able to import your wallet on your computer. And delete the seed.txt file after. Run the server by running the following commands: ./vpn_data/start.sh This will start the server and may expose the following ports: * cjdns port set from cjdroute.conf * cjdns admin rpc port set from cjdroute.conf (default 11234) * 8099 for anodevpn server * 5201 for iperf3 * 64764 for pktd","title":"Setup a Cjdns Node"},{"location":"infra/cjdns-node/#setup-a-cjdns-node","text":"This guide will help you set up a cjdns node on a server.","title":"Setup a Cjdns Node"},{"location":"infra/cjdns-node/#requirements","text":"A server running debian based Linux (preferably Ubuntu 22.04) with docker installed","title":"Requirements"},{"location":"infra/cjdns-node/#steps","text":"Create a data directory where the server configuration will be stored. mkdir vpn_data Get the latest docker image docker pull pkteer/pkt-server Configure the server by running the following command: docker run -it --rm -v $(pwd)/vpn_data:/data pkteer/pkt-server /configure.sh --novpn The configure process will create: * a cjdroute.conf at data/cjdroute.conf * PKT wallet at data/pktwallet/pkt/wallet.db * store the wallet's seed phrase at data/pktwallet/pkt/seed.txt configure.sh can take the following flags: * --no-vpn: To configure the server without setting up the VPN server * --with-pktd: To configure the server with a local PKT daemon * --pktd-passwd= : To set a password for the PKT daemon Alternatively you can edit the config.json file manually. NOTE Make sure to safely store your seed phrase in order to be able to import your wallet on your computer. And delete the seed.txt file after. Run the server by running the following commands: ./vpn_data/start.sh This will start the server and may expose the following ports: * cjdns port set from cjdroute.conf * cjdns admin rpc port set from cjdroute.conf (default 11234) * 8099 for anodevpn server * 5201 for iperf3 * 64764 for pktd","title":"Steps"},{"location":"infra/cjdns-web/","text":"Accessing your cjdns website \u00b6 For anyone to access your cjdns site they need to be on the cjdns network, either by running cjdns on their device or by connecting to one of the VPN exits that allow access to cjdns network. Go to a browser and paste the ipv6 address after http and inside square brackets like this: http://[your-cjdns_ipv6_address]/blog NOTE Make sure to remove any leading 0 from each section of the ipv6 address. for example if your cjdns ipv6 is ending with ... :0ad2 it should be ... :ad2 in the browser. Set up a domain for your site \u00b6 First you will need to own a domain name for example \"pkt.net\". Select one of the VPN exits that have a running SNI proxy and copy their IPv4 address. Go to your domain registrar and set up the following DNS records: A record: pkt.net -> [VPN server IPv4 address] AAAA record: h.pkt.net -> [your-cjdns_ipv6_address] For example If the VPN server's IPv4 address is 51.79.51.242 your domain is pkt.net and your cjdns IPv6 address where your site is running is vfc04:8212:c1fa:94ad:e554:7bac:1264:0ad2 your A record should be: * A record: `pkt.net -> 51.79.51.242` and your AAAA record should be: * AAAA record: `h.pkt.net -> fc04:8212:c1fa:94ad:e554:7bac:1264:ad2` Register domain with VPN server \u00b6 Request the VPN server operator to add your domain to their SNI proxy by editing the following command replacing it with your domain and cjdns ipv6 address and the VPN server's IPv4 address: curl -X POST --H \"Content-Type: application/json\" -d '{\"domain\":\"domain.com\",\"cjdnsIpv6\":\"your_cjdns_ipv6_address\"} http://[VPN server IPv4 address]:8099/api/0.4/server/domain/add/ Set up the domain in yunohost \u00b6 Log in into your yunohost admin panel. Go to \"Domains\" and click on \"Add domain\" Click on \" I want to add a domain I own, or a subdomain\" add your domain and click on \"Add\" Select your newly added domain. Go to tab \"Certificates\" Click on \"Ignore diagnosis checks\" and then you can request a certificate for your domain by going clicking \"Install Let's Encrypt certificate\".","title":"Accessing your cjdns website"},{"location":"infra/cjdns-web/#accessing-your-cjdns-website","text":"For anyone to access your cjdns site they need to be on the cjdns network, either by running cjdns on their device or by connecting to one of the VPN exits that allow access to cjdns network. Go to a browser and paste the ipv6 address after http and inside square brackets like this: http://[your-cjdns_ipv6_address]/blog NOTE Make sure to remove any leading 0 from each section of the ipv6 address. for example if your cjdns ipv6 is ending with ... :0ad2 it should be ... :ad2 in the browser.","title":"Accessing your cjdns website"},{"location":"infra/cjdns-web/#set-up-a-domain-for-your-site","text":"First you will need to own a domain name for example \"pkt.net\". Select one of the VPN exits that have a running SNI proxy and copy their IPv4 address. Go to your domain registrar and set up the following DNS records: A record: pkt.net -> [VPN server IPv4 address] AAAA record: h.pkt.net -> [your-cjdns_ipv6_address] For example If the VPN server's IPv4 address is 51.79.51.242 your domain is pkt.net and your cjdns IPv6 address where your site is running is vfc04:8212:c1fa:94ad:e554:7bac:1264:0ad2 your A record should be: * A record: `pkt.net -> 51.79.51.242` and your AAAA record should be: * AAAA record: `h.pkt.net -> fc04:8212:c1fa:94ad:e554:7bac:1264:ad2`","title":"Set up a domain for your site"},{"location":"infra/cjdns-web/#register-domain-with-vpn-server","text":"Request the VPN server operator to add your domain to their SNI proxy by editing the following command replacing it with your domain and cjdns ipv6 address and the VPN server's IPv4 address: curl -X POST --H \"Content-Type: application/json\" -d '{\"domain\":\"domain.com\",\"cjdnsIpv6\":\"your_cjdns_ipv6_address\"} http://[VPN server IPv4 address]:8099/api/0.4/server/domain/add/","title":"Register domain with VPN server"},{"location":"infra/cjdns-web/#set-up-the-domain-in-yunohost","text":"Log in into your yunohost admin panel. Go to \"Domains\" and click on \"Add domain\" Click on \" I want to add a domain I own, or a subdomain\" add your domain and click on \"Add\" Select your newly added domain. Go to tab \"Certificates\" Click on \"Ignore diagnosis checks\" and then you can request a certificate for your domain by going clicking \"Install Let's Encrypt certificate\".","title":"Set up the domain in yunohost"},{"location":"infra/domain-node/","text":"Setup a Domain Node \u00b6 When you own a PKT vanity domain, it enables sovereignty for PKT websites. More information on how to set up a Domain Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Domain Node"},{"location":"infra/domain-node/#setup-a-domain-node","text":"When you own a PKT vanity domain, it enables sovereignty for PKT websites. More information on how to set up a Domain Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Domain Node"},{"location":"infra/exit-node/","text":"Setup a VPN Exit Node \u00b6","title":"Setup a VPN Exit Node"},{"location":"infra/exit-node/#setup-a-vpn-exit-node","text":"","title":"Setup a VPN Exit Node"},{"location":"infra/infrastructure/","text":"Infrastructure \u00b6 Introduction \u00b6 This strategic technology upgrade of PKT on Base coincides with the launch of a novel Stake-to-Earn protocol. This offers participants significant daily PKT rewards for staking PKT. Coming October 30, 2024 is Infrastructure Day, when users will be required to pair each stake with an infrastructure node to continue earning staking rewards. There are 5 different node types, ranging in operational complexity, with different infrastructure requirements and yields. Instead of mining, PKT holders can stake their tokens and pair with infrastructure nodes to earn yields. To incentivize operators to make long term commitments to run infrastructure for the network, there are yield bonus multipliers based on staking duration. Infrastructure Yields \u00b6 Starting on Infrastructure Day, October 30, 2024, each stake will be required to pair with at least one PKT Network infrastructure node in order to continue earning yields. Operators will be able to assign yield credits to each PKT infrastructure node. Instead of all yield credits competing for one bucket of yields, there will be one bucket for each of the 5 types of infrastructure in the PKT network. One lockup can assign yield credits to multiple units of infrastructure, but one unit of infrastructure can only be assigned yield credits from one lockup. Cjdns Nodes \u00b6 40% of all yields will go to cjdns nodes which have an open port and public peering credentials, so anyone can connect. Operators can assign up to $5,000 worth of yield credits per cjdns node, with each yield credit being valued at 1 PKT Yields will still be allocated based on yield credits, so if the PKT price goes up, older cjdns nodes will be \u201cgrandfathered\u201d in and be able to hold more yield credits than newer ones, and thus yield better. If the PKT price goes down, node operators will be able to increase their assigned yield credits if they so choose. Every cjdns node will be tested each week, and if the node is found to be in a non-functional state, the node will lose yields for that week. If a node fails 4 weeks in a row, it will be removed from the roster and when it comes back online it will be capped at $5,000 worth of yield credits based on the value at the time it comes back. In order to incentivize geographical distribution of nodes, cjdns nodes will get a bonus if they are on IP address blocks, or ISPs that have few other cjdns nodes, as follows: Effective yield credits are equal to real assigned yield credits TIMES: One over (\u201cdivided by\u201d) the number of cjdns nodes running on your IPv4 address, plus Note Running multiple cjdns nodes on the same device is not efficient . One over the number of cjdns nodes running in your IPv4 address block, plus Note What is an IP address block? An address block is a group of IP addresses which all belong to one ISP, and which internet core routers treat as a single unit, you can see the public address block of your public IP address by going here: https://bgp.he.net/ One over the number of cjdns nodes running in your ISP, plus Note For our purposes, your \u201cISP\u201d is the AS Number which controls your public IP address. To incentivise high reliability cjdns nodes, your effective yield credits will be multiplied by the square of your node\u2019s uptime. So if your cjdns node is only online 50% of the time, you will only get 25% of the yields that you would with it being online 100% of the time. At 80% uptime you get 64% yields, at 90% uptime you get 81% yields. In addition, you will get 5 more effective yield credits for every 100 (real) yield credits which are assigned to cjdns nodes as a result of you introducing people to the project with your affiliate code. These are not affected by your node\u2019s uptime, it just has to be online enough to pass the weekly test. These rules are complex, but there is a simulator and you can type in any IP address and see the effective yield credits and simulated yield for a cjdns node running on that address.","title":"Infrastructure"},{"location":"infra/infrastructure/#infrastructure","text":"","title":"Infrastructure"},{"location":"infra/infrastructure/#introduction","text":"This strategic technology upgrade of PKT on Base coincides with the launch of a novel Stake-to-Earn protocol. This offers participants significant daily PKT rewards for staking PKT. Coming October 30, 2024 is Infrastructure Day, when users will be required to pair each stake with an infrastructure node to continue earning staking rewards. There are 5 different node types, ranging in operational complexity, with different infrastructure requirements and yields. Instead of mining, PKT holders can stake their tokens and pair with infrastructure nodes to earn yields. To incentivize operators to make long term commitments to run infrastructure for the network, there are yield bonus multipliers based on staking duration.","title":"Introduction"},{"location":"infra/infrastructure/#infrastructure-yields","text":"Starting on Infrastructure Day, October 30, 2024, each stake will be required to pair with at least one PKT Network infrastructure node in order to continue earning yields. Operators will be able to assign yield credits to each PKT infrastructure node. Instead of all yield credits competing for one bucket of yields, there will be one bucket for each of the 5 types of infrastructure in the PKT network. One lockup can assign yield credits to multiple units of infrastructure, but one unit of infrastructure can only be assigned yield credits from one lockup.","title":"Infrastructure Yields"},{"location":"infra/infrastructure/#cjdns-nodes","text":"40% of all yields will go to cjdns nodes which have an open port and public peering credentials, so anyone can connect. Operators can assign up to $5,000 worth of yield credits per cjdns node, with each yield credit being valued at 1 PKT Yields will still be allocated based on yield credits, so if the PKT price goes up, older cjdns nodes will be \u201cgrandfathered\u201d in and be able to hold more yield credits than newer ones, and thus yield better. If the PKT price goes down, node operators will be able to increase their assigned yield credits if they so choose. Every cjdns node will be tested each week, and if the node is found to be in a non-functional state, the node will lose yields for that week. If a node fails 4 weeks in a row, it will be removed from the roster and when it comes back online it will be capped at $5,000 worth of yield credits based on the value at the time it comes back. In order to incentivize geographical distribution of nodes, cjdns nodes will get a bonus if they are on IP address blocks, or ISPs that have few other cjdns nodes, as follows: Effective yield credits are equal to real assigned yield credits TIMES: One over (\u201cdivided by\u201d) the number of cjdns nodes running on your IPv4 address, plus Note Running multiple cjdns nodes on the same device is not efficient . One over the number of cjdns nodes running in your IPv4 address block, plus Note What is an IP address block? An address block is a group of IP addresses which all belong to one ISP, and which internet core routers treat as a single unit, you can see the public address block of your public IP address by going here: https://bgp.he.net/ One over the number of cjdns nodes running in your ISP, plus Note For our purposes, your \u201cISP\u201d is the AS Number which controls your public IP address. To incentivise high reliability cjdns nodes, your effective yield credits will be multiplied by the square of your node\u2019s uptime. So if your cjdns node is only online 50% of the time, you will only get 25% of the yields that you would with it being online 100% of the time. At 80% uptime you get 64% yields, at 90% uptime you get 81% yields. In addition, you will get 5 more effective yield credits for every 100 (real) yield credits which are assigned to cjdns nodes as a result of you introducing people to the project with your affiliate code. These are not affected by your node\u2019s uptime, it just has to be online enough to pass the weekly test. These rules are complex, but there is a simulator and you can type in any IP address and see the effective yield credits and simulated yield for a cjdns node running on that address.","title":"Cjdns Nodes"},{"location":"infra/nameserver/","text":"Setup a Nameserver Node \u00b6 PKT is developing a DNS (Domain Name System) that leverages the PKT Network to map domain names to cjdns IP addresses. More information on how to set up a Nameserver Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Nameserver Node"},{"location":"infra/nameserver/#setup-a-nameserver-node","text":"PKT is developing a DNS (Domain Name System) that leverages the PKT Network to map domain names to cjdns IP addresses. More information on how to set up a Nameserver Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Nameserver Node"},{"location":"infra/route-server/","text":"Setup a Route Server Node \u00b6 The route server is used to route traffic on the PKT network. More information on how to set up a Route Server Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Route Server Node"},{"location":"infra/route-server/#setup-a-route-server-node","text":"The route server is used to route traffic on the PKT network. More information on how to set up a Route Server Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Route Server Node"},{"location":"infra/vpn-exit/","text":"VPN Exit \u00b6 30% of all yields will go to VPN exits which provide internet access to people in the network. You will be able to assign up to $5,000 worth of yield credits per VPN exit. Allocation based on yield credits, grandfather rule, and weekly testing is the same as cjdns nodes. Geographical distribution bonuses and uptime multiplier are exactly the same as for a cjdns node In case of doubt, a cjdns node and a VPN exit are considered distinct entities, even if running on the same IP address, so configuring a device as both a cjdns node and a VPN exit will allow you to assign and yield off of $10,000 worth of yield credits. VPN exits have no affiliate code credits. Domains Nodes \u00b6 15% of all yields will go to the holders of PKT domains. A PKT domain must be pkt. , for example pkt.com or pkt.us There is no limit on how many yield credits can be assigned to one domain, but there is a severe constraint on pkt domains because there is only one possible pkt domain per top level domain . Every week, domains are tested to verify that they are resolving to registered and functioning Nameservers. If a domain fails the test then it will not yield until the following week. If a domain has a DNSSEC DS record (required if the domain owner also operates a Nameserver) then the signed updated zone file must be available at all times. In order to encourage jurisdictional diversity of domains, domains will get a yield bonus if they are registered with different registrars, different TLD operators, and in different countries. Your effective yield credits equal your real assigned yield credits TIMES: One, plus One over the number of pkt domains registered with your REGISTRAR (registrars are companies such as Godaddy and Namecheap), plus One over the number of pkt domains registered with the same DOMAIN AUTHORITY. For example, .com and .net are both operated by VeriSign Global Registry Services, plus One over the number of pkt domains with the same domicile country Note If the registrar and the domain authority are in the same country, this is the domicile country. If they are different, then the domicile county is the WORSE yielding out of the two. Nameserver \u00b6 10% of all yields go to operators of Nameservers. There is no limit to the number of yield credits that can be assigned to one nameserver, but you must have a pkt domain in order to run one. Every nameserver must serve the entire PKT decentralized zone for every registered domain, this means if FAST.PKT has been claimed on the PKT blockchain, and community members have registered PKT.US and PKT.COM, a nameserver must correctly resolve FAST.PKT.US and FAST.PKT.COM to the entry made by the owner of FAST.PKT. Every nameserver must publish, no less than hourly, a DNSSEC signed zone file for their pkt domain such that other nameservers can correctly serve it as DNSSEC. Every nameserver must pull from all other nameservers the DNSSEC signed zone files for their relevant pkt domains and serve them as well. Geographical distribution bonuses are exactly the same as for a cjdns node, however there are no uptime multipliers, ANY observed downtime for a nameserver will cause loss of all yields for that week. Route Servers \u00b6 5% of all yields go to the operators of Route Servers There is no limit to the number of yield credits that can be assigned to one route server, but you must have a nameserver (and thus a pkt domain) in order to run one. Every route server must be correctly and continuously operational and up to date. Any significant downtime or misbehavior of a route server will result in loss of yields for that week.","title":"VPN Exit"},{"location":"infra/vpn-exit/#vpn-exit","text":"30% of all yields will go to VPN exits which provide internet access to people in the network. You will be able to assign up to $5,000 worth of yield credits per VPN exit. Allocation based on yield credits, grandfather rule, and weekly testing is the same as cjdns nodes. Geographical distribution bonuses and uptime multiplier are exactly the same as for a cjdns node In case of doubt, a cjdns node and a VPN exit are considered distinct entities, even if running on the same IP address, so configuring a device as both a cjdns node and a VPN exit will allow you to assign and yield off of $10,000 worth of yield credits. VPN exits have no affiliate code credits.","title":"VPN Exit"},{"location":"infra/vpn-exit/#domains-nodes","text":"15% of all yields will go to the holders of PKT domains. A PKT domain must be pkt. , for example pkt.com or pkt.us There is no limit on how many yield credits can be assigned to one domain, but there is a severe constraint on pkt domains because there is only one possible pkt domain per top level domain . Every week, domains are tested to verify that they are resolving to registered and functioning Nameservers. If a domain fails the test then it will not yield until the following week. If a domain has a DNSSEC DS record (required if the domain owner also operates a Nameserver) then the signed updated zone file must be available at all times. In order to encourage jurisdictional diversity of domains, domains will get a yield bonus if they are registered with different registrars, different TLD operators, and in different countries. Your effective yield credits equal your real assigned yield credits TIMES: One, plus One over the number of pkt domains registered with your REGISTRAR (registrars are companies such as Godaddy and Namecheap), plus One over the number of pkt domains registered with the same DOMAIN AUTHORITY. For example, .com and .net are both operated by VeriSign Global Registry Services, plus One over the number of pkt domains with the same domicile country Note If the registrar and the domain authority are in the same country, this is the domicile country. If they are different, then the domicile county is the WORSE yielding out of the two.","title":"Domains Nodes"},{"location":"infra/vpn-exit/#nameserver","text":"10% of all yields go to operators of Nameservers. There is no limit to the number of yield credits that can be assigned to one nameserver, but you must have a pkt domain in order to run one. Every nameserver must serve the entire PKT decentralized zone for every registered domain, this means if FAST.PKT has been claimed on the PKT blockchain, and community members have registered PKT.US and PKT.COM, a nameserver must correctly resolve FAST.PKT.US and FAST.PKT.COM to the entry made by the owner of FAST.PKT. Every nameserver must publish, no less than hourly, a DNSSEC signed zone file for their pkt domain such that other nameservers can correctly serve it as DNSSEC. Every nameserver must pull from all other nameservers the DNSSEC signed zone files for their relevant pkt domains and serve them as well. Geographical distribution bonuses are exactly the same as for a cjdns node, however there are no uptime multipliers, ANY observed downtime for a nameserver will cause loss of all yields for that week.","title":"Nameserver"},{"location":"infra/vpn-exit/#route-servers","text":"5% of all yields go to the operators of Route Servers There is no limit to the number of yield credits that can be assigned to one route server, but you must have a nameserver (and thus a pkt domain) in order to run one. Every route server must be correctly and continuously operational and up to date. Any significant downtime or misbehavior of a route server will result in loss of yields for that week.","title":"Route Servers"},{"location":"infra/vpn/","text":"PKT VPN \u00b6 PKT is a VPN powered network, with privacy and security built-in. There is continuous development of low cost VPN services and hosting. PKT is a VPN-powered network with privacy and security as a cornerstone of its infrastructure. This network is designed with built-in features that ensure all data transmitted is secure and private, leveraging the robust capabilities of VPN technology. The community is continuously developing VPN solutions, aiming to democratize access to secure internet connections. These initiatives are crucial in enabling reliable, low-cost VPN access.","title":"PKT VPN"},{"location":"infra/vpn/#pkt-vpn","text":"PKT is a VPN powered network, with privacy and security built-in. There is continuous development of low cost VPN services and hosting. PKT is a VPN-powered network with privacy and security as a cornerstone of its infrastructure. This network is designed with built-in features that ensure all data transmitted is secure and private, leveraging the robust capabilities of VPN technology. The community is continuously developing VPN solutions, aiming to democratize access to secure internet connections. These initiatives are crucial in enabling reliable, low-cost VPN access.","title":"PKT VPN"},{"location":"learn/network-steward/","text":"What is the Network Steward? \u00b6 Introducing the Network Steward \u00b6 The Network Steward is a mechanism built into the PKT blockchain to ensure there is continuous funding to build out the project roadmap. Since PKT is completely decentralized, with no central company, foundation or investors behind the project, the Network Steward is able to provide perpetual funding for development. As part of the consensus rules of the PKT blockchain, the publicly visible Network Steward wallet address receives 20% of every newly mined block. 100% of the funds are mandated to be paid out in the form of grants towards funding the Network Steward\u2019s areas of interest, including open-source technology development of the PKT Network. Unlike a pre-mine or founder's fee, the recipient of the Network Steward payout can be changed by a PoS vote. All coins that are not allocated within 129,600 blocks (~3 months) are automatically burned. More than 13% of the mined coins have been burned through 2022. You can check out the status of the burned coins and PoS vote to re-elect the Network Steward page on the block explorer page [here]. https://explorer.pkt.cash/address pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2 Who is the Network Steward? \u00b6 This Network Steward address is a multi-signature group that requires 3 out of 5 signatures in order to make a payment. The current Network Stewards* are: Cjd \u2014 cjdns original author Arceliar \u2014 Yggdrasil original author Benhylau \u2014 Contributor at Toronto Mesh NeilAlexander \u2014 Yggdrasil release manager Backupbrain \u2014 Creator of NetNinja VPN device All of the participants have agreed not to enter into any relationships which would affect their ability to act impartially on behalf of the PKT project. How does the Network Steward Operate? \u00b6 The persons in custody of the Network Steward wallet periodically meet to award grants in accordance with a strict criteria and mandate. The current mandate is that funds are to be used for: Financing the development of open source software, technology documentation and education resources for the PKT Network and community. Lobbying for an improved regulator environment for small network operators and more generally, to promote internet freedom, privacy, and decentralized internet access. Purchasing property such as proprietary software or radio frequency spectrum rights in order to put these things in the commons. It is the belief of the PKT blockchain founding developers that any unaccountable authority, no matter how benevolent, will eventually fall victim to corruption, inefficiency or simple failure to innovate. Because of this, the PKT blockchain has an impeachment solution whereby every holder of PKT is able to cast a vote to impeach the Network Steward so a new Network Steward can take its place. Impeachment is not an insignificant event. For it to occur, it requires more than a 50% of the total PKT ever mined to \u201cVoteFor\u201d impeachment. If impeachment does occur, what follows is an automatic vote count and a change to the Network Steward address. How are Grants Awarded? \u00b6 Grants are awarded based on a funding criteria that is outlined on the Network Steward Github [here]. You start by socializing what you want to do with the community (try PKT.Chat, Discord or Telegram). When you have rough consensus, you move that conversation to a formal proposal. There are currently two ways to propose a project to the PKT Network Steward. If your project is large and has the benefit of accountants to be able to verify that the money has been spent appropriately, you can make a proposal directly to the Network Steward through its github [here]. Click [here] to submit a proposal Click [here] to download the submission template The Network Steward opens calls with a specified budget from time to time. Anyone can apply during these open calls. The Network Steward meets several times per year to review submitted projects. The minutes of these meetings are published in the github repository, along with the ongoing project statuses. Every transaction made by the Network Steward can be seen in the block explorer and is referred to in the Network Steward's github repository explaining the project that was funded. To make a proposal, you must create a pull request to the github repository and name it according to the naming convention defined in the repository readme. This adds a new project markdown file, as per the project template. Getting a proposal accepted is much like getting a pull request merged into a project. If you want to propose a smaller project and have the accounting and official reporting managed for you, you can propose to the User Operated Internet fund [here], which is funded by the Network Steward and administered by NLnet. NLnet is a well respected public benefit organization that is experienced at managing technology development projects. Network Steward Voting \u00b6 How voting works \u00b6 A vote consists of one two parts, VoteFor and VoteAgainst. VoteAgainst is a vote for impeachment, while VoteFor is a vote for who should become network steward in the event of an impeachment. A network steward is represented as a transaction output script rather than a script encoded key. An easy way to get the script for a given address is to pay some money to it and then explore the raw transaction and copy the output. Exploring a coinbase transaction we can see the output being paid to the network steward https://explorer.pkt.cash/address/ and the script for this output is 0020d5c1005c0d4012d3ae2672319e7f9eb15a57516aeefabbbc062265f67e308f2 If we double-check by querying pktd to find out what is the network steward, we will see that it shows the script that was paid to. So if we wanted, for instance, to change the network steward to https://explorer.pkt.cash/address/pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX, we would want to vote for the corresponding script 76a9147d9df4279212fd7def4c47abf2d5f3a6c6eaf4ae88ac and of course we probably want to vote against the current network steward as well. How to vote \u00b6 Voting is done by configuring your wallet to vote, whenever you spend money, your wallet will include a vote in every future payment of PKT which is made. If you want to speed up the voting process, you can configure your wallet to vote and then transfer all of your PKT to another wallet, in order to be sure it will all be voting. To configure your wallet to vote for https://explorer.pkt.cash/address/pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX and against https://explorer.pkt.cash/address, you would use the following workflow:","title":"What is the Network Steward?"},{"location":"learn/network-steward/#what-is-the-network-steward","text":"","title":"What is the Network Steward?"},{"location":"learn/network-steward/#introducing-the-network-steward","text":"The Network Steward is a mechanism built into the PKT blockchain to ensure there is continuous funding to build out the project roadmap. Since PKT is completely decentralized, with no central company, foundation or investors behind the project, the Network Steward is able to provide perpetual funding for development. As part of the consensus rules of the PKT blockchain, the publicly visible Network Steward wallet address receives 20% of every newly mined block. 100% of the funds are mandated to be paid out in the form of grants towards funding the Network Steward\u2019s areas of interest, including open-source technology development of the PKT Network. Unlike a pre-mine or founder's fee, the recipient of the Network Steward payout can be changed by a PoS vote. All coins that are not allocated within 129,600 blocks (~3 months) are automatically burned. More than 13% of the mined coins have been burned through 2022. You can check out the status of the burned coins and PoS vote to re-elect the Network Steward page on the block explorer page [here]. https://explorer.pkt.cash/address pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2","title":"Introducing the Network Steward"},{"location":"learn/network-steward/#who-is-the-network-steward","text":"This Network Steward address is a multi-signature group that requires 3 out of 5 signatures in order to make a payment. The current Network Stewards* are: Cjd \u2014 cjdns original author Arceliar \u2014 Yggdrasil original author Benhylau \u2014 Contributor at Toronto Mesh NeilAlexander \u2014 Yggdrasil release manager Backupbrain \u2014 Creator of NetNinja VPN device All of the participants have agreed not to enter into any relationships which would affect their ability to act impartially on behalf of the PKT project.","title":"Who is the Network Steward?"},{"location":"learn/network-steward/#how-does-the-network-steward-operate","text":"The persons in custody of the Network Steward wallet periodically meet to award grants in accordance with a strict criteria and mandate. The current mandate is that funds are to be used for: Financing the development of open source software, technology documentation and education resources for the PKT Network and community. Lobbying for an improved regulator environment for small network operators and more generally, to promote internet freedom, privacy, and decentralized internet access. Purchasing property such as proprietary software or radio frequency spectrum rights in order to put these things in the commons. It is the belief of the PKT blockchain founding developers that any unaccountable authority, no matter how benevolent, will eventually fall victim to corruption, inefficiency or simple failure to innovate. Because of this, the PKT blockchain has an impeachment solution whereby every holder of PKT is able to cast a vote to impeach the Network Steward so a new Network Steward can take its place. Impeachment is not an insignificant event. For it to occur, it requires more than a 50% of the total PKT ever mined to \u201cVoteFor\u201d impeachment. If impeachment does occur, what follows is an automatic vote count and a change to the Network Steward address.","title":"How does the Network Steward Operate?"},{"location":"learn/network-steward/#how-are-grants-awarded","text":"Grants are awarded based on a funding criteria that is outlined on the Network Steward Github [here]. You start by socializing what you want to do with the community (try PKT.Chat, Discord or Telegram). When you have rough consensus, you move that conversation to a formal proposal. There are currently two ways to propose a project to the PKT Network Steward. If your project is large and has the benefit of accountants to be able to verify that the money has been spent appropriately, you can make a proposal directly to the Network Steward through its github [here]. Click [here] to submit a proposal Click [here] to download the submission template The Network Steward opens calls with a specified budget from time to time. Anyone can apply during these open calls. The Network Steward meets several times per year to review submitted projects. The minutes of these meetings are published in the github repository, along with the ongoing project statuses. Every transaction made by the Network Steward can be seen in the block explorer and is referred to in the Network Steward's github repository explaining the project that was funded. To make a proposal, you must create a pull request to the github repository and name it according to the naming convention defined in the repository readme. This adds a new project markdown file, as per the project template. Getting a proposal accepted is much like getting a pull request merged into a project. If you want to propose a smaller project and have the accounting and official reporting managed for you, you can propose to the User Operated Internet fund [here], which is funded by the Network Steward and administered by NLnet. NLnet is a well respected public benefit organization that is experienced at managing technology development projects.","title":"How are Grants Awarded?"},{"location":"learn/network-steward/#network-steward-voting","text":"","title":"Network Steward Voting"},{"location":"learn/network-steward/#how-voting-works","text":"A vote consists of one two parts, VoteFor and VoteAgainst. VoteAgainst is a vote for impeachment, while VoteFor is a vote for who should become network steward in the event of an impeachment. A network steward is represented as a transaction output script rather than a script encoded key. An easy way to get the script for a given address is to pay some money to it and then explore the raw transaction and copy the output. Exploring a coinbase transaction we can see the output being paid to the network steward https://explorer.pkt.cash/address/ and the script for this output is 0020d5c1005c0d4012d3ae2672319e7f9eb15a57516aeefabbbc062265f67e308f2 If we double-check by querying pktd to find out what is the network steward, we will see that it shows the script that was paid to. So if we wanted, for instance, to change the network steward to https://explorer.pkt.cash/address/pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX, we would want to vote for the corresponding script 76a9147d9df4279212fd7def4c47abf2d5f3a6c6eaf4ae88ac and of course we probably want to vote against the current network steward as well.","title":"How voting works"},{"location":"learn/network-steward/#how-to-vote","text":"Voting is done by configuring your wallet to vote, whenever you spend money, your wallet will include a vote in every future payment of PKT which is made. If you want to speed up the voting process, you can configure your wallet to vote and then transfer all of your PKT to another wallet, in order to be sure it will all be voting. To configure your wallet to vote for https://explorer.pkt.cash/address/pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX and against https://explorer.pkt.cash/address, you would use the following workflow:","title":"How to vote"},{"location":"learn/packetcrypt/","text":"What is PacketCrypt? \u00b6 PacketCrypt is the world\u2019s first bandwidth-hard proof of work. It is the software that miners install to mine PKT Cash and which constructs the unique foundation of the PKT Blockchain. The PacketCrypt protocol is designed to reward miners in PKT Cash for transmitting data around the world. This incentivizes and requires high CPU encryption plus maximum bandwidth throughput to optimize yields. Miners are required to become hyper aware of and motivated to increase their bandwidth upload and download throughput to efficiently communicate with nodes across the network. PKT mining favors increased bandwidth over CPU power, rewarding people that connect high speed bandwidth infrastructure to the network. PacketCrypt utilizes 2 distinct stages: announcement mining and block mining. Any internet connected device can become an announcement miner and mine PKT Cash by installing and running the PacketCrypt software. Announcement miners running PacketCrypt upload small, difficult to compress (1KB) messages called announcements to block miners. Block miners, otherwise known as PKT mining pools, must maximize the number of announcements they collect for each block. To accomplish this, PKT mining pools can get a discount on the difficulty of the work they must do by coordinating with community announcement miners and fairly paying announcement miners in PKT Cash to continuously supply them with fresh announcements. Optimal mining results are achieved through this cooperation between miners. The result is a fully decentralized network topography that is powered by the people. These various announcement miners and PKT mining pools represent the core infrastructure of the PKT Network, along with its integrated VPN and wifi sharing capabilities. To learn more about PacketCrypt check out the introduction to PKT Mining [here].","title":"What is PacketCrypt?"},{"location":"learn/packetcrypt/#what-is-packetcrypt","text":"PacketCrypt is the world\u2019s first bandwidth-hard proof of work. It is the software that miners install to mine PKT Cash and which constructs the unique foundation of the PKT Blockchain. The PacketCrypt protocol is designed to reward miners in PKT Cash for transmitting data around the world. This incentivizes and requires high CPU encryption plus maximum bandwidth throughput to optimize yields. Miners are required to become hyper aware of and motivated to increase their bandwidth upload and download throughput to efficiently communicate with nodes across the network. PKT mining favors increased bandwidth over CPU power, rewarding people that connect high speed bandwidth infrastructure to the network. PacketCrypt utilizes 2 distinct stages: announcement mining and block mining. Any internet connected device can become an announcement miner and mine PKT Cash by installing and running the PacketCrypt software. Announcement miners running PacketCrypt upload small, difficult to compress (1KB) messages called announcements to block miners. Block miners, otherwise known as PKT mining pools, must maximize the number of announcements they collect for each block. To accomplish this, PKT mining pools can get a discount on the difficulty of the work they must do by coordinating with community announcement miners and fairly paying announcement miners in PKT Cash to continuously supply them with fresh announcements. Optimal mining results are achieved through this cooperation between miners. The result is a fully decentralized network topography that is powered by the people. These various announcement miners and PKT mining pools represent the core infrastructure of the PKT Network, along with its integrated VPN and wifi sharing capabilities. To learn more about PacketCrypt check out the introduction to PKT Mining [here].","title":"What is PacketCrypt?"},{"location":"learn/pkt-cash/","text":"What is PKT Cash? \u00b6 PKT is a native coin that is mined by PKT mining pools and paid to announcement miners when running the PacketCrypt mining algorithm. There is no centralized issuer of PKT Cash, no pre-mine, and no centralized treasury. PKT Cash\u2019s minimum value is the cost to mine the coin, which includes processing power, plus bandwidth. PKT Cash is a Bitcoin fork and true proof of work, so it is a coin, not a token. PKT blocktimes are every 60 seconds, which makes PKT 10x faster than Bitcoin. Currently PKT can handle approximately 70-100 transactions per second. However, PKT Cash is designed for microtransactions with near-zero gas fees. In 2023, PKT Cash will become Lightning Network enabled using the PKT Lightning Daemon (PLD). PLD will enable PKT to process near-infinite transactions per second. Since PKT Cash is generated from a fully decentralized fork of Bitcoin, it is considered to be a commodity, similar to Bitcoin. Additionally, since PKT is a fully decentralized clone of the Bitcoin codebase, the legal and regulatory framing is probably similar.","title":"What is PKT Cash?"},{"location":"learn/pkt-cash/#what-is-pkt-cash","text":"PKT is a native coin that is mined by PKT mining pools and paid to announcement miners when running the PacketCrypt mining algorithm. There is no centralized issuer of PKT Cash, no pre-mine, and no centralized treasury. PKT Cash\u2019s minimum value is the cost to mine the coin, which includes processing power, plus bandwidth. PKT Cash is a Bitcoin fork and true proof of work, so it is a coin, not a token. PKT blocktimes are every 60 seconds, which makes PKT 10x faster than Bitcoin. Currently PKT can handle approximately 70-100 transactions per second. However, PKT Cash is designed for microtransactions with near-zero gas fees. In 2023, PKT Cash will become Lightning Network enabled using the PKT Lightning Daemon (PLD). PLD will enable PKT to process near-infinite transactions per second. Since PKT Cash is generated from a fully decentralized fork of Bitcoin, it is considered to be a commodity, similar to Bitcoin. Additionally, since PKT is a fully decentralized clone of the Bitcoin codebase, the legal and regulatory framing is probably similar.","title":"What is PKT Cash?"},{"location":"learn/pkt-network/","text":"PKT Documentation \u00b6 Documentation for the PKT project Wallet setup \u00b6 There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features. Mining \u00b6 PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page. Running a pktd instance \u00b6 You can setup a pktd instance using the instructions on pktd . Help and Community \u00b6 To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"PKT Documentation"},{"location":"learn/pkt-network/#pkt-documentation","text":"Documentation for the PKT project","title":"PKT Documentation"},{"location":"learn/pkt-network/#wallet-setup","text":"There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.","title":"Wallet setup"},{"location":"learn/pkt-network/#mining","text":"PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.","title":"Mining"},{"location":"learn/pkt-network/#running-a-pktd-instance","text":"You can setup a pktd instance using the instructions on pktd .","title":"Running a pktd instance"},{"location":"learn/pkt-network/#help-and-community","text":"To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"Help and Community"},{"location":"learn/pkt/","text":"What is PKT? \u00b6 PKT is an open source, layer 1 blockchain project and decentralized physical infrastructure (DePIN) mesh network powered by its global community. The project supports open internet access and scaling the decentralized web. The PKT project supports the core vision that basic, censorship-resistant internet access should be globally accessible. Rather than pay centralized companies for internet access, it\u2019s designed so basic access can be free and people can pay providers when they need fast speeds. PKT utilizes the cjdns routing protocol to enable a decentralized, censorship-resistant, high-speed data network. The PKT Network is a completely sovereign part of the internet, which is accessible via VPN. Anyone can build censorship-resistant websites in the PKT Network. These websites can use their IPv6 web URL as a PKT payment address, streamlining peer-to-peer payments in the network. There are many reasons why open internet access is important, but none are more fundamental than lowering the barrier to entry so access to information and connectivity is available to everyone. By participating in the PKT project, and holding the PKT cryptocurrency, you are helping restore the founding ethos of the internet: decentralization. Why does PKT exist? \u00b6 Connectivity is humanity\u2019s source of vitality, information and communication. PKT stands for the belief that internet access is a human entitlement. However, lowering the barrier for internet access is not in the best interest of centralized companies, internet service providers (ISP) and governments. Why? Because these entities are motivated by money and power, and their control is diminished if global internet access is free. Additionally, many corporations and governments don\u2019t support free unlimited internet access due to regional or political censorship ideologies or capitalist priorities. Despite the founding principle for the internet to be decentralized, today, internet access is not. It is for these reasons that PKT is designed to usher in a new paradigm of connectivity. This helps realize a new era, where the physical infrastructure of the internet is powered by the people, and accessibility is open and free. How does PKT Expand Internet Access? \u00b6 The PKT project presents an alternative approach to traditional internet service through mesh networking. First, PKT economically incentivizes individuals who have internet access to set up a PKT miner and contribute computer processing and bandwidth to secure the PKT blockchain. Similar to how Bitcoin miners earn BTC as they mine the Bitcoin, PKT miners earn PKT when they mine PKT. Since PKT mining requires bandwidth, this creates a general demand for bandwidth. Second, individuals with bandwidth can set up a cjdns node. Cjdns is the mesh networking protocol that enables the high speed data infrastructure for the PKT Network. As more people connect, this builds a decentralized, peer-to-peer network. Third, individuals can share mesh network internet access to the PKT Network. This internet access functions similar to a wifi access point. However, all connectivity is end-to-end encrypted. Wifi access point operators can choose to offer free access or paid access. The objective of the PKT Network is to decouple the physical aspect of deploying and maintaining internet infrastructure (such as overhead and undersea cables), from the business and technical aspects of internet service such as billing, network engineering, and support. This way anyone can safely and securely become an internet provider via mesh networking, thus expanding internet access worldwide. The fundamental value of dividing these internet service efforts is to empower everyday people to cover the cost of deploying and maintaining mesh network wifi access points. This ultimately lowers the cost of providing localized internet access and drives competition in the multi-trillion dollar annual internet industry. This can result in PKT\u2019s mission to get the next billion people online. How can PKT Accomplish Its Goals? \u00b6 Community projects can achieve the best results when focused on use cases, utility and community participation. When inspiring community participation, three core reasons people may take action: necessity they believe strongly they are being paid In the mission to extend internet access and expand the decentralized web, PKT economically incentivizes individuals to participate. Additionally, many contributors truly believe in the mission to connect the unconnected. Since PKT is a fully decentralized community project, like Bitcoin, everyone in the community is part of the project team. There is no central authority or centralized infrastructure. However, there are many businesses and contributors in the PKT ecosystem who are developing the [roadmap]. This fosters the decentralized nature of the project. Visit the Ecosystem page [here] to see a (non-exhaustive) list of the major projects and contributors. How does the PKT blockchain work? \u00b6 PKT is the world\u2019s first and only bandwidth-hard proof-of-work blockchain. Anyone with internet access can install the mining software called PacketCrypt and start mining to earn PKT Cash. Just as Bitcoin introduced the dawn of a new era of digital money, PKT is introducing a new paradigm for how people can use their internet resources to expand internet accessibility. Click here to learn more about PacketCrypt. How can I set up a miner? \u00b6 For a tutorial on how to start mining PKT and earn PKT Cash, for this guide: [Intro to PKT Mining].","title":"What is PKT?"},{"location":"learn/pkt/#what-is-pkt","text":"PKT is an open source, layer 1 blockchain project and decentralized physical infrastructure (DePIN) mesh network powered by its global community. The project supports open internet access and scaling the decentralized web. The PKT project supports the core vision that basic, censorship-resistant internet access should be globally accessible. Rather than pay centralized companies for internet access, it\u2019s designed so basic access can be free and people can pay providers when they need fast speeds. PKT utilizes the cjdns routing protocol to enable a decentralized, censorship-resistant, high-speed data network. The PKT Network is a completely sovereign part of the internet, which is accessible via VPN. Anyone can build censorship-resistant websites in the PKT Network. These websites can use their IPv6 web URL as a PKT payment address, streamlining peer-to-peer payments in the network. There are many reasons why open internet access is important, but none are more fundamental than lowering the barrier to entry so access to information and connectivity is available to everyone. By participating in the PKT project, and holding the PKT cryptocurrency, you are helping restore the founding ethos of the internet: decentralization.","title":"What is PKT?"},{"location":"learn/pkt/#why-does-pkt-exist","text":"Connectivity is humanity\u2019s source of vitality, information and communication. PKT stands for the belief that internet access is a human entitlement. However, lowering the barrier for internet access is not in the best interest of centralized companies, internet service providers (ISP) and governments. Why? Because these entities are motivated by money and power, and their control is diminished if global internet access is free. Additionally, many corporations and governments don\u2019t support free unlimited internet access due to regional or political censorship ideologies or capitalist priorities. Despite the founding principle for the internet to be decentralized, today, internet access is not. It is for these reasons that PKT is designed to usher in a new paradigm of connectivity. This helps realize a new era, where the physical infrastructure of the internet is powered by the people, and accessibility is open and free.","title":"Why does PKT exist?"},{"location":"learn/pkt/#how-does-pkt-expand-internet-access","text":"The PKT project presents an alternative approach to traditional internet service through mesh networking. First, PKT economically incentivizes individuals who have internet access to set up a PKT miner and contribute computer processing and bandwidth to secure the PKT blockchain. Similar to how Bitcoin miners earn BTC as they mine the Bitcoin, PKT miners earn PKT when they mine PKT. Since PKT mining requires bandwidth, this creates a general demand for bandwidth. Second, individuals with bandwidth can set up a cjdns node. Cjdns is the mesh networking protocol that enables the high speed data infrastructure for the PKT Network. As more people connect, this builds a decentralized, peer-to-peer network. Third, individuals can share mesh network internet access to the PKT Network. This internet access functions similar to a wifi access point. However, all connectivity is end-to-end encrypted. Wifi access point operators can choose to offer free access or paid access. The objective of the PKT Network is to decouple the physical aspect of deploying and maintaining internet infrastructure (such as overhead and undersea cables), from the business and technical aspects of internet service such as billing, network engineering, and support. This way anyone can safely and securely become an internet provider via mesh networking, thus expanding internet access worldwide. The fundamental value of dividing these internet service efforts is to empower everyday people to cover the cost of deploying and maintaining mesh network wifi access points. This ultimately lowers the cost of providing localized internet access and drives competition in the multi-trillion dollar annual internet industry. This can result in PKT\u2019s mission to get the next billion people online.","title":"How does PKT Expand Internet Access?"},{"location":"learn/pkt/#how-can-pkt-accomplish-its-goals","text":"Community projects can achieve the best results when focused on use cases, utility and community participation. When inspiring community participation, three core reasons people may take action: necessity they believe strongly they are being paid In the mission to extend internet access and expand the decentralized web, PKT economically incentivizes individuals to participate. Additionally, many contributors truly believe in the mission to connect the unconnected. Since PKT is a fully decentralized community project, like Bitcoin, everyone in the community is part of the project team. There is no central authority or centralized infrastructure. However, there are many businesses and contributors in the PKT ecosystem who are developing the [roadmap]. This fosters the decentralized nature of the project. Visit the Ecosystem page [here] to see a (non-exhaustive) list of the major projects and contributors.","title":"How can PKT Accomplish Its Goals?"},{"location":"learn/pkt/#how-does-the-pkt-blockchain-work","text":"PKT is the world\u2019s first and only bandwidth-hard proof-of-work blockchain. Anyone with internet access can install the mining software called PacketCrypt and start mining to earn PKT Cash. Just as Bitcoin introduced the dawn of a new era of digital money, PKT is introducing a new paradigm for how people can use their internet resources to expand internet accessibility. Click here to learn more about PacketCrypt.","title":"How does the PKT blockchain work?"},{"location":"learn/pkt/#how-can-i-set-up-a-miner","text":"For a tutorial on how to start mining PKT and earn PKT Cash, for this guide: [Intro to PKT Mining].","title":"How can I set up a miner?"},{"location":"learn/wpkt/","text":"What is WPKT? \u00b6 WPKT stands for wrapped PKT, thus the \"W\" in WPKT. WPKT exists on Binance Smart Chain blockchain. WPKT can only come into existence when someone sends PKT to the vault address, which converts the PKT into WPKT. As such, WPKT cannot be inflated since it has a 1-to-1 peg with PKT. Since there will only ever be 6 billion PKT in existence, there can never be more WPKT than the total amount of PKT in existence. WPKT is an BEP-20 token and is compatible with all platforms and wallets that accept and transact with the BEP-20 token standard. To learn how to swap PKT to WPK or visa versa, click [here].","title":"What is WPKT?"},{"location":"learn/wpkt/#what-is-wpkt","text":"WPKT stands for wrapped PKT, thus the \"W\" in WPKT. WPKT exists on Binance Smart Chain blockchain. WPKT can only come into existence when someone sends PKT to the vault address, which converts the PKT into WPKT. As such, WPKT cannot be inflated since it has a 1-to-1 peg with PKT. Since there will only ever be 6 billion PKT in existence, there can never be more WPKT than the total amount of PKT in existence. WPKT is an BEP-20 token and is compatible with all platforms and wallets that accept and transact with the BEP-20 token standard. To learn how to swap PKT to WPK or visa versa, click [here].","title":"What is WPKT?"},{"location":"mining/","text":"Mining \u00b6 PacketCrypt is a bandwidth hard proof of work , this means it requires lots of bandwidth to mine. Miners collaborate with one another by sending small messages (called Announcements ) and the sending of these messages requires a large amount of bandwidth . Miners who are working in collaboration with one another are members of a mining pool, therefore all mining of PacketCrypt is done in pools. PacketCrypt mining is split into two distinct stages: Announcement Mining - Using your CPU to create Announcements Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks Block mining is typically done at the mining pool's datacenter, however Announcement mining can be done from anywhere. How to Announcement mine \u00b6 There are a number of options available when it comes to installing the PacketCrpyt announcement miner. Choose whichever best suits your technical ability: 1. Install a Pre-built Binary \u00b6 Pre-built packetcrypt binaries (for linux) or installation packages (for macos) and archives (for windows) can be downloaded from packetcrypt releases page . For windows , download the zip archive suffixed with -windows.zip and extract its content. For macos , download the package suffixed with .pkg and click on its icon in the Finder for installation. For linux , download the binary suffixed with -linux_amd64 and rename it packetcrypt . If you're on Arch linux or Manjaro, you can install the packetcrypt AUR package 2. Deploy a Docker Image \u00b6 There is a PacketCrypt Docker image available, which can be used for announcement mining. To install: Download and install Docker for your operating system. Download the PacketCrypt Docker image: $ docker pull thomasjp0x42/packetcrypt There are also PacketCrypt Docker images built without the portable flag ( --no-portable ) which may increase the performance of the announcement mining while reducing CPU compatibility. One such image (compiled on AMD 5950x) is available at thomasjp0x42/packetcrypt-amd64 . Additionally, for ARM devices such as Raspberry Pi, there is an image available at thomasjp0x42/packetcrypt-arm64 . The arm64 image will also work on Apple silicon such as the M1 and M2 chips. Run the container similar to the commands described in the Begin Announcement Mining section, except replace this part of the command: $ packetcrypt with this command to run PacketCrypt from Docker: $ docker run thomasjp0x42/packetcrypt The final command will be formatted like this: $ docker run thomasjp0x42/packetcrypt ann -p More information can be found at the PacketCrypt DockerHub page 3. Build From Source \u00b6 Building from source will generally offer the best mining performance but requires more technical knowledge than the previous two options. First install rust if you haven't, see: rustup git clone https://github.com/cjdelisle/packetcrypt_rs cd packetcrypt_rs cargo build --release See the PacketCrypt GitHub repository for more detailed instructions. Begin Announcement Mining \u00b6 Important You cannot mine into the electrum wallet , You can only mine into the Command Line Wallet , the Pkt.World Wallet or the Mac GUI Wallet . To begin mining, you will need the address of your wallet and you will need to choose a pool. There are two ways to configure the announcement miner; by using CLI parameters or by using a configuration file: Using the CLI packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] [or for windows] packetcrypt.exe ann -p pool_1 [pool_2 pool_3 pool_4] Using a Configuration File A configuration file must be in JSON format. The file can be loaded from the local filesystem or from a web-accessible location. Any CLI parameters used will overide the corresponding settings in the configuration file. Example config.json: { \"payment_addr\": \" \", \"pools\": [ \"pool_1\", \"pool_2\", \"pool_3\", \"pool_4\" ] } packetcrypt ann -c \"./config.json\" [or] packetcrypt ann -c \"https://example.com/config.json\" [or for windows] packetcrypt.exe ann -c \"./config.json\" [or] packetcrypt.exe ann -c \"https://example.com/config.json\" Announcement mining can be done into a single pool or multiple pools. When you announcement mine into multiple pools, you will be paid by each pool that you submit announcements to. pool_1 is the pool running the highest difficulty. If you notice problems, you can test listing the pools in a different order. The number of pools you mine into is at your discretion. If a pool is down or malfunctioning you will notice the pool is not mining at [100%] in your mining feed and you can choose to remove the under-performing or malfunctioning pool. How to install a PKT miner on Mac \u00b6 Install the Zulu or CLI PKT Wallet from https://docs.pkt.cash Download the PacketCrypt.pkg for mac Open your Terminal Install Rust by entering in the command: $ curl --proto '=https' --tlsv1.2 -sSf * https://sh.rustup.rs | sh Press 1 to confirm Enter the command: $ sudo install make Enter the command: $ git clone https://github.com/cjdelisle/packetcrypt_rs Enter the command: $ cd packetcrypt_rs Enter the command: $ ~/.cargo/bin/cargo build --release Enter the command: $ ./target/release/packetcrypt ann -p [your PKT Wallet Address] [pool 1] [pool 2] [pool 3] [pool 4] Choosing Pools to mine in \u00b6 You can mine in as many pools as you have the bandwidth to supply. The same data will be uploaded so your CPU is only used once. Currently the pools which are regularly winning blocks include: Pkteer: http://pool.pkteer.com PKTPool: http://pool.pktpool.io PktWorld: http://pool.pkt.world Zetahash (f.k.a. Srizbi): https://stratum.zetahash.com In general the recommendation is to list the pool with highest difficulty in the first position to ensure your announcements will be accepted, as the standardized policy is to accept announcements of a higher difficulty for pools with a lower base difficulty. In some cases the rewards might vary depending on the pool order regardless of difficulty, subject to custom policies implemented by the respective pools. (Check the relevant channels on Discord for current pool statuses) You should test your daily earnings on each pool to see which one is best. Your mining revenue depends on how much each pool allocates towards announcement miners as well as how much hardware they are using in-house. The pools are winning different blocks and if you mine to just one pool, you're not getting any payment from the others when they win a block. It's the same with mining to a pool that is not winning any blocks. Limiting System Resource Usage \u00b6 Limiting the system resources available to Packetcrypt may negatively effect your mining power but can be useful to conserve resources for other processess. Limit CPU Usage \u00b6 Announcement mining is a resource intensive process. By default, Packetcrypt will use 100% of the available CPU resources. CPU usage can be limited by assigning a limited number of threads to packetcrypt using the -t CLI parameter or \"threads\" key if using a configuration file. Example of assigning four (4) threads to Packetcrypt: packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] -t 4 or { \"threads\" 4 } Limit Bandwidth Usage \u00b6 Bandwidth usage is directly related to two main factors: 1 - Mining difficulty of the primary pool (the first pool listed in Packetcrypt pool configuration) A lower difficulty means higher bandwidth usage 2 - The number of pools mined Packetcrypt will send the same Announcements to each pool mined Bandwidth usage can therefore be limited by selecting a higher difficulty pool as the primary pool and/or by mining to fewer pools. Block Mining & Running a Pool \u00b6 Because each block miner must use as much bandwidth as all of the announcement miners combined , block mining is typically done at the location of the pool. Even a pool operator who wanted to support external block mining would find that the pool itself would need enough upload bandwidth to match all of the block miners - which would be completely untenable. If you are interested in block mining, contact the pool operator and discuss sending hardware to their location. Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (one or more) - These are high performance nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (one or more) - These nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if Paymaker (1) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners PacketCrypt Data Flow \u00b6 \u2588 Orange: Announcements are sent from the Announcement miners to the Ann Handlers and then to the Block miners \u2588 Blue: Block shares are sent from block miners to Block Handler(s) \u2588 Purple: Winning blocks are submitted by the Block Handler(s) to pktd and the PKT network \u2588 Pink: Block Handlers and Ann Handlers inform Paymaker of work done by announcement and block miners \u2588 Green: Paymaker configures pktd instance to create blocks which pay the people who have been mining \u2588 Brown: Master gets block templates from pktd instance Black dotted line: All nodes request configuration and block templates from Master node More Information and PacketCrypt Pool Code \u00b6 The code and documentation for running a pool is available on the C / nodejs version of the PacketCrypt project, the new Rust version only contains Announcement Miner and Announcement Handlers. Announcement Difficulty \u00b6 PacketCrypt is designed in such a way that a mining pool can double its effective power by: Doubling the total block mining computation effort Doubling the total announcement mining computation effort, or Doubling the amount of bandwidth between announcement miners and the pool The way that a pool operator limits the amount of bandwidth flowing into the pool, to prevent overloading of the network, is by setting what is known as the announcement difficulty . The announcement difficulty for a pool specifies how much work must be done on an announcement in order for the announcement to be accepted and paid out by the pool. Announcement difficulty serves to slow down the announcement miners to protect the pool's network. In general, doubling the announcement difficulty will halve the amount of bandwidth used by the pool and will also halve the pool's overall mining power, with a limit that setting the announcement difficulty lower than 2 does not bring any additional value. To explain why it works like this, we need to examine the PacketCrypt algorithm rules and the in particular how the block mining software decides which announcements to use when attempting to mine a block. Announcement Set Selection \u00b6 PacketCrypt algorithm allows block miners to perform less work if they are able to prove that they had a certain number of \"high value\" announcements in memory at the time of mining, the exact ratio of actual work a block miner must do to the amount of work the PKT blockchain requires is called the power multipler . For a block miner seeking to optimize their power multiplier, every announcement has a particular level of utility value which is based on the amount of work that was done by the announcement miner (announcement difficulty) and how old the announcement is. We call this the effective difficulty . The effective difficulty of an announcement starts off as the actual difficulty of the work done to mine it and then decreases by half every block-period until it is less than 1 and the announcement is no longer usable for mining. The block mining software selects a subset of announcements which which will give it the best power multiplier based on the PacketCrypt algorithm: power_multiplier = min(effective_difficulty) * ann_count ** 2 The min(effective_difficulty) is the effective difficulty of the \"least valuable\" announcement that is being mined with. Lets assume that announcement miners are providing a steady supply of 1000 announcements per block-period and all announcements have an initial announcement difficulty of 128. The block mining software can choose to mine with 1000 announcements at 128 effective difficulty, or with 2000 announcements at 64 effective difficulty, or with 3000 announcements at 32 effective difficulty and so on. The best choice is to use the previous three block periods which provides a power multiplier that is 225% higher than that of using just the most recent 1 period worth of announcements. This curve is the same no matter what difficulty we are starting with. Optimal Difficulty Curve \u00b6 Knowing that the optimal announcement set is all of those announcements mined over the past 3 block periods, we can compute the overall power of a pool as the announcement difficulty is raised. At announcement difficulty 1, announcements cannot be used for more than 1 block, but if we imagine that the announcement mining community can produce 1000 announcements per block at difficulty 1 then we can reason that the power multiplier will be 1000 ** 2 or 1 million. At difficulty 2 we can expect the announcement miners will produce 500 announcements per block period but since 2 block periods can be used, the power multiplier is the same. At difficulty 4, the announcement miners will produce 250 announcements per block period and they will be valid for 3 block periods making the power multiplier 750 ** 2 or 562,500. From here, the power output of the power multiplier of the optimal announcement set halves for each doubling of the announcement difficulty, making the optimal difficulty 2 . FAQ for ANN Miners \u00b6 What does overflow mean? \u00b6 When the ann handler receives an announcement, it puts it into a queue, when the queue fills up it responds overflow immediately. The queue can become long, so you may receive \"operation timed out\" you're still being paid, when you receive \"overflow\" you are not being paid. Unfortunately, you may also receive \"operation timed out\" because the handler is unresponsive, it's not obvious which is the reason from looking at the logs. For example, what you will see in the AnnMiner Logs: 1618394538 INFO annmine.rs:519 467 Ke/s 28.56Mb/s overflow: [0, 0, 3072, 0] uploading: [0, 0, 17632, 0] accept/reject: [26932/0, 0/0, 4856/0, 796/0] - goodrate: [100%, 100%, 61%, 100%] 467 Ke/s 467 kilo-encryptions (thousands of encryptions) per second of mining power. 28.56Mb/s Total upload bandwidth (to all pools - combined) overflow: [0, 0, 3072, 0] Overflowed the internal queue of the ann miner, before it was even able to upload to the pool, one number for each pool you're mining to. 3072 Number of anns which are not uploaded to pool #3. uploading [0, 0, 17632, 0] Number of anns currently in-flight in active http requests, again 3rd pool is a problem, others are doing well (in this example). accept/reject [26932/0, 0/0, 4856/0, 796/0] Anns accepted/rejected by each pool, these numbers are based on the previous 10 seconds, pool #2 is giving a zero accepted which might be an issue, keep watching the next message 10 seconds later for another update. goodrate [100%, 100%, 61%, 100%] Goodrate = number of anns accepted divided by number of anns produced.","title":"Mining"},{"location":"mining/#mining","text":"PacketCrypt is a bandwidth hard proof of work , this means it requires lots of bandwidth to mine. Miners collaborate with one another by sending small messages (called Announcements ) and the sending of these messages requires a large amount of bandwidth . Miners who are working in collaboration with one another are members of a mining pool, therefore all mining of PacketCrypt is done in pools. PacketCrypt mining is split into two distinct stages: Announcement Mining - Using your CPU to create Announcements Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks Block mining is typically done at the mining pool's datacenter, however Announcement mining can be done from anywhere.","title":"Mining"},{"location":"mining/#how-to-announcement-mine","text":"There are a number of options available when it comes to installing the PacketCrpyt announcement miner. Choose whichever best suits your technical ability:","title":"How to Announcement mine"},{"location":"mining/#1-install-a-pre-built-binary","text":"Pre-built packetcrypt binaries (for linux) or installation packages (for macos) and archives (for windows) can be downloaded from packetcrypt releases page . For windows , download the zip archive suffixed with -windows.zip and extract its content. For macos , download the package suffixed with .pkg and click on its icon in the Finder for installation. For linux , download the binary suffixed with -linux_amd64 and rename it packetcrypt . If you're on Arch linux or Manjaro, you can install the packetcrypt AUR package","title":"1. Install a Pre-built Binary"},{"location":"mining/#2-deploy-a-docker-image","text":"There is a PacketCrypt Docker image available, which can be used for announcement mining. To install: Download and install Docker for your operating system. Download the PacketCrypt Docker image: $ docker pull thomasjp0x42/packetcrypt There are also PacketCrypt Docker images built without the portable flag ( --no-portable ) which may increase the performance of the announcement mining while reducing CPU compatibility. One such image (compiled on AMD 5950x) is available at thomasjp0x42/packetcrypt-amd64 . Additionally, for ARM devices such as Raspberry Pi, there is an image available at thomasjp0x42/packetcrypt-arm64 . The arm64 image will also work on Apple silicon such as the M1 and M2 chips. Run the container similar to the commands described in the Begin Announcement Mining section, except replace this part of the command: $ packetcrypt with this command to run PacketCrypt from Docker: $ docker run thomasjp0x42/packetcrypt The final command will be formatted like this: $ docker run thomasjp0x42/packetcrypt ann -p More information can be found at the PacketCrypt DockerHub page","title":"2. Deploy a Docker Image"},{"location":"mining/#3-build-from-source","text":"Building from source will generally offer the best mining performance but requires more technical knowledge than the previous two options. First install rust if you haven't, see: rustup git clone https://github.com/cjdelisle/packetcrypt_rs cd packetcrypt_rs cargo build --release See the PacketCrypt GitHub repository for more detailed instructions.","title":"3. Build From Source"},{"location":"mining/#begin-announcement-mining","text":"Important You cannot mine into the electrum wallet , You can only mine into the Command Line Wallet , the Pkt.World Wallet or the Mac GUI Wallet . To begin mining, you will need the address of your wallet and you will need to choose a pool. There are two ways to configure the announcement miner; by using CLI parameters or by using a configuration file: Using the CLI packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] [or for windows] packetcrypt.exe ann -p pool_1 [pool_2 pool_3 pool_4] Using a Configuration File A configuration file must be in JSON format. The file can be loaded from the local filesystem or from a web-accessible location. Any CLI parameters used will overide the corresponding settings in the configuration file. Example config.json: { \"payment_addr\": \" \", \"pools\": [ \"pool_1\", \"pool_2\", \"pool_3\", \"pool_4\" ] } packetcrypt ann -c \"./config.json\" [or] packetcrypt ann -c \"https://example.com/config.json\" [or for windows] packetcrypt.exe ann -c \"./config.json\" [or] packetcrypt.exe ann -c \"https://example.com/config.json\" Announcement mining can be done into a single pool or multiple pools. When you announcement mine into multiple pools, you will be paid by each pool that you submit announcements to. pool_1 is the pool running the highest difficulty. If you notice problems, you can test listing the pools in a different order. The number of pools you mine into is at your discretion. If a pool is down or malfunctioning you will notice the pool is not mining at [100%] in your mining feed and you can choose to remove the under-performing or malfunctioning pool.","title":"Begin Announcement Mining"},{"location":"mining/#how-to-install-a-pkt-miner-on-mac","text":"Install the Zulu or CLI PKT Wallet from https://docs.pkt.cash Download the PacketCrypt.pkg for mac Open your Terminal Install Rust by entering in the command: $ curl --proto '=https' --tlsv1.2 -sSf * https://sh.rustup.rs | sh Press 1 to confirm Enter the command: $ sudo install make Enter the command: $ git clone https://github.com/cjdelisle/packetcrypt_rs Enter the command: $ cd packetcrypt_rs Enter the command: $ ~/.cargo/bin/cargo build --release Enter the command: $ ./target/release/packetcrypt ann -p [your PKT Wallet Address] [pool 1] [pool 2] [pool 3] [pool 4]","title":"How to install a PKT miner on Mac"},{"location":"mining/#choosing-pools-to-mine-in","text":"You can mine in as many pools as you have the bandwidth to supply. The same data will be uploaded so your CPU is only used once. Currently the pools which are regularly winning blocks include: Pkteer: http://pool.pkteer.com PKTPool: http://pool.pktpool.io PktWorld: http://pool.pkt.world Zetahash (f.k.a. Srizbi): https://stratum.zetahash.com In general the recommendation is to list the pool with highest difficulty in the first position to ensure your announcements will be accepted, as the standardized policy is to accept announcements of a higher difficulty for pools with a lower base difficulty. In some cases the rewards might vary depending on the pool order regardless of difficulty, subject to custom policies implemented by the respective pools. (Check the relevant channels on Discord for current pool statuses) You should test your daily earnings on each pool to see which one is best. Your mining revenue depends on how much each pool allocates towards announcement miners as well as how much hardware they are using in-house. The pools are winning different blocks and if you mine to just one pool, you're not getting any payment from the others when they win a block. It's the same with mining to a pool that is not winning any blocks.","title":"Choosing Pools to mine in"},{"location":"mining/#limiting-system-resource-usage","text":"Limiting the system resources available to Packetcrypt may negatively effect your mining power but can be useful to conserve resources for other processess.","title":"Limiting System Resource Usage"},{"location":"mining/#limit-cpu-usage","text":"Announcement mining is a resource intensive process. By default, Packetcrypt will use 100% of the available CPU resources. CPU usage can be limited by assigning a limited number of threads to packetcrypt using the -t CLI parameter or \"threads\" key if using a configuration file. Example of assigning four (4) threads to Packetcrypt: packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] -t 4 or { \"threads\" 4 }","title":"Limit CPU Usage"},{"location":"mining/#limit-bandwidth-usage","text":"Bandwidth usage is directly related to two main factors: 1 - Mining difficulty of the primary pool (the first pool listed in Packetcrypt pool configuration) A lower difficulty means higher bandwidth usage 2 - The number of pools mined Packetcrypt will send the same Announcements to each pool mined Bandwidth usage can therefore be limited by selecting a higher difficulty pool as the primary pool and/or by mining to fewer pools.","title":"Limit Bandwidth Usage"},{"location":"mining/#block-mining-running-a-pool","text":"Because each block miner must use as much bandwidth as all of the announcement miners combined , block mining is typically done at the location of the pool. Even a pool operator who wanted to support external block mining would find that the pool itself would need enough upload bandwidth to match all of the block miners - which would be completely untenable. If you are interested in block mining, contact the pool operator and discuss sending hardware to their location. Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (one or more) - These are high performance nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (one or more) - These nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if Paymaker (1) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners","title":"Block Mining & Running a Pool"},{"location":"mining/#packetcrypt-data-flow","text":"\u2588 Orange: Announcements are sent from the Announcement miners to the Ann Handlers and then to the Block miners \u2588 Blue: Block shares are sent from block miners to Block Handler(s) \u2588 Purple: Winning blocks are submitted by the Block Handler(s) to pktd and the PKT network \u2588 Pink: Block Handlers and Ann Handlers inform Paymaker of work done by announcement and block miners \u2588 Green: Paymaker configures pktd instance to create blocks which pay the people who have been mining \u2588 Brown: Master gets block templates from pktd instance Black dotted line: All nodes request configuration and block templates from Master node","title":"PacketCrypt Data Flow"},{"location":"mining/#more-information-and-packetcrypt-pool-code","text":"The code and documentation for running a pool is available on the C / nodejs version of the PacketCrypt project, the new Rust version only contains Announcement Miner and Announcement Handlers.","title":"More Information and PacketCrypt Pool Code"},{"location":"mining/#announcement-difficulty","text":"PacketCrypt is designed in such a way that a mining pool can double its effective power by: Doubling the total block mining computation effort Doubling the total announcement mining computation effort, or Doubling the amount of bandwidth between announcement miners and the pool The way that a pool operator limits the amount of bandwidth flowing into the pool, to prevent overloading of the network, is by setting what is known as the announcement difficulty . The announcement difficulty for a pool specifies how much work must be done on an announcement in order for the announcement to be accepted and paid out by the pool. Announcement difficulty serves to slow down the announcement miners to protect the pool's network. In general, doubling the announcement difficulty will halve the amount of bandwidth used by the pool and will also halve the pool's overall mining power, with a limit that setting the announcement difficulty lower than 2 does not bring any additional value. To explain why it works like this, we need to examine the PacketCrypt algorithm rules and the in particular how the block mining software decides which announcements to use when attempting to mine a block.","title":"Announcement Difficulty"},{"location":"mining/#announcement-set-selection","text":"PacketCrypt algorithm allows block miners to perform less work if they are able to prove that they had a certain number of \"high value\" announcements in memory at the time of mining, the exact ratio of actual work a block miner must do to the amount of work the PKT blockchain requires is called the power multipler . For a block miner seeking to optimize their power multiplier, every announcement has a particular level of utility value which is based on the amount of work that was done by the announcement miner (announcement difficulty) and how old the announcement is. We call this the effective difficulty . The effective difficulty of an announcement starts off as the actual difficulty of the work done to mine it and then decreases by half every block-period until it is less than 1 and the announcement is no longer usable for mining. The block mining software selects a subset of announcements which which will give it the best power multiplier based on the PacketCrypt algorithm: power_multiplier = min(effective_difficulty) * ann_count ** 2 The min(effective_difficulty) is the effective difficulty of the \"least valuable\" announcement that is being mined with. Lets assume that announcement miners are providing a steady supply of 1000 announcements per block-period and all announcements have an initial announcement difficulty of 128. The block mining software can choose to mine with 1000 announcements at 128 effective difficulty, or with 2000 announcements at 64 effective difficulty, or with 3000 announcements at 32 effective difficulty and so on. The best choice is to use the previous three block periods which provides a power multiplier that is 225% higher than that of using just the most recent 1 period worth of announcements. This curve is the same no matter what difficulty we are starting with.","title":"Announcement Set Selection"},{"location":"mining/#optimal-difficulty-curve","text":"Knowing that the optimal announcement set is all of those announcements mined over the past 3 block periods, we can compute the overall power of a pool as the announcement difficulty is raised. At announcement difficulty 1, announcements cannot be used for more than 1 block, but if we imagine that the announcement mining community can produce 1000 announcements per block at difficulty 1 then we can reason that the power multiplier will be 1000 ** 2 or 1 million. At difficulty 2 we can expect the announcement miners will produce 500 announcements per block period but since 2 block periods can be used, the power multiplier is the same. At difficulty 4, the announcement miners will produce 250 announcements per block period and they will be valid for 3 block periods making the power multiplier 750 ** 2 or 562,500. From here, the power output of the power multiplier of the optimal announcement set halves for each doubling of the announcement difficulty, making the optimal difficulty 2 .","title":"Optimal Difficulty Curve"},{"location":"mining/#faq-for-ann-miners","text":"","title":"FAQ for ANN Miners"},{"location":"mining/#what-does-overflow-mean","text":"When the ann handler receives an announcement, it puts it into a queue, when the queue fills up it responds overflow immediately. The queue can become long, so you may receive \"operation timed out\" you're still being paid, when you receive \"overflow\" you are not being paid. Unfortunately, you may also receive \"operation timed out\" because the handler is unresponsive, it's not obvious which is the reason from looking at the logs. For example, what you will see in the AnnMiner Logs: 1618394538 INFO annmine.rs:519 467 Ke/s 28.56Mb/s overflow: [0, 0, 3072, 0] uploading: [0, 0, 17632, 0] accept/reject: [26932/0, 0/0, 4856/0, 796/0] - goodrate: [100%, 100%, 61%, 100%] 467 Ke/s 467 kilo-encryptions (thousands of encryptions) per second of mining power. 28.56Mb/s Total upload bandwidth (to all pools - combined) overflow: [0, 0, 3072, 0] Overflowed the internal queue of the ann miner, before it was even able to upload to the pool, one number for each pool you're mining to. 3072 Number of anns which are not uploaded to pool #3. uploading [0, 0, 17632, 0] Number of anns currently in-flight in active http requests, again 3rd pool is a problem, others are doing well (in this example). accept/reject [26932/0, 0/0, 4856/0, 796/0] Anns accepted/rejected by each pool, these numbers are based on the previous 10 seconds, pool #2 is giving a zero accepted which might be an issue, keep watching the next message 10 seconds later for another update. goodrate [100%, 100%, 61%, 100%] Goodrate = number of anns accepted divided by number of anns produced.","title":"What does overflow mean?"},{"location":"mining/pool_setup_guide/","text":"Setting up a Pool \u00b6 Expectations \u00b6 General knowledge of Linux General knowledge of git General knowledge of networking General knowledge of blockchain Access to at least 6 machines running Ubuntu 18.04 LTS or 20.04 LTS , to deploy the following services. Machine 1 : PKT node Machine 2 : Master, Paymaker & Blkhander Machine 3 : AnnHandler Machine 4 : AnnHandler Machine 5 : BlkMiner Machine 6 : BlkMiner Note: It can be done all on a single machine, you just need to pay attention to ports etc. As of June 2022, the network difficulty is high, and given that half of the work is done at pool premises, it's recommended to run at least a dozen BlkMiner machines, with a significant (768GB recommended) ammount of RAM. Block mining & running a pool \u00b6 Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (two or more) - These are nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (two or more) - These high performance nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if they validate the share Paymaker (one) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners General Information \u00b6 Repository Information: \u00b6 The following repositories hold the required programs to run a pool: Repository Tools packetcrypt_rs: https://github.com/cjdelisle/packetcrypt_rs AnnHandler, Blkminer, AnnMiner PacketCrypt: https://github.com/cjdelisle/PacketCrypt/ Master, Paymaker, BlkHandler pktd: https://github.com/pkt-cash/pktd pktd Assumed network Ranges: \u00b6 In this guide we have two separate networks, the public network (198.51.100.0/24), and local network (10.0.16.0/24) to connect AnnHandlers and BlkMiner. Machine Public Network IP Private Network IP Machine 1 198.51.100.1 10.0.16.1 Machine 2 198.51.100.2 10.0.16.2 Machine 3 198.51.100.3 10.0.16.3 Machine 4 198.51.100.4 10.0.16.4 Machine 5 X 10.0.16.5 Machine 6 X 10.0.16.6 Assumed Port Ranges: \u00b6 Service Machine Port/Port Ranges Master Machine 2 8080 Paymaker Machine 2 8081 BlkHandlers Machine 2 8100-8200 AnnHandlers Machine 3 & 4 80 Installation \u00b6 Machine 1 \u00b6 PKTD node: \u00b6 150GB of storage is required at a minimum to run the pktd node. Recommended size is around 250GB of NVMe storage. Install Golang sudo add-apt-repository ppa:longsleep/golang-backports sudo apt update sudo apt install golang-go Install git sudo apt install git Install the pktd node git clone --branch develop https://github.com/pkt-cash/pktd cd pktd ./do The output should show the following: Everything looks good - use ./bin/pktd to launch Machine 2 \u00b6 Master | Paymaker | BlkHandler: \u00b6 Install the required tools: cd ~ sudo add-apt-repository universe sudo apt install git sudo apt install make sudo apt install npm sudo npm cache clean -f sudo npm install -g n sudo n stable Restart your shell ### Add here how to get latest stable version of node Clone the source code: git clone --branch master https://github.com/cjdelisle/PacketCrypt Build the PacketCrypt code cd PacketCrypt npm install Machine 4 - 6 \u00b6 BlkMiner | AnnHandler | AnnMiner: \u00b6 Install the Required tools: sudo apt install gcc git sudo apt install curl curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh Clone packetcrypt_rs git clone --branch develop https://github.com/cjdelisle/packetcrypt_rs Compile PacketCrypt cd packetcrypt_rs ~/.cargo/bin/cargo build --release --features jemalloc Config of pool.js \u00b6 Information: pool.js is located at: ~/PacketCrypt/pool.example.js You need to edit this file, then run: cp ~/PacketCrypt/pool.example.js ~/PacketCrypt/pool.js config.privateSeed \u00b6 Signing of announcements is rarely used, it breaks people mining into multiple pools, and you should set it to null unless \"you know what you're doing\" This seed is used for deriving keys which will be used for signing announcements. Setting this value to an alphanumeric value e.g oHk8TXpbtRRZGtaYYMnIFAzYMrVh6vA8XzKWWXcKbzCThuFLIJ234bHN5peddQFzR2TtQyo58gcFRP7bKg9BeXZirSqp9gVpjBWp In general, this value should be set to the null, as signing announcements is rarely used, and breaks Announcement mining with multiple pools if you have your pool externally accessable, and should only be set if you have a strong understanding and knowledge of what you are doing. config.privateSeed = null If you aren't bothered by, or don't require your announcements to be signed . config.paymakerHttpPasswd \u00b6 Anyone who has this password can make http posts to the paymaker (claim that shares were won) You should make this random and also firewall the paymaker from the public. The upload will be done using Authorization Basic with a username of \"x\" and this as the password config.paymakerHttpPasswd = 'anyone with this password can post results to the paymaker'; You can put the paymaker behind an http proxy if you wish. config.masterUrl \u00b6 This is used by the paymaker and block handler when running them with pool.js, it is used to resolve where the master is. You can either set this as a locally host or put your master behind a nginx proxy config.masterUrl = 'http://localhost:8080'; or if you have your instance public, and you want to have it be resolvable publically, replace the url with your own. config.masterUrl = 'http://pool.pktpool.io'; config.rpc \u00b6 The username and password set here, should be the same username and password used at the end of this guide for when you configure the pktd service. user: 'x', pass: 'x', config.annHandlers \u00b6 Information: config.annHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. As the AnnHandler will be run on the same machine as the BlkMiner you need to make sure there are no over-lapping port bindings. If you plan to allow external AnnMiners (AnnMiners not on your LAN to mine against your pool, the url's placed in the AnnHandlers list, should be externally resolvable. The address that is advertized for accessing this ann handler (external address) If running locally use: url: 'http://10.0.16.3:8081','http://10.0.16.4:8081' If allowing external annminers use a resolved address such as: url: 'http://ann1.pktpool.io','http://ann2.pktpool.io' Replace the url with your own. config.blkHandlers \u00b6 Information: config.blkHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. BlockHandlers are low-effort high-volume single-threaded workers. What address should be advertized for accessing this BlkHander, again make sure there are no overlapping ports. If you are wanting to support external blockminers, this address should be externally resolvable url: 'http://localhost:8100', This is the port that the blkHandler will bind to. port: 8082, This is the host that the blkHandler will bind to. host: '::', This is how many requests a blkHandler can queue before the handler starts rejecting requests maxConnections: 50, root: config config.master \u00b6 Which port to run the master on port: 8080, What address to bind to, set to localhost if proxying host: '::', Minimum work for an announcement. This number is effectively a bandwidth divisor, every time you double this number you will reduce your bandwidth by a factor of two. annMinWork: Util.annWorkToTarget(128), Average number of shares per block, reducing this number will reduce load on your block handlers, but increasing it will allow payment to be spread more evenly between block miners. This wants to be set to a higher number than one, for the purpose of constantly testing that the block miners are making valid shares. You may have a block miner sitting for hours without a share and then when it wins one, it can become invalid because of misconfiguration shareWorkDivisor: 4, Which versions of announcements we will accept annVersions: [1], Request that ann miners mine announcements that are this many blocks old. Announcements contain a commitment of the most recent block hash but they need 3 blocks to \"mature\" before they can be used The point of this is so that PacketCrypt is about bandwidth, not latency. But there is a risk: If there is a surge then you are going to be starved for announcements When you are starved, you will have few usable anns which causes a slow-down in mining and the announcements which are being submitted are not usable. When you win a few blocks, those announcements become usable and you surge, which causes you to go back into starvation again. This should be set to either: 0 Which means the announcements you are receiving are used instantly 3 Which means you are waiting for the announcements to mature before using them. If running your own AnnMiners, it is advisable to set this to 0, and add the --mineold 3 to some of your AnnMiner startups on the CLI. This helps to keep a balance between keeping your pool as powerful as possible, along with having AnnMiners to help out in the case of a starvation mineOldAnns: 0, config.payMaker \u00b6 How the miners should access the paymaker (external address), replace the url with your own. url: 'pool.pktpool.io', Which port to run the paymaker on port: 8081, What address to bind to, set to localhost if proxying host: '::', Seconds between sending updates to pktd. If this set to zero, the payMaker will accept log uploads but will not send any changes of payout data to pktd. updateCycle: 120, updateCycle: 0 to disable How many seconds backward to keep history in memory historyDepth: 60 * 60 * 24 * 30, Maximum number of simultanious connections to accept before sending 500 errors maxConnections: 200, annCompressor \u00b6 Store data in 1 minute aggregations timespanMs: 1000 * 60, Allow data to be submitted to any of the last 10 aggregations slotsToKeepEvents: 10, What fraction of the payout to pay to block miners (the rest will be paid to ann miners) ( Pay per last N shares ) blockPayoutFraction: 0.5, What percent of the total winnings should be taken for pool management poolFee: 0.40, The address which should be paid the pool fee poolFeeAddress: \"pkt1qyc9dkhca7uc84zn3vlgd0h0fxr3twwn34qgeqe\", This constant will affect how far back into history we pay our announcement miners ( Pay per last N shares ) pplnsAnnConstantX: 0.125, This constant will affect how far back into history we pay our block miners ( Pay per last N shares ) pplnsBlkConstantX: 2, When there are not enough shares to fairly spread out the winnings, pay what is left over to this address. defaultAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\", When something goes wrong, direct pktd to send all coins here, if this is different from the defaultAddress then it is possible to account for and pay out to the miners later when the problem is fixed. errorAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\", Config of pool.toml \u00b6 Information: - pool.example.toml is located at: ~/packetcrypt_rs/pool.example.toml - You need to edit this file, then run: ~/packetcrypt_rs/pool.example.toml ~/packetcrypt_rs/pool.toml Password used by your paymaker to post logs for payment, the same as config.paymakerHttpPasswd paymaker_http_password = \"you'll want this to be a secret\" URL of the pool master, used for getting configuration and work, the same as: Replace the url with your own. master_url = \"http://pool.pktpool.io\" ann_handler.ah* \u00b6 You can have multiple ann_handlers, you can do this by defining each one such as: [ann_handler.ah0] \"parameters\" [ann_handler.ah1] \"parameters\" These can all be in a single file to be used by each annhandler, when starting the annhandlers, you would start them with on each respective machine: packetcrypt ah --config /path/to/config.toml ah0 packetcrypt ah --config /path/to/config.toml ah1 Number of threads to dedicate to the AnnHandler num_workers = 8 Length of the input queue, keeping this low will create back-pressure and prevent miners from posting too many announcements when the server is in fact overloaded input_queue_len = 256 The public url of the annhandler, this should match what is set in your pool.js Replace the url with your own. public_url = \"http://ann1.pktpool.io/submit\" Bind to this port bind_port = \"198.51.100.3:80\" Bind this port to the sprayer component bind_pvt = \"10.0.16.3:6666\" Set sprayer spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 For Machine 3 you should end up with something like this [ann_handler.ah0] block_miner_passwd = \"no one steals my anns\" skip_check_chance = 0 num_workers = 8 input_queue_len = 512 public_url = \"http://ann1.pktpool.io/submit\" bind_pub = \"198.51.100.3:80\" bind_pvt = \"10.0.16.3:6666\" spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 subscribe_to = [] files_to_keep = 512 The same logic should be followed for Machine 4 and other handlers you may have. NOTE: To bind low ports with non-root user run: \u00b6 sudo setcap CAP_NET_BIND_SERVICE=+eip $(which packetcrypt) Running Manually \u00b6 Machine 1 \u00b6 Information: These tasks need to be run in the order they are presented PKTD needs to have downloaded the full chain first, you will know when the node is upto date when height is equal to the current block on the explorer It can take 12+ hours to fully sync to the current block height PKTD \u00b6 --rpcuser and --rpcpass should match the values set in pool.js under config.rpc ./pktd/bin/pktd --rpcuser=XXX --rpcpass=XXX --miningaddr Machine 2 \u00b6 Master \u00b6 node ./pool.js --master Paymaker \u00b6 node ./pool.js --payMaker BlkHandler(s) \u00b6 Launch the BlkHandler nodes, specify --blk0 for the first BlkHandler , --blk1 for the second, and so forth cd PacketCrypt node ./pool.js --blk0 node ./pool.js --blk1 Machine 3 \u00b6 AnnHandler \u00b6 cd packetcrypt_rs ./target/release/packetcrypt ah --config /path/to/pool.toml ah0 Machine 4 \u00b6 AnnHandler \u00b6 cd packetcrypt_rs ./targer/release/packetcrypt ah --config /path/to/pool.toml ah1 Machine 5 and 6 \u00b6 BlkMiner \u00b6 --threads is the number of threads you want to dedicate to the Blkminer, the default is to use all available threads. --paymentaddr is the wallet you want your coins to be mined into, it is advisable to not use the electrum wallet for this. --memorysizemb is how much RAM you are allocating to block mining, Ideally you want to set as much as you can. is the masterUrl of your pool cd packetcrypt_rs ./target/release/packetcrypt blk --paymentaddr --threads 80 --memorysizemb 665000 --handlerpass NoOneStealsMyAnns --subscribe 10.0.16.3:6666 --bind 0.0.0.0:6667 --mcast 239.0.1.1 NGINX Setup (For allowing external AnnMining) \u00b6 Machine 2 \u00b6 Update system and install Nginx sudo apt update sudo apt install nginx Unlink default nginx site unlink /etc/nginx/sites-enabled/default cd /etc/nginx/sites-available Create and edit the reverse-proxy.conf file vim reverse-proxy.conf The config for the services: server { listen 80; listen [::]:80; server_name ; location / { proxy_pass http://localhost:8080/; } } server { listen 80; listen [::]:80; server_name paymaker.pktpool.io; location / { proxy_pass http://localhost:8081/; } } Link new file to sites-enabled ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf Remove default config rm default Check reverse proxy config is correct nginx -t Reload nginx to pick up config changes. sudo systemctl reload nginx","title":"Setting up a Pool"},{"location":"mining/pool_setup_guide/#setting-up-a-pool","text":"","title":"Setting up a Pool"},{"location":"mining/pool_setup_guide/#expectations","text":"General knowledge of Linux General knowledge of git General knowledge of networking General knowledge of blockchain Access to at least 6 machines running Ubuntu 18.04 LTS or 20.04 LTS , to deploy the following services. Machine 1 : PKT node Machine 2 : Master, Paymaker & Blkhander Machine 3 : AnnHandler Machine 4 : AnnHandler Machine 5 : BlkMiner Machine 6 : BlkMiner Note: It can be done all on a single machine, you just need to pay attention to ports etc. As of June 2022, the network difficulty is high, and given that half of the work is done at pool premises, it's recommended to run at least a dozen BlkMiner machines, with a significant (768GB recommended) ammount of RAM.","title":"Expectations"},{"location":"mining/pool_setup_guide/#block-mining-running-a-pool","text":"Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (two or more) - These are nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (two or more) - These high performance nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if they validate the share Paymaker (one) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners","title":"Block mining & running a pool"},{"location":"mining/pool_setup_guide/#general-information","text":"","title":"General Information"},{"location":"mining/pool_setup_guide/#repository-information","text":"The following repositories hold the required programs to run a pool: Repository Tools packetcrypt_rs: https://github.com/cjdelisle/packetcrypt_rs AnnHandler, Blkminer, AnnMiner PacketCrypt: https://github.com/cjdelisle/PacketCrypt/ Master, Paymaker, BlkHandler pktd: https://github.com/pkt-cash/pktd pktd","title":"Repository Information:"},{"location":"mining/pool_setup_guide/#assumed-network-ranges","text":"In this guide we have two separate networks, the public network (198.51.100.0/24), and local network (10.0.16.0/24) to connect AnnHandlers and BlkMiner. Machine Public Network IP Private Network IP Machine 1 198.51.100.1 10.0.16.1 Machine 2 198.51.100.2 10.0.16.2 Machine 3 198.51.100.3 10.0.16.3 Machine 4 198.51.100.4 10.0.16.4 Machine 5 X 10.0.16.5 Machine 6 X 10.0.16.6","title":"Assumed network Ranges:"},{"location":"mining/pool_setup_guide/#assumed-port-ranges","text":"Service Machine Port/Port Ranges Master Machine 2 8080 Paymaker Machine 2 8081 BlkHandlers Machine 2 8100-8200 AnnHandlers Machine 3 & 4 80","title":"Assumed Port Ranges:"},{"location":"mining/pool_setup_guide/#installation","text":"","title":"Installation"},{"location":"mining/pool_setup_guide/#machine-1","text":"","title":"Machine 1"},{"location":"mining/pool_setup_guide/#pktd-node","text":"150GB of storage is required at a minimum to run the pktd node. Recommended size is around 250GB of NVMe storage. Install Golang sudo add-apt-repository ppa:longsleep/golang-backports sudo apt update sudo apt install golang-go Install git sudo apt install git Install the pktd node git clone --branch develop https://github.com/pkt-cash/pktd cd pktd ./do The output should show the following: Everything looks good - use ./bin/pktd to launch","title":"PKTD node:"},{"location":"mining/pool_setup_guide/#machine-2","text":"","title":"Machine 2"},{"location":"mining/pool_setup_guide/#master-paymaker-blkhandler","text":"Install the required tools: cd ~ sudo add-apt-repository universe sudo apt install git sudo apt install make sudo apt install npm sudo npm cache clean -f sudo npm install -g n sudo n stable Restart your shell ### Add here how to get latest stable version of node Clone the source code: git clone --branch master https://github.com/cjdelisle/PacketCrypt Build the PacketCrypt code cd PacketCrypt npm install","title":"Master | Paymaker | BlkHandler:"},{"location":"mining/pool_setup_guide/#machine-4-6","text":"","title":"Machine 4 - 6"},{"location":"mining/pool_setup_guide/#blkminer-annhandler-annminer","text":"Install the Required tools: sudo apt install gcc git sudo apt install curl curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh Clone packetcrypt_rs git clone --branch develop https://github.com/cjdelisle/packetcrypt_rs Compile PacketCrypt cd packetcrypt_rs ~/.cargo/bin/cargo build --release --features jemalloc","title":"BlkMiner | AnnHandler | AnnMiner:"},{"location":"mining/pool_setup_guide/#config-of-pooljs","text":"Information: pool.js is located at: ~/PacketCrypt/pool.example.js You need to edit this file, then run: cp ~/PacketCrypt/pool.example.js ~/PacketCrypt/pool.js","title":"Config of pool.js"},{"location":"mining/pool_setup_guide/#configprivateseed","text":"Signing of announcements is rarely used, it breaks people mining into multiple pools, and you should set it to null unless \"you know what you're doing\" This seed is used for deriving keys which will be used for signing announcements. Setting this value to an alphanumeric value e.g oHk8TXpbtRRZGtaYYMnIFAzYMrVh6vA8XzKWWXcKbzCThuFLIJ234bHN5peddQFzR2TtQyo58gcFRP7bKg9BeXZirSqp9gVpjBWp In general, this value should be set to the null, as signing announcements is rarely used, and breaks Announcement mining with multiple pools if you have your pool externally accessable, and should only be set if you have a strong understanding and knowledge of what you are doing. config.privateSeed = null If you aren't bothered by, or don't require your announcements to be signed .","title":"config.privateSeed"},{"location":"mining/pool_setup_guide/#configpaymakerhttppasswd","text":"Anyone who has this password can make http posts to the paymaker (claim that shares were won) You should make this random and also firewall the paymaker from the public. The upload will be done using Authorization Basic with a username of \"x\" and this as the password config.paymakerHttpPasswd = 'anyone with this password can post results to the paymaker'; You can put the paymaker behind an http proxy if you wish.","title":"config.paymakerHttpPasswd"},{"location":"mining/pool_setup_guide/#configmasterurl","text":"This is used by the paymaker and block handler when running them with pool.js, it is used to resolve where the master is. You can either set this as a locally host or put your master behind a nginx proxy config.masterUrl = 'http://localhost:8080'; or if you have your instance public, and you want to have it be resolvable publically, replace the url with your own. config.masterUrl = 'http://pool.pktpool.io';","title":"config.masterUrl"},{"location":"mining/pool_setup_guide/#configrpc","text":"The username and password set here, should be the same username and password used at the end of this guide for when you configure the pktd service. user: 'x', pass: 'x',","title":"config.rpc"},{"location":"mining/pool_setup_guide/#configannhandlers","text":"Information: config.annHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. As the AnnHandler will be run on the same machine as the BlkMiner you need to make sure there are no over-lapping port bindings. If you plan to allow external AnnMiners (AnnMiners not on your LAN to mine against your pool, the url's placed in the AnnHandlers list, should be externally resolvable. The address that is advertized for accessing this ann handler (external address) If running locally use: url: 'http://10.0.16.3:8081','http://10.0.16.4:8081' If allowing external annminers use a resolved address such as: url: 'http://ann1.pktpool.io','http://ann2.pktpool.io' Replace the url with your own.","title":"config.annHandlers"},{"location":"mining/pool_setup_guide/#configblkhandlers","text":"Information: config.blkHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. BlockHandlers are low-effort high-volume single-threaded workers. What address should be advertized for accessing this BlkHander, again make sure there are no overlapping ports. If you are wanting to support external blockminers, this address should be externally resolvable url: 'http://localhost:8100', This is the port that the blkHandler will bind to. port: 8082, This is the host that the blkHandler will bind to. host: '::', This is how many requests a blkHandler can queue before the handler starts rejecting requests maxConnections: 50, root: config","title":"config.blkHandlers"},{"location":"mining/pool_setup_guide/#configmaster","text":"Which port to run the master on port: 8080, What address to bind to, set to localhost if proxying host: '::', Minimum work for an announcement. This number is effectively a bandwidth divisor, every time you double this number you will reduce your bandwidth by a factor of two. annMinWork: Util.annWorkToTarget(128), Average number of shares per block, reducing this number will reduce load on your block handlers, but increasing it will allow payment to be spread more evenly between block miners. This wants to be set to a higher number than one, for the purpose of constantly testing that the block miners are making valid shares. You may have a block miner sitting for hours without a share and then when it wins one, it can become invalid because of misconfiguration shareWorkDivisor: 4, Which versions of announcements we will accept annVersions: [1], Request that ann miners mine announcements that are this many blocks old. Announcements contain a commitment of the most recent block hash but they need 3 blocks to \"mature\" before they can be used The point of this is so that PacketCrypt is about bandwidth, not latency. But there is a risk: If there is a surge then you are going to be starved for announcements When you are starved, you will have few usable anns which causes a slow-down in mining and the announcements which are being submitted are not usable. When you win a few blocks, those announcements become usable and you surge, which causes you to go back into starvation again. This should be set to either: 0 Which means the announcements you are receiving are used instantly 3 Which means you are waiting for the announcements to mature before using them. If running your own AnnMiners, it is advisable to set this to 0, and add the --mineold 3 to some of your AnnMiner startups on the CLI. This helps to keep a balance between keeping your pool as powerful as possible, along with having AnnMiners to help out in the case of a starvation mineOldAnns: 0,","title":"config.master"},{"location":"mining/pool_setup_guide/#configpaymaker","text":"How the miners should access the paymaker (external address), replace the url with your own. url: 'pool.pktpool.io', Which port to run the paymaker on port: 8081, What address to bind to, set to localhost if proxying host: '::', Seconds between sending updates to pktd. If this set to zero, the payMaker will accept log uploads but will not send any changes of payout data to pktd. updateCycle: 120, updateCycle: 0 to disable How many seconds backward to keep history in memory historyDepth: 60 * 60 * 24 * 30, Maximum number of simultanious connections to accept before sending 500 errors maxConnections: 200,","title":"config.payMaker"},{"location":"mining/pool_setup_guide/#anncompressor","text":"Store data in 1 minute aggregations timespanMs: 1000 * 60, Allow data to be submitted to any of the last 10 aggregations slotsToKeepEvents: 10, What fraction of the payout to pay to block miners (the rest will be paid to ann miners) ( Pay per last N shares ) blockPayoutFraction: 0.5, What percent of the total winnings should be taken for pool management poolFee: 0.40, The address which should be paid the pool fee poolFeeAddress: \"pkt1qyc9dkhca7uc84zn3vlgd0h0fxr3twwn34qgeqe\", This constant will affect how far back into history we pay our announcement miners ( Pay per last N shares ) pplnsAnnConstantX: 0.125, This constant will affect how far back into history we pay our block miners ( Pay per last N shares ) pplnsBlkConstantX: 2, When there are not enough shares to fairly spread out the winnings, pay what is left over to this address. defaultAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\", When something goes wrong, direct pktd to send all coins here, if this is different from the defaultAddress then it is possible to account for and pay out to the miners later when the problem is fixed. errorAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\",","title":"annCompressor"},{"location":"mining/pool_setup_guide/#config-of-pooltoml","text":"Information: - pool.example.toml is located at: ~/packetcrypt_rs/pool.example.toml - You need to edit this file, then run: ~/packetcrypt_rs/pool.example.toml ~/packetcrypt_rs/pool.toml Password used by your paymaker to post logs for payment, the same as config.paymakerHttpPasswd paymaker_http_password = \"you'll want this to be a secret\" URL of the pool master, used for getting configuration and work, the same as: Replace the url with your own. master_url = \"http://pool.pktpool.io\"","title":"Config of pool.toml"},{"location":"mining/pool_setup_guide/#ann_handlerah","text":"You can have multiple ann_handlers, you can do this by defining each one such as: [ann_handler.ah0] \"parameters\" [ann_handler.ah1] \"parameters\" These can all be in a single file to be used by each annhandler, when starting the annhandlers, you would start them with on each respective machine: packetcrypt ah --config /path/to/config.toml ah0 packetcrypt ah --config /path/to/config.toml ah1 Number of threads to dedicate to the AnnHandler num_workers = 8 Length of the input queue, keeping this low will create back-pressure and prevent miners from posting too many announcements when the server is in fact overloaded input_queue_len = 256 The public url of the annhandler, this should match what is set in your pool.js Replace the url with your own. public_url = \"http://ann1.pktpool.io/submit\" Bind to this port bind_port = \"198.51.100.3:80\" Bind this port to the sprayer component bind_pvt = \"10.0.16.3:6666\" Set sprayer spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 For Machine 3 you should end up with something like this [ann_handler.ah0] block_miner_passwd = \"no one steals my anns\" skip_check_chance = 0 num_workers = 8 input_queue_len = 512 public_url = \"http://ann1.pktpool.io/submit\" bind_pub = \"198.51.100.3:80\" bind_pvt = \"10.0.16.3:6666\" spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 subscribe_to = [] files_to_keep = 512 The same logic should be followed for Machine 4 and other handlers you may have.","title":"ann_handler.ah*"},{"location":"mining/pool_setup_guide/#note-to-bind-low-ports-with-non-root-user-run","text":"sudo setcap CAP_NET_BIND_SERVICE=+eip $(which packetcrypt)","title":"NOTE: To bind low ports with non-root user run:"},{"location":"mining/pool_setup_guide/#running-manually","text":"","title":"Running Manually"},{"location":"mining/pool_setup_guide/#machine-1_1","text":"Information: These tasks need to be run in the order they are presented PKTD needs to have downloaded the full chain first, you will know when the node is upto date when height is equal to the current block on the explorer It can take 12+ hours to fully sync to the current block height","title":"Machine 1"},{"location":"mining/pool_setup_guide/#pktd","text":"--rpcuser and --rpcpass should match the values set in pool.js under config.rpc ./pktd/bin/pktd --rpcuser=XXX --rpcpass=XXX --miningaddr ","title":"PKTD"},{"location":"mining/pool_setup_guide/#machine-2_1","text":"","title":"Machine 2"},{"location":"mining/pool_setup_guide/#master","text":"node ./pool.js --master","title":"Master"},{"location":"mining/pool_setup_guide/#paymaker","text":"node ./pool.js --payMaker","title":"Paymaker"},{"location":"mining/pool_setup_guide/#blkhandlers","text":"Launch the BlkHandler nodes, specify --blk0 for the first BlkHandler , --blk1 for the second, and so forth cd PacketCrypt node ./pool.js --blk0 node ./pool.js --blk1","title":"BlkHandler(s)"},{"location":"mining/pool_setup_guide/#machine-3","text":"","title":"Machine 3"},{"location":"mining/pool_setup_guide/#annhandler","text":"cd packetcrypt_rs ./target/release/packetcrypt ah --config /path/to/pool.toml ah0","title":"AnnHandler"},{"location":"mining/pool_setup_guide/#machine-4","text":"","title":"Machine 4"},{"location":"mining/pool_setup_guide/#annhandler_1","text":"cd packetcrypt_rs ./targer/release/packetcrypt ah --config /path/to/pool.toml ah1","title":"AnnHandler"},{"location":"mining/pool_setup_guide/#machine-5-and-6","text":"","title":"Machine 5 and 6"},{"location":"mining/pool_setup_guide/#blkminer","text":"--threads is the number of threads you want to dedicate to the Blkminer, the default is to use all available threads. --paymentaddr is the wallet you want your coins to be mined into, it is advisable to not use the electrum wallet for this. --memorysizemb is how much RAM you are allocating to block mining, Ideally you want to set as much as you can. is the masterUrl of your pool cd packetcrypt_rs ./target/release/packetcrypt blk --paymentaddr --threads 80 --memorysizemb 665000 --handlerpass NoOneStealsMyAnns --subscribe 10.0.16.3:6666 --bind 0.0.0.0:6667 --mcast 239.0.1.1","title":"BlkMiner"},{"location":"mining/pool_setup_guide/#nginx-setup-for-allowing-external-annmining","text":"","title":"NGINX Setup (For allowing external AnnMining)"},{"location":"mining/pool_setup_guide/#machine-2_2","text":"Update system and install Nginx sudo apt update sudo apt install nginx Unlink default nginx site unlink /etc/nginx/sites-enabled/default cd /etc/nginx/sites-available Create and edit the reverse-proxy.conf file vim reverse-proxy.conf The config for the services: server { listen 80; listen [::]:80; server_name ; location / { proxy_pass http://localhost:8080/; } } server { listen 80; listen [::]:80; server_name paymaker.pktpool.io; location / { proxy_pass http://localhost:8081/; } } Link new file to sites-enabled ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf Remove default config rm default Check reverse proxy config is correct nginx -t Reload nginx to pick up config changes. sudo systemctl reload nginx","title":"Machine 2"},{"location":"network/open-ecosystem/","text":"An Open Ecosystem \u00b6 The PKT Network fosters an open ecosystem where diverse media platforms, including film, TV, gaming, sports, live streaming, marketplaces, and music, can thrive. This decentralized approach offers platforms and network hub to connect seamlessly with global audiences. This enables content discovery without geographical or regulatory barriers. By leveraging blockchain technology, PKT ensures that all transactions within the network are conducted fairly and transparently. This not only democratizes access to diverse media content but also empowers creators and consumers to interact and transact directly, enhancing the integrity and vibrancy of the digital media landscape. PKT Network is reshaping how media is consumed and monetized worldwide.","title":"An Open Ecosystem"},{"location":"network/open-ecosystem/#an-open-ecosystem","text":"The PKT Network fosters an open ecosystem where diverse media platforms, including film, TV, gaming, sports, live streaming, marketplaces, and music, can thrive. This decentralized approach offers platforms and network hub to connect seamlessly with global audiences. This enables content discovery without geographical or regulatory barriers. By leveraging blockchain technology, PKT ensures that all transactions within the network are conducted fairly and transparently. This not only democratizes access to diverse media content but also empowers creators and consumers to interact and transact directly, enhancing the integrity and vibrancy of the digital media landscape. PKT Network is reshaping how media is consumed and monetized worldwide.","title":"An Open Ecosystem"},{"location":"network/what-is-network/","text":"What is PKT Network? \u00b6 The PKT Network is a decentralized media network. It is built to enable global media distribution with integrated payments, censorship-resistance and no geo-restrictions. The network is powered by the cjdns mesh networking protocol. The PKT Network represents a transformative approach to media distribution, fundamentally redefining how content is shared and monetized across the globe. As a decentralized media network, PKT leverages the robust cjdns mesh networking protocol to facilitate a secure, censorship-resistant platform that is free from geo-restrictions and censorship. This design ensures that creators and audiences can share and consume media content without interference from centralized authorities or limitations imposed by traditional media distribution channels. At the heart of PKT Network's innovation is its DePIN (Decentralized Physical Infrastructure) model. This incentivizes individuals across the world to contribute to the network's infrastructure. This community-driven approach not only decentralizes the control and maintenance of the network but also enhances its resilience and scalability. Contributors are rewarded through PKT\u2019s Stake-to-Earn protocol, where participants lock up their PKT tokens and pair with infrastructure nodes that support network operations. In return, operators are rewarded based on the duration and amount of their stake. This incentivization scheme aligns individual interests with the overall health and growth of the network, promoting long-term commitment and stability. By integrating direct payment functionalities, PKT Network allows media creators to receive compensation directly from their audience, bypassing traditional payment processors and minimizing transaction fees. This integration of decentralized media distribution with seamless payment solutions empowers creators, enriches the user experience, and paves the way for a new era of media consumption that is truly global, open, and unrestricted.","title":"What is PKT Network"},{"location":"network/what-is-network/#what-is-pkt-network","text":"The PKT Network is a decentralized media network. It is built to enable global media distribution with integrated payments, censorship-resistance and no geo-restrictions. The network is powered by the cjdns mesh networking protocol. The PKT Network represents a transformative approach to media distribution, fundamentally redefining how content is shared and monetized across the globe. As a decentralized media network, PKT leverages the robust cjdns mesh networking protocol to facilitate a secure, censorship-resistant platform that is free from geo-restrictions and censorship. This design ensures that creators and audiences can share and consume media content without interference from centralized authorities or limitations imposed by traditional media distribution channels. At the heart of PKT Network's innovation is its DePIN (Decentralized Physical Infrastructure) model. This incentivizes individuals across the world to contribute to the network's infrastructure. This community-driven approach not only decentralizes the control and maintenance of the network but also enhances its resilience and scalability. Contributors are rewarded through PKT\u2019s Stake-to-Earn protocol, where participants lock up their PKT tokens and pair with infrastructure nodes that support network operations. In return, operators are rewarded based on the duration and amount of their stake. This incentivization scheme aligns individual interests with the overall health and growth of the network, promoting long-term commitment and stability. By integrating direct payment functionalities, PKT Network allows media creators to receive compensation directly from their audience, bypassing traditional payment processors and minimizing transaction fees. This integration of decentralized media distribution with seamless payment solutions empowers creators, enriches the user experience, and paves the way for a new era of media consumption that is truly global, open, and unrestricted.","title":"What is PKT Network?"},{"location":"pktd/","text":"Pktd \u00b6 Pktd is the PKT full node blockchain software. It is a fork of btcd, the golang bitcoin instance. Running a full node \u00b6 If you want to run a full node in the PKT network, you can do so by downloading pktd and compiling it on a Linux or Mac server. Follow the process in Installation and the simply type ./bin/pktd and it will start up and begin syncing the chain and helping verify the PKT network. NOTE : Running a full node requires over 40 GB of disk space to store the blockchain and is not necessary for participating in the project. If you just want to make a wallet, see PKT Electrum (gui) or PKTWallet (command line) wallets. Installation \u00b6 Install golang \u00b6 First, you need to install the go programming language, go to the golang website and learn how to install it on your system: https://golang.org/doc/install Install git \u00b6 Next you will need to make sure you have git installed. The first thing to do is check whether you have it installed already: git version If it prints something like git version 2.21.1 you\u2019re in luck and you can continue. If it prints something more like command not found: git then you\u2019ll need to install it. Installation will depend on your system, for debian/ubuntu like systems you will want sudo apt install git and for OSX with homebrew, you\u2019ll want brew install git . Install the components \u00b6 Once you have golang and git fully installed and set up, you can use the following commands to install pktd, pktwallet and pktctl. git clone https://github.com/pkt-cash/pktd cd pktd ./do If you see something like: Everything looks good at the end of typing ./do then you should be ready to start using pktd.","title":"Pktd"},{"location":"pktd/#pktd","text":"Pktd is the PKT full node blockchain software. It is a fork of btcd, the golang bitcoin instance.","title":"Pktd"},{"location":"pktd/#running-a-full-node","text":"If you want to run a full node in the PKT network, you can do so by downloading pktd and compiling it on a Linux or Mac server. Follow the process in Installation and the simply type ./bin/pktd and it will start up and begin syncing the chain and helping verify the PKT network. NOTE : Running a full node requires over 40 GB of disk space to store the blockchain and is not necessary for participating in the project. If you just want to make a wallet, see PKT Electrum (gui) or PKTWallet (command line) wallets.","title":"Running a full node"},{"location":"pktd/#installation","text":"","title":"Installation"},{"location":"pktd/#install-golang","text":"First, you need to install the go programming language, go to the golang website and learn how to install it on your system: https://golang.org/doc/install","title":"Install golang"},{"location":"pktd/#install-git","text":"Next you will need to make sure you have git installed. The first thing to do is check whether you have it installed already: git version If it prints something like git version 2.21.1 you\u2019re in luck and you can continue. If it prints something more like command not found: git then you\u2019ll need to install it. Installation will depend on your system, for debian/ubuntu like systems you will want sudo apt install git and for OSX with homebrew, you\u2019ll want brew install git .","title":"Install git"},{"location":"pktd/#install-the-components","text":"Once you have golang and git fully installed and set up, you can use the following commands to install pktd, pktwallet and pktctl. git clone https://github.com/pkt-cash/pktd cd pktd ./do If you see something like: Everything looks good at the end of typing ./do then you should be ready to start using pktd.","title":"Install the components"},{"location":"pktd/migrating_from_electrum/","text":"Migrating from Electrum to PKTWallet \u00b6 If you have an electrum based wallet which becomes overloaded from too many transactions (e.g. from mining directly into it), then you will need to migrate your keys to a pktwallet instance. Step 1: Setup pktwallet \u00b6 Follow the instructions in pktwallet to get your wallet up and running Step 2: Export your keys \u00b6 In Electrum, click Wallet -> Private Keys -> Export You will be prompted to enter your Electrum wallet password, then a window should appear showing your keys KEEP THESE KEYS SECRET Find an address which you want to migrate and copy the key with that address Do not copy the part which says p2wpkh: , just the letters after it The key will look sometihng like this: ci2TBp2HTWtyMQtizWMuugHxG6lNpInA1bSpLIWzjJS2AI8ObwV5 Step 3: Import key to pktwallet \u00b6 In a terminal window, run pktctl --wallet getbalance to verify that your wallet is working Unlock your wallet using pktctl --wallet walletpassphrase 1000000 Type pktctl --wallet importprivkey You should see the address printed on the screen Importing more keys \u00b6 When you import a key, it starts a rescan of the chain automatically, in order to import more you need to stop pktctl --wallet stopresync to stop Speed things up \u00b6 If you know exactly when an address was paid, you can speed up the import by only rescanning blocks where it might have been paid. For example if you are sure that the address was not paid earlier than block number 600000 you can do the following: pktctl --wallet stopresync pktctl --wallet resync 600000 100000000 Check that it's working \u00b6 It's recommended that you run pktwallet with -d debug flag in order to be able to see the debug logs. When you are resyncing you should see log lines like the following: 1609188780 [DBG] wallet.go:2817 Rescan cycle [620100] 1609188781 [DBG] wallet.go:2817 Rescan cycle [620200] 1609188782 [DBG] wallet.go:2817 Rescan cycle [620300] 1609188783 [DBG] wallet.go:2817 Rescan cycle [620400] The number if the block number which is being scanned. Troubleshooting \u00b6 ErrBirthdayBlockNotSet: birthday block not set Your wallet is not synced yet, wait for it to become synced","title":"Migrating from Electrum to PKTWallet"},{"location":"pktd/migrating_from_electrum/#migrating-from-electrum-to-pktwallet","text":"If you have an electrum based wallet which becomes overloaded from too many transactions (e.g. from mining directly into it), then you will need to migrate your keys to a pktwallet instance.","title":"Migrating from Electrum to PKTWallet"},{"location":"pktd/migrating_from_electrum/#step-1-setup-pktwallet","text":"Follow the instructions in pktwallet to get your wallet up and running","title":"Step 1: Setup pktwallet"},{"location":"pktd/migrating_from_electrum/#step-2-export-your-keys","text":"In Electrum, click Wallet -> Private Keys -> Export You will be prompted to enter your Electrum wallet password, then a window should appear showing your keys KEEP THESE KEYS SECRET Find an address which you want to migrate and copy the key with that address Do not copy the part which says p2wpkh: , just the letters after it The key will look sometihng like this: ci2TBp2HTWtyMQtizWMuugHxG6lNpInA1bSpLIWzjJS2AI8ObwV5","title":"Step 2: Export your keys"},{"location":"pktd/migrating_from_electrum/#step-3-import-key-to-pktwallet","text":"In a terminal window, run pktctl --wallet getbalance to verify that your wallet is working Unlock your wallet using pktctl --wallet walletpassphrase 1000000 Type pktctl --wallet importprivkey You should see the address printed on the screen","title":"Step 3: Import key to pktwallet"},{"location":"pktd/migrating_from_electrum/#importing-more-keys","text":"When you import a key, it starts a rescan of the chain automatically, in order to import more you need to stop pktctl --wallet stopresync to stop","title":"Importing more keys"},{"location":"pktd/migrating_from_electrum/#speed-things-up","text":"If you know exactly when an address was paid, you can speed up the import by only rescanning blocks where it might have been paid. For example if you are sure that the address was not paid earlier than block number 600000 you can do the following: pktctl --wallet stopresync pktctl --wallet resync 600000 100000000","title":"Speed things up"},{"location":"pktd/migrating_from_electrum/#check-that-its-working","text":"It's recommended that you run pktwallet with -d debug flag in order to be able to see the debug logs. When you are resyncing you should see log lines like the following: 1609188780 [DBG] wallet.go:2817 Rescan cycle [620100] 1609188781 [DBG] wallet.go:2817 Rescan cycle [620200] 1609188782 [DBG] wallet.go:2817 Rescan cycle [620300] 1609188783 [DBG] wallet.go:2817 Rescan cycle [620400] The number if the block number which is being scanned.","title":"Check that it's working"},{"location":"pktd/migrating_from_electrum/#troubleshooting","text":"ErrBirthdayBlockNotSet: birthday block not set Your wallet is not synced yet, wait for it to become synced","title":"Troubleshooting"},{"location":"pktd/pktwallet/","text":"pktwallet \u00b6 The command line PKT wallet First Time Installation and Launching \u00b6 Download pktd \u00b6 Microsoft Windows \u00b6 Download the most recent zip archive suffixed with -windows.zip available from pktd releases page For example: pktd-v1.4.0-windows.zip Unarchive the content of the zip file Open the command prompt and navigate to the bin directory in the extracted archive For Example: cd Downloads\\pktd*\\bin Follow the instructions below but In place of ./bin/pktwallet , use pktwallet.exe In place of ./bin/pktctl , use pktctl.exe MacOS and Linux \u00b6 Download one of the most recent packages available for Linux or MacOS from pktd releases page For example, for pktd-v1.4.0 release: For MacOS , after having downloaded pktd-v1.4.0-macos.pkg , install pktwallet and other utilities by clicking on the package icon in the Finder. For Linux , after having downloaded one of the following packages: pktd-v1.4.0-linux.deb (Debian or Ubuntu) pktd-v1.4.0-linux.rpm (Fedora or RedHat) pktd AUR package (Arch linux or Manjaro), install pktwallet and other utilities by clicking on the appropriate package icon or running an installation command Creating a New Wallet \u00b6 To create a new PKT wallet, use the pktwallet --create command: ./bin/pktwallet --create You will be prompted to follow a few steps. Make sure you write your seed words on paper so that you can recover your funds even if your computer is damaged. Do not skip this step. You will thank yourself later. Keep it secret. Keep it safe. Launching pktwallet \u00b6 After creating your wallet, you can launch pktwallet with: ./bin/pktwallet Watch the output from the logs and when you see a log line like this: 1608294386 [INF] headerlogger.go:64 Processed 1 block in the last 24.82s (height 702781, 2020-12-18 13:26:01 +0100 CET) Compare the height number in the log line (e.g. 702781) to the number in the pkt block explorer to see when your wallet is up to date. A complete sync from a new installation can take 12+ hours. During this time, the balance in your wallet will not be accurate and you will be unable to transact. You may, however, proceed with creating an address while syncing, as detailed below. Creating a New PKT Address \u00b6 While pktwallet is running in the background (or in another terminal), use the following command: ./bin/pktctl --wallet getnewaddress You should see a series of numbers and letters beginning with pkt1 . This is your newly created PKT address which you can use for receiving coins. If you need to view it after creation, the address, along with the balance, can be seen in the output from running: ./bin/pktctl --wallet getaddressbalances 1 1 NOTE : Every time you use getnewaddress , the address you receive must be remembered by pktwallet forever. So, only use it when you actually need an address. How to install the PKT World Wallet (Windows only) \u00b6 Download the PKT World Wallet Follow the installation instructions Launch wallet Create a new wallet Enter a wallet passphrase. Make sure to save your passphrase in a safe place. Write down your wallet seed. It is very important to keep your seed in a safe place To generate a new PKT address, click Wallet. Generate new address To begin mining using the PKT World Wallet, click Miner Start Mining How to install a CLI Wallet \u00b6 If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Copy down your seed. If your wallet is destroyed, you can recover it as long as you have this seed and your wallet passphrase. Please keep in mind that anyone who has access to the seed only needs to guess your wallet passphrase to access your funds. Follow the instructions to finalize wallet How to start up CLI Wallet \u00b6 Open terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --wallet (whatever you named your wallet) i.e wallet personal How to create new PKT wallet address \u00b6 Make sure you have the CLI wallet running in a separate terminal window Open Terminal Enter command: $ cd pktd Enter command: $ ~/pktd/bin/pktctl --wallet getnewaddress Save your address in a safe place that is easily accessible How to send PKT from your CLI wallet \u00b6 Make sure you have the CLI wallet running in a separate terminal window Command click on file to open Open terminal Enter command: $ cd pktd Enter Command: $ ~/pktd/pktd/bin/pktctl --wallet sendfrom pkt1xxxxx $$$$ '[\"pkt1xxxxx\"]' xxxxx = PKT address you want to send from and to $$$$ = amount of pkt you want to send How to install a CLI Wallet from Seed \u00b6 If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Command click on file to open Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Enter seed Start up wallet (see instructions above) Open new terminal window Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktctl --wallet getnewaddress repeat until you find receive (each of) your recovered wallet address(es) Enter the command: $ ~/pktd/bin/pktctl --wallet resync This will resync the wallet to the blockchain (takes at least 24 hours) Enter the command: $ ~/pktd/bin/pktctl --wallet getaddressbalances 1 1 this is how you view all your (sub)wallet balances Using Your Wallet \u00b6 pktctl is the program that interfaces with a running pktwallet instance. pktctl functions will not work if pktwallet is not running and accessible. Some functions will be limited until pktwallet is fully synchronized. Some functions require the wallet being unlocked before executing. Getting Your Balance \u00b6 You can check your current PKT balance using pktctl or you can check the balances of each of your addresses if you have more than one. ./bin/pktctl --wallet getbalance or: ./bin/pktctl --wallet getaddressbalances getaddressbalances by itself will not show 0 balance addresses you may have created. To show these addresses, use: ./bin/pktctl --wallet getaddressbalances 1 1 For more explanation of the meaning of the output of getaddressbalances , use: ./bin/pktctl --wallet help getaddressbalances Unlocking Wallet \u00b6 While many functions can be performed while the wallet is locked, other functions first require the wallet to be unlocked, including sending PKT and folding. The passphrase used to unlock the wallet was set when creating the wallet. To unlock your wallet for 120 seconds (this can be changed to your liking), use: ./bin/pktctl --wallet walletpassphrase 120 To keep your wallet unlocked, use: ./bin/pktctl --wallet walletpassphrase 0 If using 0 as in the previous example to keep your wallet indefinitely unlocked, it will stay unlocked until you either restart pktwallet or run: ./bin/pktctl --wallet walletlock NOTE: Special characters (e.g., !, #, & *) in your passphrase may be incorrectly interpreted by your shell. You may need to wrap your passphrase in quotes. ./bin/pktctl --wallet walletpassphrase 'suP3r_S3cReT^P@s5W0Rd!' 120 Sending PKT \u00b6 You can send PKT using the sendtoaddress command, but first you must unlock your wallet for sending, as shown in the previous step. To send cjd a 10 PKT tip: ./bin/pktctl --wallet sendtoaddress pkt1qt8xe7dwpelngtcpsgn5nkj3pwwdm7gf3l4auax 10 Sending PKT from Specific Address \u00b6 pktwallet gives you control over which addresses are used for making a payment. This means you can keep different PKT in your wallet separate, for example separating business transactions from personal transactions. NOTE : PKT is not a \"privacy coin\", so transactions are still shown in the blockchain like with Bitcoin. Unlock wallet: ./bin/pktctl --wallet walletpassphrase 60 Send 10 PKT to \"their address\" from \"your address\": ./bin/pktctl --wallet sendfrom 10 '[\" \"]' Notice the '[\" . This is because the last argument is actually a quoted JSON array . This means you can use multiple addresses as the source of a payment. For example: ./bin/pktctl --wallet sendfrom 10 '[\" \", \" \"]' Windows users require unique formatting for command prompt: pktctl.exe --wallet sendfrom 10 [\\\" \\\"] Sweeping an Address \u00b6 With pktwallet, sending 0 PKT has special significance in that it will send \"as much PKT as possible\". To sweep address into , you can use the following command: ./bin/pktctl --wallet sendfrom 0 '[\" \"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\" \\\"] NOTE : Sweeping an address will send as much PKT as possible , which is not necessarily all PKT in that address. You may need to sweep multiple times before the address is empty. Folding Coins \u00b6 If you are the recipient of many transactions, such as is the case in mining, you may not be able to spend all of them at once. This is similar to someone who is paid in pennies having a difficult time using the pennies to buy a car. To solve this issue, you can consolidate all of the coins which were paid to you by folding . Folding is sweeping an address to itself . Just like in sweeping, you may need to run the command many times before you have completely folded. See FAQs for more detail. For example: ./bin/pktctl --wallet sendfrom 0 '[\"\"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\"\\\"] Alternative GUI Wallets \u00b6 Electrum for PKT (Windows, MacOS, Linux) NOTE: Electrum is not appropriate for mining. Do NOT mine into an electrum wallet! PKT World Wallet (Windows) Zulu Wallet (MacOS) FAQs \u00b6 I have several machines mining, do I need the wallet running on each machine? \u00b6 NO! In fact, the wallet doesn't need to be running at all to mine, but you do need to ensure you have control of the address you are mining to. Should I leave pktwallet running? \u00b6 It is not a requirement to have pktwallet running to mine. However, if you leave it running, it will stay synced. This will save time when performing pktctl functions, such as folding and sending coins. If pktwallet has not been running for some time, it will need time to sync up to the current block from the time it last ran. As a safety precaution, don't forget to lock your wallet if you do keep it running. How often should I fold and why? \u00b6 The purpose of folding is to turn all your small payments (such as from mining) into quickly and easily spendable coins. If you are multi-pool mining and have rewards in every block, you will have roughly 1440 unconsolidated transactions per day - one for each block at a rate of ~ 1 block/min. If you do not fold these transactions, after awhile you'll have a huge amount of transactions to process if you wish to send the sum or portion thereof of these smaller transactions. So, while folding isn't required and will have no impact on mining if you do or do not, you're doing yourself a favor later by keeping the transactions as consolidated as possible. It is typical to fold as much as possible every day or every few days when you think about it, depending on your use case. It can also be scripted. Note that folding is a transaction itself. Depending on how much you have to fold, you may need to run the command many times. You also may need to wait for coins to confirm before folding more. Once the folding command fails or you see a very low number in the outputcount field from running ./bin/pktctl --wallet getaddressbalances 1 1 or on PKT block explorer under Unconsolidated Txns, you have successfully folded the best you can for that point in time.","title":"pktwallet"},{"location":"pktd/pktwallet/#pktwallet","text":"The command line PKT wallet","title":"pktwallet"},{"location":"pktd/pktwallet/#first-time-installation-and-launching","text":"","title":"First Time Installation and Launching"},{"location":"pktd/pktwallet/#download-pktd","text":"","title":"Download pktd"},{"location":"pktd/pktwallet/#microsoft-windows","text":"Download the most recent zip archive suffixed with -windows.zip available from pktd releases page For example: pktd-v1.4.0-windows.zip Unarchive the content of the zip file Open the command prompt and navigate to the bin directory in the extracted archive For Example: cd Downloads\\pktd*\\bin Follow the instructions below but In place of ./bin/pktwallet , use pktwallet.exe In place of ./bin/pktctl , use pktctl.exe","title":"Microsoft Windows"},{"location":"pktd/pktwallet/#macos-and-linux","text":"Download one of the most recent packages available for Linux or MacOS from pktd releases page For example, for pktd-v1.4.0 release: For MacOS , after having downloaded pktd-v1.4.0-macos.pkg , install pktwallet and other utilities by clicking on the package icon in the Finder. For Linux , after having downloaded one of the following packages: pktd-v1.4.0-linux.deb (Debian or Ubuntu) pktd-v1.4.0-linux.rpm (Fedora or RedHat) pktd AUR package (Arch linux or Manjaro), install pktwallet and other utilities by clicking on the appropriate package icon or running an installation command","title":"MacOS and Linux"},{"location":"pktd/pktwallet/#creating-a-new-wallet","text":"To create a new PKT wallet, use the pktwallet --create command: ./bin/pktwallet --create You will be prompted to follow a few steps. Make sure you write your seed words on paper so that you can recover your funds even if your computer is damaged. Do not skip this step. You will thank yourself later. Keep it secret. Keep it safe.","title":"Creating a New Wallet"},{"location":"pktd/pktwallet/#launching-pktwallet","text":"After creating your wallet, you can launch pktwallet with: ./bin/pktwallet Watch the output from the logs and when you see a log line like this: 1608294386 [INF] headerlogger.go:64 Processed 1 block in the last 24.82s (height 702781, 2020-12-18 13:26:01 +0100 CET) Compare the height number in the log line (e.g. 702781) to the number in the pkt block explorer to see when your wallet is up to date. A complete sync from a new installation can take 12+ hours. During this time, the balance in your wallet will not be accurate and you will be unable to transact. You may, however, proceed with creating an address while syncing, as detailed below.","title":"Launching pktwallet"},{"location":"pktd/pktwallet/#creating-a-new-pkt-address","text":"While pktwallet is running in the background (or in another terminal), use the following command: ./bin/pktctl --wallet getnewaddress You should see a series of numbers and letters beginning with pkt1 . This is your newly created PKT address which you can use for receiving coins. If you need to view it after creation, the address, along with the balance, can be seen in the output from running: ./bin/pktctl --wallet getaddressbalances 1 1 NOTE : Every time you use getnewaddress , the address you receive must be remembered by pktwallet forever. So, only use it when you actually need an address.","title":"Creating a New PKT Address"},{"location":"pktd/pktwallet/#how-to-install-the-pkt-world-wallet-windows-only","text":"Download the PKT World Wallet Follow the installation instructions Launch wallet Create a new wallet Enter a wallet passphrase. Make sure to save your passphrase in a safe place. Write down your wallet seed. It is very important to keep your seed in a safe place To generate a new PKT address, click Wallet. Generate new address To begin mining using the PKT World Wallet, click Miner Start Mining","title":"How to install the PKT World Wallet (Windows only)"},{"location":"pktd/pktwallet/#how-to-install-a-cli-wallet","text":"If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Copy down your seed. If your wallet is destroyed, you can recover it as long as you have this seed and your wallet passphrase. Please keep in mind that anyone who has access to the seed only needs to guess your wallet passphrase to access your funds. Follow the instructions to finalize wallet","title":"How to install a CLI Wallet"},{"location":"pktd/pktwallet/#how-to-start-up-cli-wallet","text":"Open terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --wallet (whatever you named your wallet) i.e wallet personal","title":"How to start up CLI Wallet"},{"location":"pktd/pktwallet/#how-to-create-new-pkt-wallet-address","text":"Make sure you have the CLI wallet running in a separate terminal window Open Terminal Enter command: $ cd pktd Enter command: $ ~/pktd/bin/pktctl --wallet getnewaddress Save your address in a safe place that is easily accessible","title":"How to create new PKT wallet address"},{"location":"pktd/pktwallet/#how-to-send-pkt-from-your-cli-wallet","text":"Make sure you have the CLI wallet running in a separate terminal window Command click on file to open Open terminal Enter command: $ cd pktd Enter Command: $ ~/pktd/pktd/bin/pktctl --wallet sendfrom pkt1xxxxx $$$$ '[\"pkt1xxxxx\"]' xxxxx = PKT address you want to send from and to $$$$ = amount of pkt you want to send","title":"How to send PKT from your CLI wallet"},{"location":"pktd/pktwallet/#how-to-install-a-cli-wallet-from-seed","text":"If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Command click on file to open Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Enter seed Start up wallet (see instructions above) Open new terminal window Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktctl --wallet getnewaddress repeat until you find receive (each of) your recovered wallet address(es) Enter the command: $ ~/pktd/bin/pktctl --wallet resync This will resync the wallet to the blockchain (takes at least 24 hours) Enter the command: $ ~/pktd/bin/pktctl --wallet getaddressbalances 1 1 this is how you view all your (sub)wallet balances","title":"How to install a CLI Wallet from Seed"},{"location":"pktd/pktwallet/#using-your-wallet","text":"pktctl is the program that interfaces with a running pktwallet instance. pktctl functions will not work if pktwallet is not running and accessible. Some functions will be limited until pktwallet is fully synchronized. Some functions require the wallet being unlocked before executing.","title":"Using Your Wallet"},{"location":"pktd/pktwallet/#getting-your-balance","text":"You can check your current PKT balance using pktctl or you can check the balances of each of your addresses if you have more than one. ./bin/pktctl --wallet getbalance or: ./bin/pktctl --wallet getaddressbalances getaddressbalances by itself will not show 0 balance addresses you may have created. To show these addresses, use: ./bin/pktctl --wallet getaddressbalances 1 1 For more explanation of the meaning of the output of getaddressbalances , use: ./bin/pktctl --wallet help getaddressbalances","title":"Getting Your Balance"},{"location":"pktd/pktwallet/#unlocking-wallet","text":"While many functions can be performed while the wallet is locked, other functions first require the wallet to be unlocked, including sending PKT and folding. The passphrase used to unlock the wallet was set when creating the wallet. To unlock your wallet for 120 seconds (this can be changed to your liking), use: ./bin/pktctl --wallet walletpassphrase 120 To keep your wallet unlocked, use: ./bin/pktctl --wallet walletpassphrase 0 If using 0 as in the previous example to keep your wallet indefinitely unlocked, it will stay unlocked until you either restart pktwallet or run: ./bin/pktctl --wallet walletlock NOTE: Special characters (e.g., !, #, & *) in your passphrase may be incorrectly interpreted by your shell. You may need to wrap your passphrase in quotes. ./bin/pktctl --wallet walletpassphrase 'suP3r_S3cReT^P@s5W0Rd!' 120","title":"Unlocking Wallet"},{"location":"pktd/pktwallet/#sending-pkt","text":"You can send PKT using the sendtoaddress command, but first you must unlock your wallet for sending, as shown in the previous step. To send cjd a 10 PKT tip: ./bin/pktctl --wallet sendtoaddress pkt1qt8xe7dwpelngtcpsgn5nkj3pwwdm7gf3l4auax 10","title":"Sending PKT"},{"location":"pktd/pktwallet/#sending-pkt-from-specific-address","text":"pktwallet gives you control over which addresses are used for making a payment. This means you can keep different PKT in your wallet separate, for example separating business transactions from personal transactions. NOTE : PKT is not a \"privacy coin\", so transactions are still shown in the blockchain like with Bitcoin. Unlock wallet: ./bin/pktctl --wallet walletpassphrase 60 Send 10 PKT to \"their address\" from \"your address\": ./bin/pktctl --wallet sendfrom 10 '[\" \"]' Notice the '[\" . This is because the last argument is actually a quoted JSON array . This means you can use multiple addresses as the source of a payment. For example: ./bin/pktctl --wallet sendfrom 10 '[\" \", \" \"]' Windows users require unique formatting for command prompt: pktctl.exe --wallet sendfrom 10 [\\\" \\\"]","title":"Sending PKT from Specific Address"},{"location":"pktd/pktwallet/#sweeping-an-address","text":"With pktwallet, sending 0 PKT has special significance in that it will send \"as much PKT as possible\". To sweep address into , you can use the following command: ./bin/pktctl --wallet sendfrom 0 '[\" \"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\" \\\"] NOTE : Sweeping an address will send as much PKT as possible , which is not necessarily all PKT in that address. You may need to sweep multiple times before the address is empty.","title":"Sweeping an Address"},{"location":"pktd/pktwallet/#folding-coins","text":"If you are the recipient of many transactions, such as is the case in mining, you may not be able to spend all of them at once. This is similar to someone who is paid in pennies having a difficult time using the pennies to buy a car. To solve this issue, you can consolidate all of the coins which were paid to you by folding . Folding is sweeping an address to itself . Just like in sweeping, you may need to run the command many times before you have completely folded. See FAQs for more detail. For example: ./bin/pktctl --wallet sendfrom 0 '[\"\"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\"\\\"]","title":"Folding Coins"},{"location":"pktd/pktwallet/#alternative-gui-wallets","text":"Electrum for PKT (Windows, MacOS, Linux) NOTE: Electrum is not appropriate for mining. Do NOT mine into an electrum wallet! PKT World Wallet (Windows) Zulu Wallet (MacOS)","title":"Alternative GUI Wallets"},{"location":"pktd/pktwallet/#faqs","text":"","title":"FAQs"},{"location":"pktd/pktwallet/#i-have-several-machines-mining-do-i-need-the-wallet-running-on-each-machine","text":"NO! In fact, the wallet doesn't need to be running at all to mine, but you do need to ensure you have control of the address you are mining to.","title":"I have several machines mining, do I need the wallet running on each machine?"},{"location":"pktd/pktwallet/#should-i-leave-pktwallet-running","text":"It is not a requirement to have pktwallet running to mine. However, if you leave it running, it will stay synced. This will save time when performing pktctl functions, such as folding and sending coins. If pktwallet has not been running for some time, it will need time to sync up to the current block from the time it last ran. As a safety precaution, don't forget to lock your wallet if you do keep it running.","title":"Should I leave pktwallet running?"},{"location":"pktd/pktwallet/#how-often-should-i-fold-and-why","text":"The purpose of folding is to turn all your small payments (such as from mining) into quickly and easily spendable coins. If you are multi-pool mining and have rewards in every block, you will have roughly 1440 unconsolidated transactions per day - one for each block at a rate of ~ 1 block/min. If you do not fold these transactions, after awhile you'll have a huge amount of transactions to process if you wish to send the sum or portion thereof of these smaller transactions. So, while folding isn't required and will have no impact on mining if you do or do not, you're doing yourself a favor later by keeping the transactions as consolidated as possible. It is typical to fold as much as possible every day or every few days when you think about it, depending on your use case. It can also be scripted. Note that folding is a transaction itself. Depending on how much you have to fold, you may need to run the command many times. You also may need to wait for coins to confirm before folding more. Once the folding command fails or you see a very low number in the outputcount field from running ./bin/pktctl --wallet getaddressbalances 1 1 or on PKT block explorer under Unconsolidated Txns, you have successfully folded the best you can for that point in time.","title":"How often should I fold and why?"},{"location":"pktwalletgui/","text":"PKT Wallet MacOS GUI \u00b6 NOTE : The PKT Wallet GUI handles mining income well and is a good wallet for those hoping to hold a copy of the blockchain and to keep ownership of their own keys and passphrases for multiple addresses. First setup \u00b6 MacOS \u00b6 Download pktwallet-(version).dmg Open Finder Double-click on your Downloads folder and find and double-click on pktwallet-(version).dmg to open the disk image A new window will open with the PKT Wallet app, click and drag it into your Applications folder Press Command+Space to open your Spotlight Search and type PKT Wallet, when you see the PKT Wallet app, press the Enter key to open it. The first time PKT Wallet is opened, you will get a popup asking you if you want to open it, click open Continue with Setting up your wallet or Load Existing Wallet From Seed below. Setting up your wallet \u00b6 Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. A video tutorial is available for this method: You will be asked to create a new wallet. Click \"Create Wallet\" Enter passphrase to encrypt your wallet. This passphrase must have upper case and lower case letters and numbers. Retype the passphrase to match and click the \"Enter\" button You will be asked if you want to import an existing seed. Click the \"Continue Without Seed\" button to continue. A 15-word wallet seed will be created for you. Write this seed down. It enables you to open your PKT wallet on another computer or smartphone, for example if your current computer dies. It is advisable to write this on a piece of paper and store it in a safe place. Click \"Open Wallet\" to continue. You will be brought to the main \"Balances\" screen. By default you have no addresses, so you will need to create one. Click the \"Create Address\" button, and then click the \"Generate\" button to generate a new address. The resulting code is the public address which people can pay you at. Click \"Balances\" again to display your balances. By default, accounts with zero PKT will not be displayed unless you click \"Get All Addresses\" Load Existing Wallet From Seed \u00b6 Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. A video tutorial is available for this method: You will be asked to create a new wallet. Click \"Create Wallet\" Enter passphrase to encrypt your wallet. This passphrase must have upper case and lower case letters and numbers. Retype the passphrase to match and click the \"Enter\" button You will be asked if you want to import an existing seed. Type in your wallet seed and any passphrase. Click the \"Continue With Seed\" button to continue. Your 15-word wallet seed will be displayed on the next screen. Write this seed down. It enables you to open your PKT wallet on another computer or smartphone, for example if your current computer dies. It is advisable to write this on a piece of paper and store it in a safe place. If you have a legacy wallet (from versions prior to 1.0.0), you will never be able to retrieve this seed again from the app. Click \"Open Wallet\" to continue. You will be brought to the main \"Balances\" screen. By default you have no addresses, so you will need to create one. Click the \"Create Address\" button, and then click the \"Generate\" button to generate a new address. The resulting code is the public address which people can pay you at. If this wallet previously had a wallet, address is actually an exsting one that has been retrieved, rather than a newly created address. Click \"Balances\" again to display your balances. By default, accounts with zero PKT will not be displayed unless you click \"Get All Addresses\". It may take several hours for the app to sync the blockchain for the first time. During that time, balances will not be available for your addresses. You will have to verify the balance on the address using the PKT Blockchain Explorer Click \"Receive\" and select the wallet you want to inspect Copy and paste the address into the search field of the PKT Blockchain Explorer, then click the \"Search\" icon. Receiving PKT \u00b6 To receive coins, you need to create a new PKT address Click the \"Receive\" tab Type a description for the purpose of receiving the coins, this will appear in the notification when you get paid Set the expiration, if this is not an invoice , you can choose \"never\" After you click \"Request\", your wallet will create a new address and copy it to your clipboard so you can send it to the person paying you (or transfer money to your new wallet) When PKT gets sent to your new address, you will get a notification. It says \"unconfirmed\" because the transaction has not yet been included in the history of the blockchain. Congratulations, you have received your first PKT. It make take some time before the transaction is confirmed by the network and the PKT is formally in your account. Sending PKT \u00b6 To pay PKT to someone else, click on the Send tab and paste the address to be paid Type a description of the payment, this is just for you, it will not be sent to the person you are paying Enter the amount to be paid Click Pay You will be prompted to enter your wallet passphrase in order to decrypt the wallet for one brief moment to send the PKT Every transaction requires a fee for inclusion in the blockchain, this is a very small cost: 132 nPKT is one hundred and thirty two nano-PKT (that means billionths , i.e. 0.000000132 PKT) After you enter your passphrase and click \"send\", you will see a transaction ID , this set of numbers and letters uniquely identifies your transaction and can be used to view it in the block explorer. Just like when receiving, your transaction will appear first as \"unconfirmed\" and then later it will switch to a clock when it has been included in the blockchain. When people consider a transaction to be \"complete\" depends on the merchant, but in after some time the transaction will be confirmed and the PKT be in the recipient's account. Congratulations, you've sent PKT! About Units \u00b6 Each PKT is made up of 1000 milli-PKT, denoted mPKT Each milli-PKT is sub-divided into 1000 micro-PKT, denoted uPKT Each micro-PKT is sub-divided into 1000 nano-PKT, denoted nPKT Statistical Verification \u00b6 PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as MIN(100%, K / distance_from_tip) where K is a constant which we set at 20 to make PKT Electrum verify around 200 blocks total. With K = 20 , the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance * block 25 has an 80% chance * block 50 has a 40% chance * block 80 has a 25% chance The distribution of likelyhood of verifying a block is shown by this chart:","title":"PKT Wallet MacOS GUI"},{"location":"pktwalletgui/#pkt-wallet-macos-gui","text":"NOTE : The PKT Wallet GUI handles mining income well and is a good wallet for those hoping to hold a copy of the blockchain and to keep ownership of their own keys and passphrases for multiple addresses.","title":"PKT Wallet MacOS GUI"},{"location":"pktwalletgui/#first-setup","text":"","title":"First setup"},{"location":"pktwalletgui/#macos","text":"Download pktwallet-(version).dmg Open Finder Double-click on your Downloads folder and find and double-click on pktwallet-(version).dmg to open the disk image A new window will open with the PKT Wallet app, click and drag it into your Applications folder Press Command+Space to open your Spotlight Search and type PKT Wallet, when you see the PKT Wallet app, press the Enter key to open it. The first time PKT Wallet is opened, you will get a popup asking you if you want to open it, click open Continue with Setting up your wallet or Load Existing Wallet From Seed below.","title":"MacOS"},{"location":"pktwalletgui/#setting-up-your-wallet","text":"Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. A video tutorial is available for this method: You will be asked to create a new wallet. Click \"Create Wallet\" Enter passphrase to encrypt your wallet. This passphrase must have upper case and lower case letters and numbers. Retype the passphrase to match and click the \"Enter\" button You will be asked if you want to import an existing seed. Click the \"Continue Without Seed\" button to continue. A 15-word wallet seed will be created for you. Write this seed down. It enables you to open your PKT wallet on another computer or smartphone, for example if your current computer dies. It is advisable to write this on a piece of paper and store it in a safe place. Click \"Open Wallet\" to continue. You will be brought to the main \"Balances\" screen. By default you have no addresses, so you will need to create one. Click the \"Create Address\" button, and then click the \"Generate\" button to generate a new address. The resulting code is the public address which people can pay you at. Click \"Balances\" again to display your balances. By default, accounts with zero PKT will not be displayed unless you click \"Get All Addresses\"","title":"Setting up your wallet"},{"location":"pktwalletgui/#load-existing-wallet-from-seed","text":"Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. A video tutorial is available for this method: You will be asked to create a new wallet. Click \"Create Wallet\" Enter passphrase to encrypt your wallet. This passphrase must have upper case and lower case letters and numbers. Retype the passphrase to match and click the \"Enter\" button You will be asked if you want to import an existing seed. Type in your wallet seed and any passphrase. Click the \"Continue With Seed\" button to continue. Your 15-word wallet seed will be displayed on the next screen. Write this seed down. It enables you to open your PKT wallet on another computer or smartphone, for example if your current computer dies. It is advisable to write this on a piece of paper and store it in a safe place. If you have a legacy wallet (from versions prior to 1.0.0), you will never be able to retrieve this seed again from the app. Click \"Open Wallet\" to continue. You will be brought to the main \"Balances\" screen. By default you have no addresses, so you will need to create one. Click the \"Create Address\" button, and then click the \"Generate\" button to generate a new address. The resulting code is the public address which people can pay you at. If this wallet previously had a wallet, address is actually an exsting one that has been retrieved, rather than a newly created address. Click \"Balances\" again to display your balances. By default, accounts with zero PKT will not be displayed unless you click \"Get All Addresses\". It may take several hours for the app to sync the blockchain for the first time. During that time, balances will not be available for your addresses. You will have to verify the balance on the address using the PKT Blockchain Explorer Click \"Receive\" and select the wallet you want to inspect Copy and paste the address into the search field of the PKT Blockchain Explorer, then click the \"Search\" icon.","title":"Load Existing Wallet From Seed"},{"location":"pktwalletgui/#receiving-pkt","text":"To receive coins, you need to create a new PKT address Click the \"Receive\" tab Type a description for the purpose of receiving the coins, this will appear in the notification when you get paid Set the expiration, if this is not an invoice , you can choose \"never\" After you click \"Request\", your wallet will create a new address and copy it to your clipboard so you can send it to the person paying you (or transfer money to your new wallet) When PKT gets sent to your new address, you will get a notification. It says \"unconfirmed\" because the transaction has not yet been included in the history of the blockchain. Congratulations, you have received your first PKT. It make take some time before the transaction is confirmed by the network and the PKT is formally in your account.","title":"Receiving PKT"},{"location":"pktwalletgui/#sending-pkt","text":"To pay PKT to someone else, click on the Send tab and paste the address to be paid Type a description of the payment, this is just for you, it will not be sent to the person you are paying Enter the amount to be paid Click Pay You will be prompted to enter your wallet passphrase in order to decrypt the wallet for one brief moment to send the PKT Every transaction requires a fee for inclusion in the blockchain, this is a very small cost: 132 nPKT is one hundred and thirty two nano-PKT (that means billionths , i.e. 0.000000132 PKT) After you enter your passphrase and click \"send\", you will see a transaction ID , this set of numbers and letters uniquely identifies your transaction and can be used to view it in the block explorer. Just like when receiving, your transaction will appear first as \"unconfirmed\" and then later it will switch to a clock when it has been included in the blockchain. When people consider a transaction to be \"complete\" depends on the merchant, but in after some time the transaction will be confirmed and the PKT be in the recipient's account. Congratulations, you've sent PKT!","title":"Sending PKT"},{"location":"pktwalletgui/#about-units","text":"Each PKT is made up of 1000 milli-PKT, denoted mPKT Each milli-PKT is sub-divided into 1000 micro-PKT, denoted uPKT Each micro-PKT is sub-divided into 1000 nano-PKT, denoted nPKT","title":"About Units"},{"location":"pktwalletgui/#statistical-verification","text":"PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as MIN(100%, K / distance_from_tip) where K is a constant which we set at 20 to make PKT Electrum verify around 200 blocks total. With K = 20 , the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance * block 25 has an 80% chance * block 50 has a 40% chance * block 80 has a 25% chance The distribution of likelyhood of verifying a block is shown by this chart:","title":"Statistical Verification"},{"location":"stake/community-liquidity/","text":"Community Liquidity \u00b6 The introduction of new incentives for the community to provide liquidity and engage in long-term staking within Uniswap's liquidity pools marks a strategic advancement for the PKT project. By incentivizing token holders to stake PKT/ETH into the Uniswap liquidity pool, this not only stabilizes price and fosters growth, but makes the market more resilient to large trades that could cause price volatility. Participants benefit from rewards for their staking, incentivizing longer-term investment and reducing market fluctuations . This approach enhances the overall ecosystem\u2019s stability and sustained growth is paving the way for increased investor confidence and the long-term success of the project.","title":"Community Liquidity"},{"location":"stake/community-liquidity/#community-liquidity","text":"The introduction of new incentives for the community to provide liquidity and engage in long-term staking within Uniswap's liquidity pools marks a strategic advancement for the PKT project. By incentivizing token holders to stake PKT/ETH into the Uniswap liquidity pool, this not only stabilizes price and fosters growth, but makes the market more resilient to large trades that could cause price volatility. Participants benefit from rewards for their staking, incentivizing longer-term investment and reducing market fluctuations . This approach enhances the overall ecosystem\u2019s stability and sustained growth is paving the way for increased investor confidence and the long-term success of the project.","title":"Community Liquidity"},{"location":"stake/how-to/","text":"How to Stake \u00b6 Staking PKT is easy and safe. Here is a step by step guide: Go to PKT Dashboard and navigate to the staking tab Connect your web3 wallet to the dashboard by clicking Connect Wallet You will need to have some Ethereum on Base in your wallet before you can start staking your PKT. This is required to pay gas fees on the Base blockchain, which uses the Ethereum blockchain Click Add Stake Add the name of your Stake Add the amount of PKT you want to stake Select how long you want to stake your tokens for: If you lockup for 3 months you get a 1.5x yield credits per PKT If you lockup for 6 months then you get 2x yield credits per PKT If you lockup for 12 months then you get 4x yield credits per PKT If someone referred you to PKT and you add their referral code you will get a 1% yield bonus. Also your friend will get a yield bonus Once you confirm your lockup duration, you will see your Total Yield Credits. This is how much PKT you will earn. Click Confirm A pop up window will appear and click confirm You are now staking your PKT Note If you want to earn maximum yields, you can add liquidity to the liquidity pool and then stake your PKT LP Tokens. Learn More","title":"How to stake"},{"location":"stake/how-to/#how-to-stake","text":"Staking PKT is easy and safe. Here is a step by step guide: Go to PKT Dashboard and navigate to the staking tab Connect your web3 wallet to the dashboard by clicking Connect Wallet You will need to have some Ethereum on Base in your wallet before you can start staking your PKT. This is required to pay gas fees on the Base blockchain, which uses the Ethereum blockchain Click Add Stake Add the name of your Stake Add the amount of PKT you want to stake Select how long you want to stake your tokens for: If you lockup for 3 months you get a 1.5x yield credits per PKT If you lockup for 6 months then you get 2x yield credits per PKT If you lockup for 12 months then you get 4x yield credits per PKT If someone referred you to PKT and you add their referral code you will get a 1% yield bonus. Also your friend will get a yield bonus Once you confirm your lockup duration, you will see your Total Yield Credits. This is how much PKT you will earn. Click Confirm A pop up window will appear and click confirm You are now staking your PKT Note If you want to earn maximum yields, you can add liquidity to the liquidity pool and then stake your PKT LP Tokens. Learn More","title":"How to Stake"},{"location":"stake/stake-earn/","text":"Stake-to-Earn \u00b6 PKT introduces an innovative stake-to-earn protocol, designed to reward community members for their long-term commitment to the network. This protocol offers participants the opportunity to lock up their PKT tokens to earn substantial yields and benefit from lucrative yield multipliers. Each 1 PKT is worth 1 Yield Credit. The longer the lockup duration, the higher the multiplier: a 3 month stake yields a 1.5x multiplier, 6 months yields a 2x multiplier, and 12 months yields a 4x multiplier. For instance, staking 1 million PKT for 12 months will result in earnings from 4 million yield credits. This structured incentive system is designed to align individual incentives with the broader goal of enhancing the PKT Network's physical infrastructure.","title":"Stake to earn"},{"location":"stake/stake-earn/#stake-to-earn","text":"PKT introduces an innovative stake-to-earn protocol, designed to reward community members for their long-term commitment to the network. This protocol offers participants the opportunity to lock up their PKT tokens to earn substantial yields and benefit from lucrative yield multipliers. Each 1 PKT is worth 1 Yield Credit. The longer the lockup duration, the higher the multiplier: a 3 month stake yields a 1.5x multiplier, 6 months yields a 2x multiplier, and 12 months yields a 4x multiplier. For instance, staking 1 million PKT for 12 months will result in earnings from 4 million yield credits. This structured incentive system is designed to align individual incentives with the broader goal of enhancing the PKT Network's physical infrastructure.","title":"Stake-to-Earn"},{"location":"stake/stake-lp-tokens/","text":"How to Stake PKT LP Tokens \u00b6 If you want to stake your PKT LP Tokens for maximum (up to 4X) yields go to the pkt.cash dashboard and click on the Staking tab on the menu bar Connect your web3 wallet by clicking Connect Wallet Click Add Stake Add the name of your Stake Add the amount of PKT LP Tokens you want to stake Note You can also stake any extra PKT you have in your wallet that is not part of the LP, which will also earn yields. Learn More Select how long you want to stake your tokens for: If you lockup for more than 1 week, you will get a share of 1m PKT per day bonus paid paid pro rata to all liquidity pool providers\" If you lockup for 3 months you get a 1.5x yield credits per PKT If you lockup for 6 months then you get 2x yield credits per PKT If you lockup for 12 months then you get 4x yield credits per PKT If someone referred you to PKT and you add their referral code you will get a 1% yield bonus. Also your friend will get a yield bonus Once you confirm your lockup duration, you will see your Total Yield Credits. This is how much PKT you will earn. Click Confirm A pop up window will appear and click confirm Now you have staked your PKT LP Tokens","title":"How to stake LP tokens"},{"location":"stake/stake-lp-tokens/#how-to-stake-pkt-lp-tokens","text":"If you want to stake your PKT LP Tokens for maximum (up to 4X) yields go to the pkt.cash dashboard and click on the Staking tab on the menu bar Connect your web3 wallet by clicking Connect Wallet Click Add Stake Add the name of your Stake Add the amount of PKT LP Tokens you want to stake Note You can also stake any extra PKT you have in your wallet that is not part of the LP, which will also earn yields. Learn More Select how long you want to stake your tokens for: If you lockup for more than 1 week, you will get a share of 1m PKT per day bonus paid paid pro rata to all liquidity pool providers\" If you lockup for 3 months you get a 1.5x yield credits per PKT If you lockup for 6 months then you get 2x yield credits per PKT If you lockup for 12 months then you get 4x yield credits per PKT If someone referred you to PKT and you add their referral code you will get a 1% yield bonus. Also your friend will get a yield bonus Once you confirm your lockup duration, you will see your Total Yield Credits. This is how much PKT you will earn. Click Confirm A pop up window will appear and click confirm Now you have staked your PKT LP Tokens","title":"How to Stake PKT LP Tokens"},{"location":"stake/stake-lp/","text":"How to Stake the Liquidity Pool \u00b6 To earn the maximum staking yields, you can add liquidity to the Liquidity Pool and then stake your LP Tokens. Here\u2019s how: Buy equal amounts of PKT and Ethereum on Base. For instructions on how to buy PKT on Base, go here. You can buy Ethereum on Base directly in your web3 wallet. Once you have an equal amount of PKT and Base Ethereum go to the pkt.cash dashboard here . Connect your wallet Click on the Liquidity Pool tab Choose how much Ethereum on Base and PKT you want to add to the liquidity pool Once you submit you will receive PKT LP Tokens directly into your web3 wallet","title":"How to stake LP"},{"location":"stake/stake-lp/#how-to-stake-the-liquidity-pool","text":"To earn the maximum staking yields, you can add liquidity to the Liquidity Pool and then stake your LP Tokens. Here\u2019s how: Buy equal amounts of PKT and Ethereum on Base. For instructions on how to buy PKT on Base, go here. You can buy Ethereum on Base directly in your web3 wallet. Once you have an equal amount of PKT and Base Ethereum go to the pkt.cash dashboard here . Connect your wallet Click on the Liquidity Pool tab Choose how much Ethereum on Base and PKT you want to add to the liquidity pool Once you submit you will receive PKT LP Tokens directly into your web3 wallet","title":"How to Stake the Liquidity Pool"},{"location":"start_mining/announcement-mining/","text":"How to Start Announcement Mining \u00b6 Announcement Mining creates a small (1KB) message that is difficult to compress and proves work was done. Announcements are transmitted to and collected by block miners to form blocks. This simulates the transmission of data across the network. Announcement miners must maximize their CPU processing power and bandwidth upload speed for the highest yields. Announcement mining can be done from nearly any device that has a CPU processor and access to bandwidth. Also include: Multi-pool mining means submitting the exact same announcements to multiple pools. So if you have the bandwidth available it will always benefit you to mine in all of the major pools. Mining \u00b6 PacketCrypt is a bandwidth hard proof of work , this means it requires lots of bandwidth to mine. Miners collaborate with one another by sending small messages (called Announcements ) and the sending of these messages requires a large amount of bandwidth . Miners who are working in collaboration with one another are members of a mining pool, therefore all mining of PacketCrypt is done in pools. PacketCrypt mining is split into two distinct stages: Announcement Mining - Using your CPU to create Announcements Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks Block mining is typically done at the mining pool's datacenter, however Announcement mining can be done from anywhere. How to Announcement mine \u00b6 There are a number of options available when it comes to installing the PacketCrpyt announcement miner. Choose whichever best suits your technical ability: 1. Install a Pre-built Binary \u00b6 Pre-built packetcrypt binaries (for linux) or installation packages (for macos) and archives (for windows) can be downloaded from packetcrypt releases page . For windows , download the zip archive suffixed with -windows.zip and extract its content. For macos , download the package suffixed with .pkg and click on its icon in the Finder for installation. For linux , download the binary suffixed with -linux_amd64 and rename it packetcrypt . If you're on Arch linux or Manjaro, you can install the packetcrypt AUR package 2. Deploy a Docker Image \u00b6 There is a PacketCrypt Docker image available, which can be used for announcement mining. To install: Download and install Docker for your operating system. Download the PacketCrypt Docker image: $ docker pull thomasjp0x42/packetcrypt There are also PacketCrypt Docker images built without the portable flag ( --no-portable ) which may increase the performance of the announcement mining while reducing CPU compatibility. One such image (compiled on AMD 5950x) is available at thomasjp0x42/packetcrypt-amd64 . Additionally, for ARM devices such as Raspberry Pi, there is an image available at thomasjp0x42/packetcrypt-arm64 . The arm64 image will also work on Apple silicon such as the M1 and M2 chips. Run the container similar to the commands described in the Begin Announcement Mining section, except replace this part of the command: $ packetcrypt with this command to run PacketCrypt from Docker: $ docker run thomasjp0x42/packetcrypt The final command will be formatted like this: $ docker run thomasjp0x42/packetcrypt ann -p More information can be found at the PacketCrypt DockerHub page 3. Build From Source \u00b6 Building from source will generally offer the best mining performance but requires more technical knowledge than the previous two options. First install rust if you haven't, see: rustup git clone https://github.com/cjdelisle/packetcrypt_rs cd packetcrypt_rs cargo build --release See the PacketCrypt GitHub repository for more detailed instructions. Begin Announcement Mining \u00b6 Important You cannot mine into the electrum wallet , You can only mine into the Command Line Wallet , the Pkt.World Wallet or the Mac GUI Wallet . To begin mining, you will need the address of your wallet and you will need to choose a pool. There are two ways to configure the announcement miner; by using CLI parameters or by using a configuration file: Using the CLI packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] [or for windows] packetcrypt.exe ann -p pool_1 [pool_2 pool_3 pool_4] Using a Configuration File A configuration file must be in JSON format. The file can be loaded from the local filesystem or from a web-accessible location. Any CLI parameters used will overide the corresponding settings in the configuration file. Example config.json: { \"payment_addr\": \" \", \"pools\": [ \"pool_1\", \"pool_2\", \"pool_3\", \"pool_4\" ] } packetcrypt ann -c \"./config.json\" [or] packetcrypt ann -c \"https://example.com/config.json\" [or for windows] packetcrypt.exe ann -c \"./config.json\" [or] packetcrypt.exe ann -c \"https://example.com/config.json\" Announcement mining can be done into a single pool or multiple pools. When you announcement mine into multiple pools, you will be paid by each pool that you submit announcements to. pool_1 is the pool running the highest difficulty. If you notice problems, you can test listing the pools in a different order. The number of pools you mine into is at your discretion. If a pool is down or malfunctioning you will notice the pool is not mining at [100%] in your mining feed and you can choose to remove the under-performing or malfunctioning pool. How to install a PKT miner on Mac \u00b6 Install the Zulu or CLI PKT Wallet from https://docs.pkt.cash Download the PacketCrypt.pkg for mac Open your Terminal Install Rust by entering in the command: $ curl --proto '=https' --tlsv1.2 -sSf * https://sh.rustup.rs | sh Press 1 to confirm Enter the command: $ sudo install make Enter the command: $ git clone https://github.com/cjdelisle/packetcrypt_rs Enter the command: $ cd packetcrypt_rs Enter the command: $ ~/.cargo/bin/cargo build --release Enter the command: $ ./target/release/packetcrypt ann -p [your PKT Wallet Address] [pool 1] [pool 2] [pool 3] [pool 4] Choosing Pools to mine in \u00b6 You can mine in as many pools as you have the bandwidth to supply. The same data will be uploaded so your CPU is only used once. Currently the pools which are regularly winning blocks include: Pkteer: http://pool.pkteer.com PKTPool: http://pool.pktpool.io PktWorld: http://pool.pkt.world Zetahash (f.k.a. Srizbi): https://stratum.zetahash.com In general the recommendation is to list the pool with highest difficulty in the first position to ensure your announcements will be accepted, as the standardized policy is to accept announcements of a higher difficulty for pools with a lower base difficulty. In some cases the rewards might vary depending on the pool order regardless of difficulty, subject to custom policies implemented by the respective pools. (Check the relevant channels on Discord for current pool statuses) You should test your daily earnings on each pool to see which one is best. Your mining revenue depends on how much each pool allocates towards announcement miners as well as how much hardware they are using in-house. The pools are winning different blocks and if you mine to just one pool, your not getting any payment from the others when they win a block. It's the same with mining to a pool that is not winning any blocks. Limiting System Resource Usage \u00b6 Limiting the system resources available to Packetcrypt may negatively effect your mining power but can be useful to conserve resources for other processess. Limit CPU Usage \u00b6 Announcement mining is a resource intensive process. By default, Packetcrypt will use 100% of the available CPU resources. CPU usage can be limited by assigning a limited number of threads to packetcrypt using the -t CLI parameter or \"threads\" key if using a configuration file. Example of assigning four (4) threads to Packetcrypt: packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] -t 4 or { \"threads\" 4 } Limit Bandwidth Usage \u00b6 Bandwidth usage is directly related to two main factors: 1 - Mining difficulty of the primary pool (the first pool listed in Packetcrypt pool configuration) A lower difficulty means higher bandwidth usage 2 - The number of pools mined Packetcrypt will send the same Announcements to each pool mined Bandwidth usage can therefore be limited by selecting a higher difficulty pool as the primary pool and/or by mining to fewer pools. Block Mining & Running a Pool \u00b6 Because each block miner must use as much bandwidth as all of the announcement miners combined , block mining is typically done at the location of the pool. Even a pool operator who wanted to support external block mining would find that the pool itself would need enough upload bandwidth to match all of the block miners - which would be completely untenable. If you are interested in block mining, contact the pool operator and discuss sending hardware to their location. Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (one or more) - These are high performance nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (one or more) - These nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if Paymaker (1) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners PacketCrypt Data Flow \u00b6 \u2588 Orange: Announcements are sent from the Announcement miners to the Ann Handlers and then to the Block miners \u2588 Blue: Block shares are sent from block miners to Block Handler(s) \u2588 Purple: Winning blocks are submitted by the Block Handler(s) to pktd and the PKT network \u2588 Pink: Block Handlers and Ann Handlers inform Paymaker of work done by announcement and block miners \u2588 Green: Paymaker configures pktd instance to create blocks which pay the people who have been mining \u2588 Brown: Master gets block templates from pktd instance Black dotted line: All nodes request configuration and block templates from Master node More Information and PacketCrypt Pool Code \u00b6 The code and documentation for running a pool is available on the C / nodejs version of the PacketCrypt project, the new Rust version only contains Announcement Miner and Announcement Handlers. Announcement Difficulty \u00b6 PacketCrypt is designed in such a way that a mining pool can double its effective power by: Doubling the total block mining computation effort Doubling the total announcement mining computation effort, or Doubling the amount of bandwidth between announcement miners and the pool The way that a pool operator limits the amount of bandwidth flowing into the pool, to prevent overloading of the network, is by setting what is known as the announcement difficulty . The announcement difficulty for a pool specifies how much work must be done on an announcement in order for the announcement to be accepted and paid out by the pool. Announcement difficulty serves to slow down the announcement miners to protect the pool's network. In general, doubling the announcement difficulty will halve the amount of bandwidth used by the pool and will also halve the pool's overall mining power, with a limit that setting the announcement difficulty lower than 2 does not bring any additional value. To explain why it works like this, we need to examine the PacketCrypt algorithm rules and the in particular how the block mining software decides which announcements to use when attempting to mine a block. Announcement Set Selection \u00b6 PacketCrypt algorithm allows block miners to perform less work if they are able to prove that they had a certain number of \"high value\" announcements in memory at the time of mining, the exact ratio of actual work a block miner must do to the amount of work the PKT blockchain requires is called the power multipler . For a block miner seeking to optimize their power multiplier, every announcement has a particular level of utility value which is based on the amount of work that was done by the announcement miner (announcement difficulty) and how old the announcement is. We call this the effective difficulty . The effective difficulty of an announcement starts off as the actual difficulty of the work done to mine it and then decreases by half every block-period until it is less than 1 and the announcement is no longer usable for mining. The block mining software selects a subset of announcements which which will give it the best power multiplier based on the PacketCrypt algorithm: power_multiplier = min(effective_difficulty) * ann_count ** 2 The min(effective_difficulty) is the effective difficulty of the \"least valuable\" announcement that is being mined with. Lets assume that announcement miners are providing a steady supply of 1000 announcements per block-period and all announcements have an initial announcement difficulty of 128. The block mining software can choose to mine with 1000 announcements at 128 effective difficulty, or with 2000 announcements at 64 effective difficulty, or with 3000 announcements at 32 effective difficulty and so on. The best choice is to use the previous three block periods which provides a power multiplier that is 225% higher than that of using just the most recent 1 period worth of announcements. This curve is the same no matter what difficulty we are starting with. Optimal Difficulty Curve \u00b6 Knowing that the optimal announcement set is all of those announcements mined over the past 3 block periods, we can compute the overall power of a pool as the announcement difficulty is raised. At announcement difficulty 1, announcements cannot be used for more than 1 block, but if we imagine that the announcement mining community can produce 1000 announcements per block at difficulty 1 then we can reason that the power multiplier will be 1000 ** 2 or 1 million. At difficulty 2 we can expect the announcement miners will produce 500 announcements per block period but since 2 block periods can be used, the power multiplier is the same. At difficulty 4, the announcement miners will produce 250 announcements per block period and they will be valid for 3 block periods making the power multiplier 750 ** 2 or 562,500. From here, the power output of the power multiplier of the optimal announcement set halves for each doubling of the announcement difficulty, making the optimal difficulty 2 . FAQ for ANN Miners \u00b6 What does overflow mean? \u00b6 When the ann handler receives an announcement, it puts it into a queue, when the queue fills up it responds overflow immediately. The queue can become long, so you may receive \"operation timed out\" you're still being paid, when you receive \"overflow\" you are not being paid. Unfortunately, you may also receive \"operation timed out\" because the handler is unresponsive, it's not obvious which is the reason from looking at the logs. For example, what you will see in the AnnMiner Logs: 1618394538 INFO annmine.rs:519 467 Ke/s 28.56Mb/s overflow: [0, 0, 3072, 0] uploading: [0, 0, 17632, 0] accept/reject: [26932/0, 0/0, 4856/0, 796/0] - goodrate: [100%, 100%, 61%, 100%] 467 Ke/s 467 kilo-encryptions (thousands of encryptions) per second of mining power. 28.56Mb/s Total upload bandwidth (to all pools - combined) overflow: [0, 0, 3072, 0] Overflowed the internal queue of the ann miner, before it was even able to upload to the pool, one number for each pool you're mining to. 3072 Number of anns which are not uploaded to pool #3. uploading [0, 0, 17632, 0] Number of anns currently in-flight in active http requests, again 3rd pool is a problem, others are doing well (in this example). accept/reject [26932/0, 0/0, 4856/0, 796/0] Anns accepted/rejected by each pool, these numbers are based on the previous 10 seconds, pool #2 is giving a zero accepted which might be an issue, keep watching the next message 10 seconds later for another update. goodrate [100%, 100%, 61%, 100%] Goodrate = number of anns accepted divided by number of anns produced.","title":"How to Start Announcement Mining"},{"location":"start_mining/announcement-mining/#how-to-start-announcement-mining","text":"Announcement Mining creates a small (1KB) message that is difficult to compress and proves work was done. Announcements are transmitted to and collected by block miners to form blocks. This simulates the transmission of data across the network. Announcement miners must maximize their CPU processing power and bandwidth upload speed for the highest yields. Announcement mining can be done from nearly any device that has a CPU processor and access to bandwidth. Also include: Multi-pool mining means submitting the exact same announcements to multiple pools. So if you have the bandwidth available it will always benefit you to mine in all of the major pools.","title":"How to Start Announcement Mining"},{"location":"start_mining/announcement-mining/#mining","text":"PacketCrypt is a bandwidth hard proof of work , this means it requires lots of bandwidth to mine. Miners collaborate with one another by sending small messages (called Announcements ) and the sending of these messages requires a large amount of bandwidth . Miners who are working in collaboration with one another are members of a mining pool, therefore all mining of PacketCrypt is done in pools. PacketCrypt mining is split into two distinct stages: Announcement Mining - Using your CPU to create Announcements Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks Block mining is typically done at the mining pool's datacenter, however Announcement mining can be done from anywhere.","title":"Mining"},{"location":"start_mining/announcement-mining/#how-to-announcement-mine","text":"There are a number of options available when it comes to installing the PacketCrpyt announcement miner. Choose whichever best suits your technical ability:","title":"How to Announcement mine"},{"location":"start_mining/announcement-mining/#1-install-a-pre-built-binary","text":"Pre-built packetcrypt binaries (for linux) or installation packages (for macos) and archives (for windows) can be downloaded from packetcrypt releases page . For windows , download the zip archive suffixed with -windows.zip and extract its content. For macos , download the package suffixed with .pkg and click on its icon in the Finder for installation. For linux , download the binary suffixed with -linux_amd64 and rename it packetcrypt . If you're on Arch linux or Manjaro, you can install the packetcrypt AUR package","title":"1. Install a Pre-built Binary"},{"location":"start_mining/announcement-mining/#2-deploy-a-docker-image","text":"There is a PacketCrypt Docker image available, which can be used for announcement mining. To install: Download and install Docker for your operating system. Download the PacketCrypt Docker image: $ docker pull thomasjp0x42/packetcrypt There are also PacketCrypt Docker images built without the portable flag ( --no-portable ) which may increase the performance of the announcement mining while reducing CPU compatibility. One such image (compiled on AMD 5950x) is available at thomasjp0x42/packetcrypt-amd64 . Additionally, for ARM devices such as Raspberry Pi, there is an image available at thomasjp0x42/packetcrypt-arm64 . The arm64 image will also work on Apple silicon such as the M1 and M2 chips. Run the container similar to the commands described in the Begin Announcement Mining section, except replace this part of the command: $ packetcrypt with this command to run PacketCrypt from Docker: $ docker run thomasjp0x42/packetcrypt The final command will be formatted like this: $ docker run thomasjp0x42/packetcrypt ann -p More information can be found at the PacketCrypt DockerHub page","title":"2. Deploy a Docker Image"},{"location":"start_mining/announcement-mining/#3-build-from-source","text":"Building from source will generally offer the best mining performance but requires more technical knowledge than the previous two options. First install rust if you haven't, see: rustup git clone https://github.com/cjdelisle/packetcrypt_rs cd packetcrypt_rs cargo build --release See the PacketCrypt GitHub repository for more detailed instructions.","title":"3. Build From Source"},{"location":"start_mining/announcement-mining/#begin-announcement-mining","text":"Important You cannot mine into the electrum wallet , You can only mine into the Command Line Wallet , the Pkt.World Wallet or the Mac GUI Wallet . To begin mining, you will need the address of your wallet and you will need to choose a pool. There are two ways to configure the announcement miner; by using CLI parameters or by using a configuration file: Using the CLI packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] [or for windows] packetcrypt.exe ann -p pool_1 [pool_2 pool_3 pool_4] Using a Configuration File A configuration file must be in JSON format. The file can be loaded from the local filesystem or from a web-accessible location. Any CLI parameters used will overide the corresponding settings in the configuration file. Example config.json: { \"payment_addr\": \" \", \"pools\": [ \"pool_1\", \"pool_2\", \"pool_3\", \"pool_4\" ] } packetcrypt ann -c \"./config.json\" [or] packetcrypt ann -c \"https://example.com/config.json\" [or for windows] packetcrypt.exe ann -c \"./config.json\" [or] packetcrypt.exe ann -c \"https://example.com/config.json\" Announcement mining can be done into a single pool or multiple pools. When you announcement mine into multiple pools, you will be paid by each pool that you submit announcements to. pool_1 is the pool running the highest difficulty. If you notice problems, you can test listing the pools in a different order. The number of pools you mine into is at your discretion. If a pool is down or malfunctioning you will notice the pool is not mining at [100%] in your mining feed and you can choose to remove the under-performing or malfunctioning pool.","title":"Begin Announcement Mining"},{"location":"start_mining/announcement-mining/#how-to-install-a-pkt-miner-on-mac","text":"Install the Zulu or CLI PKT Wallet from https://docs.pkt.cash Download the PacketCrypt.pkg for mac Open your Terminal Install Rust by entering in the command: $ curl --proto '=https' --tlsv1.2 -sSf * https://sh.rustup.rs | sh Press 1 to confirm Enter the command: $ sudo install make Enter the command: $ git clone https://github.com/cjdelisle/packetcrypt_rs Enter the command: $ cd packetcrypt_rs Enter the command: $ ~/.cargo/bin/cargo build --release Enter the command: $ ./target/release/packetcrypt ann -p [your PKT Wallet Address] [pool 1] [pool 2] [pool 3] [pool 4]","title":"How to install a PKT miner on Mac"},{"location":"start_mining/announcement-mining/#choosing-pools-to-mine-in","text":"You can mine in as many pools as you have the bandwidth to supply. The same data will be uploaded so your CPU is only used once. Currently the pools which are regularly winning blocks include: Pkteer: http://pool.pkteer.com PKTPool: http://pool.pktpool.io PktWorld: http://pool.pkt.world Zetahash (f.k.a. Srizbi): https://stratum.zetahash.com In general the recommendation is to list the pool with highest difficulty in the first position to ensure your announcements will be accepted, as the standardized policy is to accept announcements of a higher difficulty for pools with a lower base difficulty. In some cases the rewards might vary depending on the pool order regardless of difficulty, subject to custom policies implemented by the respective pools. (Check the relevant channels on Discord for current pool statuses) You should test your daily earnings on each pool to see which one is best. Your mining revenue depends on how much each pool allocates towards announcement miners as well as how much hardware they are using in-house. The pools are winning different blocks and if you mine to just one pool, your not getting any payment from the others when they win a block. It's the same with mining to a pool that is not winning any blocks.","title":"Choosing Pools to mine in"},{"location":"start_mining/announcement-mining/#limiting-system-resource-usage","text":"Limiting the system resources available to Packetcrypt may negatively effect your mining power but can be useful to conserve resources for other processess.","title":"Limiting System Resource Usage"},{"location":"start_mining/announcement-mining/#limit-cpu-usage","text":"Announcement mining is a resource intensive process. By default, Packetcrypt will use 100% of the available CPU resources. CPU usage can be limited by assigning a limited number of threads to packetcrypt using the -t CLI parameter or \"threads\" key if using a configuration file. Example of assigning four (4) threads to Packetcrypt: packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] -t 4 or { \"threads\" 4 }","title":"Limit CPU Usage"},{"location":"start_mining/announcement-mining/#limit-bandwidth-usage","text":"Bandwidth usage is directly related to two main factors: 1 - Mining difficulty of the primary pool (the first pool listed in Packetcrypt pool configuration) A lower difficulty means higher bandwidth usage 2 - The number of pools mined Packetcrypt will send the same Announcements to each pool mined Bandwidth usage can therefore be limited by selecting a higher difficulty pool as the primary pool and/or by mining to fewer pools.","title":"Limit Bandwidth Usage"},{"location":"start_mining/announcement-mining/#block-mining-running-a-pool","text":"Because each block miner must use as much bandwidth as all of the announcement miners combined , block mining is typically done at the location of the pool. Even a pool operator who wanted to support external block mining would find that the pool itself would need enough upload bandwidth to match all of the block miners - which would be completely untenable. If you are interested in block mining, contact the pool operator and discuss sending hardware to their location. Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (one or more) - These are high performance nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (one or more) - These nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if Paymaker (1) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners","title":"Block Mining & Running a Pool"},{"location":"start_mining/announcement-mining/#packetcrypt-data-flow","text":"\u2588 Orange: Announcements are sent from the Announcement miners to the Ann Handlers and then to the Block miners \u2588 Blue: Block shares are sent from block miners to Block Handler(s) \u2588 Purple: Winning blocks are submitted by the Block Handler(s) to pktd and the PKT network \u2588 Pink: Block Handlers and Ann Handlers inform Paymaker of work done by announcement and block miners \u2588 Green: Paymaker configures pktd instance to create blocks which pay the people who have been mining \u2588 Brown: Master gets block templates from pktd instance Black dotted line: All nodes request configuration and block templates from Master node","title":"PacketCrypt Data Flow"},{"location":"start_mining/announcement-mining/#more-information-and-packetcrypt-pool-code","text":"The code and documentation for running a pool is available on the C / nodejs version of the PacketCrypt project, the new Rust version only contains Announcement Miner and Announcement Handlers.","title":"More Information and PacketCrypt Pool Code"},{"location":"start_mining/announcement-mining/#announcement-difficulty","text":"PacketCrypt is designed in such a way that a mining pool can double its effective power by: Doubling the total block mining computation effort Doubling the total announcement mining computation effort, or Doubling the amount of bandwidth between announcement miners and the pool The way that a pool operator limits the amount of bandwidth flowing into the pool, to prevent overloading of the network, is by setting what is known as the announcement difficulty . The announcement difficulty for a pool specifies how much work must be done on an announcement in order for the announcement to be accepted and paid out by the pool. Announcement difficulty serves to slow down the announcement miners to protect the pool's network. In general, doubling the announcement difficulty will halve the amount of bandwidth used by the pool and will also halve the pool's overall mining power, with a limit that setting the announcement difficulty lower than 2 does not bring any additional value. To explain why it works like this, we need to examine the PacketCrypt algorithm rules and the in particular how the block mining software decides which announcements to use when attempting to mine a block.","title":"Announcement Difficulty"},{"location":"start_mining/announcement-mining/#announcement-set-selection","text":"PacketCrypt algorithm allows block miners to perform less work if they are able to prove that they had a certain number of \"high value\" announcements in memory at the time of mining, the exact ratio of actual work a block miner must do to the amount of work the PKT blockchain requires is called the power multipler . For a block miner seeking to optimize their power multiplier, every announcement has a particular level of utility value which is based on the amount of work that was done by the announcement miner (announcement difficulty) and how old the announcement is. We call this the effective difficulty . The effective difficulty of an announcement starts off as the actual difficulty of the work done to mine it and then decreases by half every block-period until it is less than 1 and the announcement is no longer usable for mining. The block mining software selects a subset of announcements which which will give it the best power multiplier based on the PacketCrypt algorithm: power_multiplier = min(effective_difficulty) * ann_count ** 2 The min(effective_difficulty) is the effective difficulty of the \"least valuable\" announcement that is being mined with. Lets assume that announcement miners are providing a steady supply of 1000 announcements per block-period and all announcements have an initial announcement difficulty of 128. The block mining software can choose to mine with 1000 announcements at 128 effective difficulty, or with 2000 announcements at 64 effective difficulty, or with 3000 announcements at 32 effective difficulty and so on. The best choice is to use the previous three block periods which provides a power multiplier that is 225% higher than that of using just the most recent 1 period worth of announcements. This curve is the same no matter what difficulty we are starting with.","title":"Announcement Set Selection"},{"location":"start_mining/announcement-mining/#optimal-difficulty-curve","text":"Knowing that the optimal announcement set is all of those announcements mined over the past 3 block periods, we can compute the overall power of a pool as the announcement difficulty is raised. At announcement difficulty 1, announcements cannot be used for more than 1 block, but if we imagine that the announcement mining community can produce 1000 announcements per block at difficulty 1 then we can reason that the power multiplier will be 1000 ** 2 or 1 million. At difficulty 2 we can expect the announcement miners will produce 500 announcements per block period but since 2 block periods can be used, the power multiplier is the same. At difficulty 4, the announcement miners will produce 250 announcements per block period and they will be valid for 3 block periods making the power multiplier 750 ** 2 or 562,500. From here, the power output of the power multiplier of the optimal announcement set halves for each doubling of the announcement difficulty, making the optimal difficulty 2 .","title":"Optimal Difficulty Curve"},{"location":"start_mining/announcement-mining/#faq-for-ann-miners","text":"","title":"FAQ for ANN Miners"},{"location":"start_mining/announcement-mining/#what-does-overflow-mean","text":"When the ann handler receives an announcement, it puts it into a queue, when the queue fills up it responds overflow immediately. The queue can become long, so you may receive \"operation timed out\" you're still being paid, when you receive \"overflow\" you are not being paid. Unfortunately, you may also receive \"operation timed out\" because the handler is unresponsive, it's not obvious which is the reason from looking at the logs. For example, what you will see in the AnnMiner Logs: 1618394538 INFO annmine.rs:519 467 Ke/s 28.56Mb/s overflow: [0, 0, 3072, 0] uploading: [0, 0, 17632, 0] accept/reject: [26932/0, 0/0, 4856/0, 796/0] - goodrate: [100%, 100%, 61%, 100%] 467 Ke/s 467 kilo-encryptions (thousands of encryptions) per second of mining power. 28.56Mb/s Total upload bandwidth (to all pools - combined) overflow: [0, 0, 3072, 0] Overflowed the internal queue of the ann miner, before it was even able to upload to the pool, one number for each pool you're mining to. 3072 Number of anns which are not uploaded to pool #3. uploading [0, 0, 17632, 0] Number of anns currently in-flight in active http requests, again 3rd pool is a problem, others are doing well (in this example). accept/reject [26932/0, 0/0, 4856/0, 796/0] Anns accepted/rejected by each pool, these numbers are based on the previous 10 seconds, pool #2 is giving a zero accepted which might be an issue, keep watching the next message 10 seconds later for another update. goodrate [100%, 100%, 61%, 100%] Goodrate = number of anns accepted divided by number of anns produced.","title":"What does overflow mean?"},{"location":"start_mining/intro/","text":"Intro to PKT Mining \u00b6 DPKT is mined using the novel PacketCrypt bandwidth-hard mining algorithm which requires bandwidth to mine. Since PacketCrypt is a bandwidth hard proof of work, this means it requires lots of bandwidth to mine in combination with CPU power. Miners collaborate with one another by sending small messages (called Announcements) and the sending of these messages requires bandwidth. Miners get an advantage by working together. As more people mine PacketCrypt, they will need to invest in more network infrastructure which will become useful later on for making the internet more accessible, as well as operating VPN and empowering people to safely share wifi with their neighbors. In order to mine PKT you must first set up a PKT Wallet. You must use a PKT wallet that is compatible with mining. A mining wallet is required because PKT miners get paid every 60 seconds. As a result of getting paid 1,440 times per day (60 minutes per hour * 24 hours per day) each PKT wallet must have the ability to scale in order to support the amount of mining transactions. Learn how to set up a PKT Wallet [here]. Miners who are working in collaboration with one another are members of a mining pool, therefore all mining of PacketCrypt is done in pools. Mining PKT utilizes 2 distinct stages: announcement mining and block mining. Announcement Mining - Using your CPU to create Announcements Announcement Mining creates a small (1KB) message that is difficult to compress and proves work was done. Announcements are transmitted to and collected by block miners to form blocks. This simulates the transmission of data across the network. Announcement miners must maximize their CPU processing power and bandwidth upload speed for the highest yields. Announcement mining can be done from nearly any device that has a CPU processor and access to bandwidth. To learn more about announcement mining, click [here]. Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks. Block mining involves setting up a mining pool. PKT mining pools require expert networking experience, significant hardware and bandwidth infrastructure with a minimum of 25 gbps of bandwidth ingest. Block miners gain efficiency on the difficulty of the work, based on the amount of new announcements they have in memory at the time of mining. This incentivizes mining pools to pay announcement miners to supply announcements. Block mining is typically done at the mining pool's datacenter.","title":"Intro to PKT Mining"},{"location":"start_mining/intro/#intro-to-pkt-mining","text":"DPKT is mined using the novel PacketCrypt bandwidth-hard mining algorithm which requires bandwidth to mine. Since PacketCrypt is a bandwidth hard proof of work, this means it requires lots of bandwidth to mine in combination with CPU power. Miners collaborate with one another by sending small messages (called Announcements) and the sending of these messages requires bandwidth. Miners get an advantage by working together. As more people mine PacketCrypt, they will need to invest in more network infrastructure which will become useful later on for making the internet more accessible, as well as operating VPN and empowering people to safely share wifi with their neighbors. In order to mine PKT you must first set up a PKT Wallet. You must use a PKT wallet that is compatible with mining. A mining wallet is required because PKT miners get paid every 60 seconds. As a result of getting paid 1,440 times per day (60 minutes per hour * 24 hours per day) each PKT wallet must have the ability to scale in order to support the amount of mining transactions. Learn how to set up a PKT Wallet [here]. Miners who are working in collaboration with one another are members of a mining pool, therefore all mining of PacketCrypt is done in pools. Mining PKT utilizes 2 distinct stages: announcement mining and block mining. Announcement Mining - Using your CPU to create Announcements Announcement Mining creates a small (1KB) message that is difficult to compress and proves work was done. Announcements are transmitted to and collected by block miners to form blocks. This simulates the transmission of data across the network. Announcement miners must maximize their CPU processing power and bandwidth upload speed for the highest yields. Announcement mining can be done from nearly any device that has a CPU processor and access to bandwidth. To learn more about announcement mining, click [here]. Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks. Block mining involves setting up a mining pool. PKT mining pools require expert networking experience, significant hardware and bandwidth infrastructure with a minimum of 25 gbps of bandwidth ingest. Block miners gain efficiency on the difficulty of the work, based on the amount of new announcements they have in memory at the time of mining. This incentivizes mining pools to pay announcement miners to supply announcements. Block mining is typically done at the mining pool's datacenter.","title":"Intro to PKT Mining"},{"location":"start_mining/pkt-mining-pool/","text":"How to Setup a PKT Mining Pool \u00b6 Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks. Block mining involves setting up a mining pool. PKT mining pools require expert networking experience, significant hardware and bandwidth infrastructure with a minimum of 25 gbps of bandwidth ingest. Block miners gain efficiency on the difficulty of the work, based on the amount of new announcements they have in memory at the time of mining. This incentivizes mining pools to pay announcement miners to supply announcements. Block mining is typically done at the mining pool's datacenter. Mining \u00b6 PacketCrypt is a bandwidth hard proof of work , this means it requires lots of bandwidth to mine. Miners collaborate with one another by sending small messages (called Announcements ) and the sending of these messages requires a large amount of bandwidth . Miners who are working in collaboration with one another are members of a mining pool, therefore all mining of PacketCrypt is done in pools. PacketCrypt mining is split into two distinct stages: Announcement Mining - Using your CPU to create Announcements Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks Block mining is typically done at the mining pool's datacenter, however Announcement mining can be done from anywhere. How to Announcement mine \u00b6 There are a number of options available when it comes to installing the PacketCrpyt announcement miner. Choose whichever best suits your technical ability: 1. Install a Pre-built Binary \u00b6 Pre-built packetcrypt binaries (for linux) or installation packages (for macos) and archives (for windows) can be downloaded from packetcrypt releases page . For windows , download the zip archive suffixed with -windows.zip and extract its content. For macos , download the package suffixed with .pkg and click on its icon in the Finder for installation. For linux , download the binary suffixed with -linux_amd64 and rename it packetcrypt . If you're on Arch linux or Manjaro, you can install the packetcrypt AUR package 2. Deploy a Docker Image \u00b6 There is a PacketCrypt Docker image available, which can be used for announcement mining. To install: Download and install Docker for your operating system. Download the PacketCrypt Docker image: $ docker pull thomasjp0x42/packetcrypt There are also PacketCrypt Docker images built without the portable flag ( --no-portable ) which may increase the performance of the announcement mining while reducing CPU compatibility. One such image (compiled on AMD 5950x) is available at thomasjp0x42/packetcrypt-amd64 . Additionally, for ARM devices such as Raspberry Pi, there is an image available at thomasjp0x42/packetcrypt-arm64 . The arm64 image will also work on Apple silicon such as the M1 and M2 chips. Run the container similar to the commands described in the Begin Announcement Mining section, except replace this part of the command: $ packetcrypt with this command to run PacketCrypt from Docker: $ docker run thomasjp0x42/packetcrypt The final command will be formatted like this: $ docker run thomasjp0x42/packetcrypt ann -p More information can be found at the PacketCrypt DockerHub page 3. Build From Source \u00b6 Building from source will generally offer the best mining performance but requires more technical knowledge than the previous two options. First install rust if you haven't, see: rustup git clone https://github.com/cjdelisle/packetcrypt_rs cd packetcrypt_rs cargo build --release See the PacketCrypt GitHub repository for more detailed instructions. Begin Announcement Mining \u00b6 Important You cannot mine into the electrum wallet , You can only mine into the Command Line Wallet , the Pkt.World Wallet or the Mac GUI Wallet . To begin mining, you will need the address of your wallet and you will need to choose a pool. There are two ways to configure the announcement miner; by using CLI parameters or by using a configuration file: Using the CLI packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] [or for windows] packetcrypt.exe ann -p pool_1 [pool_2 pool_3 pool_4] Using a Configuration File A configuration file must be in JSON format. The file can be loaded from the local filesystem or from a web-accessible location. Any CLI parameters used will overide the corresponding settings in the configuration file. Example config.json: { \"payment_addr\": \" \", \"pools\": [ \"pool_1\", \"pool_2\", \"pool_3\", \"pool_4\" ] } packetcrypt ann -c \"./config.json\" [or] packetcrypt ann -c \"https://example.com/config.json\" [or for windows] packetcrypt.exe ann -c \"./config.json\" [or] packetcrypt.exe ann -c \"https://example.com/config.json\" Announcement mining can be done into a single pool or multiple pools. When you announcement mine into multiple pools, you will be paid by each pool that you submit announcements to. pool_1 is the pool running the highest difficulty. If you notice problems, you can test listing the pools in a different order. The number of pools you mine into is at your discretion. If a pool is down or malfunctioning you will notice the pool is not mining at [100%] in your mining feed and you can choose to remove the under-performing or malfunctioning pool. How to install a PKT miner on Mac \u00b6 Install the Zulu or CLI PKT Wallet from https://docs.pkt.cash Download the PacketCrypt.pkg for mac Open your Terminal Install Rust by entering in the command: $ curl --proto '=https' --tlsv1.2 -sSf * https://sh.rustup.rs | sh Press 1 to confirm Enter the command: $ sudo install make Enter the command: $ git clone https://github.com/cjdelisle/packetcrypt_rs Enter the command: $ cd packetcrypt_rs Enter the command: $ ~/.cargo/bin/cargo build --release Enter the command: $ ./target/release/packetcrypt ann -p [your PKT Wallet Address] [pool 1] [pool 2] [pool 3] [pool 4] Choosing Pools to mine in \u00b6 You can mine in as many pools as you have the bandwidth to supply. The same data will be uploaded so your CPU is only used once. Currently the pools which are regularly winning blocks include: Pkteer: http://pool.pkteer.com PKTPool: http://pool.pktpool.io PktWorld: http://pool.pkt.world Zetahash (f.k.a. Srizbi): https://stratum.zetahash.com In general the recommendation is to list the pool with highest difficulty in the first position to ensure your announcements will be accepted, as the standardized policy is to accept announcements of a higher difficulty for pools with a lower base difficulty. In some cases the rewards might vary depending on the pool order regardless of difficulty, subject to custom policies implemented by the respective pools. (Check the relevant channels on Discord for current pool statuses) You should test your daily earnings on each pool to see which one is best. Your mining revenue depends on how much each pool allocates towards announcement miners as well as how much hardware they are using in-house. The pools are winning different blocks and if you mine to just one pool, your not getting any payment from the others when they win a block. It's the same with mining to a pool that is not winning any blocks. Limiting System Resource Usage \u00b6 Limiting the system resources available to Packetcrypt may negatively effect your mining power but can be useful to conserve resources for other processess. Limit CPU Usage \u00b6 Announcement mining is a resource intensive process. By default, Packetcrypt will use 100% of the available CPU resources. CPU usage can be limited by assigning a limited number of threads to packetcrypt using the -t CLI parameter or \"threads\" key if using a configuration file. Example of assigning four (4) threads to Packetcrypt: packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] -t 4 or { \"threads\" 4 } Limit Bandwidth Usage \u00b6 Bandwidth usage is directly related to two main factors: 1 - Mining difficulty of the primary pool (the first pool listed in Packetcrypt pool configuration) A lower difficulty means higher bandwidth usage 2 - The number of pools mined Packetcrypt will send the same Announcements to each pool mined Bandwidth usage can therefore be limited by selecting a higher difficulty pool as the primary pool and/or by mining to fewer pools. Block Mining & Running a Pool \u00b6 Because each block miner must use as much bandwidth as all of the announcement miners combined , block mining is typically done at the location of the pool. Even a pool operator who wanted to support external block mining would find that the pool itself would need enough upload bandwidth to match all of the block miners - which would be completely untenable. If you are interested in block mining, contact the pool operator and discuss sending hardware to their location. Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (one or more) - These are high performance nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (one or more) - These nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if Paymaker (1) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners PacketCrypt Data Flow \u00b6 \u2588 Orange: Announcements are sent from the Announcement miners to the Ann Handlers and then to the Block miners \u2588 Blue: Block shares are sent from block miners to Block Handler(s) \u2588 Purple: Winning blocks are submitted by the Block Handler(s) to pktd and the PKT network \u2588 Pink: Block Handlers and Ann Handlers inform Paymaker of work done by announcement and block miners \u2588 Green: Paymaker configures pktd instance to create blocks which pay the people who have been mining \u2588 Brown: Master gets block templates from pktd instance Black dotted line: All nodes request configuration and block templates from Master node More Information and PacketCrypt Pool Code \u00b6 The code and documentation for running a pool is available on the C / nodejs version of the PacketCrypt project, the new Rust version only contains Announcement Miner and Announcement Handlers. Announcement Difficulty \u00b6 PacketCrypt is designed in such a way that a mining pool can double its effective power by: Doubling the total block mining computation effort Doubling the total announcement mining computation effort, or Doubling the amount of bandwidth between announcement miners and the pool The way that a pool operator limits the amount of bandwidth flowing into the pool, to prevent overloading of the network, is by setting what is known as the announcement difficulty . The announcement difficulty for a pool specifies how much work must be done on an announcement in order for the announcement to be accepted and paid out by the pool. Announcement difficulty serves to slow down the announcement miners to protect the pool's network. In general, doubling the announcement difficulty will halve the amount of bandwidth used by the pool and will also halve the pool's overall mining power, with a limit that setting the announcement difficulty lower than 2 does not bring any additional value. To explain why it works like this, we need to examine the PacketCrypt algorithm rules and the in particular how the block mining software decides which announcements to use when attempting to mine a block. Announcement Set Selection \u00b6 PacketCrypt algorithm allows block miners to perform less work if they are able to prove that they had a certain number of \"high value\" announcements in memory at the time of mining, the exact ratio of actual work a block miner must do to the amount of work the PKT blockchain requires is called the power multipler . For a block miner seeking to optimize their power multiplier, every announcement has a particular level of utility value which is based on the amount of work that was done by the announcement miner (announcement difficulty) and how old the announcement is. We call this the effective difficulty . The effective difficulty of an announcement starts off as the actual difficulty of the work done to mine it and then decreases by half every block-period until it is less than 1 and the announcement is no longer usable for mining. The block mining software selects a subset of announcements which which will give it the best power multiplier based on the PacketCrypt algorithm: power_multiplier = min(effective_difficulty) * ann_count ** 2 The min(effective_difficulty) is the effective difficulty of the \"least valuable\" announcement that is being mined with. Lets assume that announcement miners are providing a steady supply of 1000 announcements per block-period and all announcements have an initial announcement difficulty of 128. The block mining software can choose to mine with 1000 announcements at 128 effective difficulty, or with 2000 announcements at 64 effective difficulty, or with 3000 announcements at 32 effective difficulty and so on. The best choice is to use the previous three block periods which provides a power multiplier that is 225% higher than that of using just the most recent 1 period worth of announcements. This curve is the same no matter what difficulty we are starting with. Optimal Difficulty Curve \u00b6 Knowing that the optimal announcement set is all of those announcements mined over the past 3 block periods, we can compute the overall power of a pool as the announcement difficulty is raised. At announcement difficulty 1, announcements cannot be used for more than 1 block, but if we imagine that the announcement mining community can produce 1000 announcements per block at difficulty 1 then we can reason that the power multiplier will be 1000 ** 2 or 1 million. At difficulty 2 we can expect the announcement miners will produce 500 announcements per block period but since 2 block periods can be used, the power multiplier is the same. At difficulty 4, the announcement miners will produce 250 announcements per block period and they will be valid for 3 block periods making the power multiplier 750 ** 2 or 562,500. From here, the power output of the power multiplier of the optimal announcement set halves for each doubling of the announcement difficulty, making the optimal difficulty 2 . FAQ for ANN Miners \u00b6 What does overflow mean? \u00b6 When the ann handler receives an announcement, it puts it into a queue, when the queue fills up it responds overflow immediately. The queue can become long, so you may receive \"operation timed out\" you're still being paid, when you receive \"overflow\" you are not being paid. Unfortunately, you may also receive \"operation timed out\" because the handler is unresponsive, it's not obvious which is the reason from looking at the logs. For example, what you will see in the AnnMiner Logs: 1618394538 INFO annmine.rs:519 467 Ke/s 28.56Mb/s overflow: [0, 0, 3072, 0] uploading: [0, 0, 17632, 0] accept/reject: [26932/0, 0/0, 4856/0, 796/0] - goodrate: [100%, 100%, 61%, 100%] 467 Ke/s 467 kilo-encryptions (thousands of encryptions) per second of mining power. 28.56Mb/s Total upload bandwidth (to all pools - combined) overflow: [0, 0, 3072, 0] Overflowed the internal queue of the ann miner, before it was even able to upload to the pool, one number for each pool you're mining to. 3072 Number of anns which are not uploaded to pool #3. uploading [0, 0, 17632, 0] Number of anns currently in-flight in active http requests, again 3rd pool is a problem, others are doing well (in this example). accept/reject [26932/0, 0/0, 4856/0, 796/0] Anns accepted/rejected by each pool, these numbers are based on the previous 10 seconds, pool #2 is giving a zero accepted which might be an issue, keep watching the next message 10 seconds later for another update. goodrate [100%, 100%, 61%, 100%] Goodrate = number of anns accepted divided by number of anns produced. Setting up a Pool \u00b6 Expectations \u00b6 General knowledge of Linux General knowledge of git General knowledge of networking General knowledge of blockchain Access to at least 6 machines running Ubuntu 18.04 LTS or 20.04 LTS , to deploy the following services. Machine 1 : PKT node Machine 2 : Master, Paymaker & Blkhander Machine 3 : AnnHandler Machine 4 : AnnHandler Machine 5 : BlkMiner Machine 6 : BlkMiner Note: It can be done all on a single machine, you just need to pay attention to ports etc. As of June 2022, the network difficulty is high, and given that half of the work is done at pool premises, it's recommended to run at least a dozen BlkMiner machines, with a significant (768GB recommended) ammount of RAM. Block mining & running a pool \u00b6 Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (two or more) - These are nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (two or more) - These high performance nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if they validate the share Paymaker (one) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners General Information \u00b6 Repository Information: \u00b6 The following repositories hold the required programs to run a pool: Repository Tools packetcrypt_rs: https://github.com/cjdelisle/packetcrypt_rs AnnHandler, Blkminer, AnnMiner PacketCrypt: https://github.com/cjdelisle/PacketCrypt/ Master, Paymaker, BlkHandler pktd: https://github.com/pkt-cash/pktd pktd Assumed network Ranges: \u00b6 In this guide we have two separate networks, the public network (198.51.100.0/24), and local network (10.0.16.0/24) to connect AnnHandlers and BlkMiner. Machine Public Network IP Private Network IP Machine 1 198.51.100.1 10.0.16.1 Machine 2 198.51.100.2 10.0.16.2 Machine 3 198.51.100.3 10.0.16.3 Machine 4 198.51.100.4 10.0.16.4 Machine 5 X 10.0.16.5 Machine 6 X 10.0.16.6 Assumed Port Ranges: \u00b6 Service Machine Port/Port Ranges Master Machine 2 8080 Paymaker Machine 2 8081 BlkHandlers Machine 2 8100-8200 AnnHandlers Machine 3 & 4 80 Installation \u00b6 Machine 1 \u00b6 PKTD node: \u00b6 150GB of storage is required at a minimum to run the pktd node. Recommended size is around 250GB of NVMe storage. Install Golang sudo add-apt-repository ppa:longsleep/golang-backports sudo apt update sudo apt install golang-go Install git sudo apt install git Install the pktd node git clone --branch develop https://github.com/pkt-cash/pktd cd pktd ./do The output should show the following: Everything looks good - use ./bin/pktd to launch Machine 2 \u00b6 Master | Paymaker | BlkHandler: \u00b6 Install the required tools: cd ~ sudo add-apt-repository universe sudo apt install git sudo apt install make sudo apt install npm sudo npm cache clean -f sudo npm install -g n sudo n stable Restart your shell ### Add here how to get latest stable version of node Clone the source code: git clone --branch master https://github.com/cjdelisle/PacketCrypt Build the PacketCrypt code cd PacketCrypt npm install Machine 4 - 6 \u00b6 BlkMiner | AnnHandler | AnnMiner: \u00b6 Install the Required tools: sudo apt install gcc git sudo apt install curl curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh Clone packetcrypt_rs git clone --branch develop https://github.com/cjdelisle/packetcrypt_rs Compile PacketCrypt cd packetcrypt_rs ~/.cargo/bin/cargo build --release --features jemalloc Config of pool.js \u00b6 Information: pool.js is located at: ~/PacketCrypt/pool.example.js You need to edit this file, then run: cp ~/PacketCrypt/pool.example.js ~/PacketCrypt/pool.js config.privateSeed \u00b6 Signing of announcements is rarely used, it breaks people mining into multiple pools, and you should set it to null unless \"you know what you're doing\" This seed is used for deriving keys which will be used for signing announcements. Setting this value to an alphanumeric value e.g oHk8TXpbtRRZGtaYYMnIFAzYMrVh6vA8XzKWWXcKbzCThuFLIJ234bHN5peddQFzR2TtQyo58gcFRP7bKg9BeXZirSqp9gVpjBWp In general, this value should be set to the null, as signing announcements is rarely used, and breaks Announcement mining with multiple pools if you have your pool externally accessable, and should only be set if you have a strong understanding and knowledge of what you are doing. config.privateSeed = null If you aren't bothered by, or don't require your announcements to be signed . config.paymakerHttpPasswd \u00b6 Anyone who has this password can make http posts to the paymaker (claim that shares were won) You should make this random and also firewall the paymaker from the public. The upload will be done using Authorization Basic with a username of \"x\" and this as the password config.paymakerHttpPasswd = 'anyone with this password can post results to the paymaker'; You can put the paymaker behind an http proxy if you wish. config.masterUrl \u00b6 This is used by the paymaker and block handler when running them with pool.js, it is used to resolve where the master is. You can either set this as a locally host or put your master behind a nginx proxy config.masterUrl = 'http://localhost:8080'; or if you have your instance public, and you want to have it be resolvable publically, replace the url with your own. config.masterUrl = 'http://pool.pktpool.io'; config.rpc \u00b6 The username and password set here, should be the same username and password used at the end of this guide for when you configure the pktd service. user: 'x', pass: 'x', config.annHandlers \u00b6 Information: config.annHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. As the AnnHandler will be run on the same machine as the BlkMiner you need to make sure there are no over-lapping port bindings. If you plan to allow external AnnMiners (AnnMiners not on your LAN to mine against your pool, the url's placed in the AnnHandlers list, should be externally resolvable. The address that is advertized for accessing this ann handler (external address) If running locally use: url: 'http://10.0.16.3:8081','http://10.0.16.4:8081' If allowing external annminers use a resolved address such as: url: 'http://ann1.pktpool.io','http://ann2.pktpool.io' Replace the url with your own. config.blkHandlers \u00b6 Information: config.blkHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. BlockHandlers are low-effort high-volume single-threaded workers. What address should be advertized for accessing this BlkHander, again make sure there are no overlapping ports. If you are wanting to support external blockminers, this address should be externally resolvable url: 'http://localhost:8100', This is the port that the blkHandler will bind to. port: 8082, This is the host that the blkHandler will bind to. host: '::', This is how many requests a blkHandler can queue before the handler starts rejecting requests maxConnections: 50, root: config config.master \u00b6 Which port to run the master on port: 8080, What address to bind to, set to localhost if proxying host: '::', Minimum work for an announcement. This number is effectively a bandwidth divisor, every time you double this number you will reduce your bandwidth by a factor of two. annMinWork: Util.annWorkToTarget(128), Average number of shares per block, reducing this number will reduce load on your block handlers, but increasing it will allow payment to be spread more evenly between block miners. This wants to be set to a higher number than one, for the purpose of constantly testing that the block miners are making valid shares. You may have a block miner sitting for hours without a share and then when it wins one, it can become invalid because of misconfiguration shareWorkDivisor: 4, Which versions of announcements we will accept annVersions: [1], Request that ann miners mine announcements that are this many blocks old. Announcements contain a commitment of the most recent block hash but they need 3 blocks to \"mature\" before they can be used The point of this is so that PacketCrypt is about bandwidth, not latency. But there is a risk: If there is a surge then you are going to be starved for announcements When you are starved, you will have few usable anns which causes a slow-down in mining and the announcements which are being submitted are not usable. When you win a few blocks, those announcements become usable and you surge, which causes you to go back into starvation again. This should be set to either: 0 Which means the announcements you are receiving are used instantly 3 Which means you are waiting for the announcements to mature before using them. If running your own AnnMiners, it is advisable to set this to 0, and add the --mineold 3 to some of your AnnMiner startups on the CLI. This helps to keep a balance between keeping your pool as powerful as possible, along with having AnnMiners to help out in the case of a starvation mineOldAnns: 0, config.payMaker \u00b6 How the miners should access the paymaker (external address), replace the url with your own. url: 'pool.pktpool.io', Which port to run the paymaker on port: 8081, What address to bind to, set to localhost if proxying host: '::', Seconds between sending updates to pktd. If this set to zero, the payMaker will accept log uploads but will not send any changes of payout data to pktd. updateCycle: 120, updateCycle: 0 to disable How many seconds backward to keep history in memory historyDepth: 60 * 60 * 24 * 30, Maximum number of simultanious connections to accept before sending 500 errors maxConnections: 200, annCompressor \u00b6 Store data in 1 minute aggregations timespanMs: 1000 * 60, Allow data to be submitted to any of the last 10 aggregations slotsToKeepEvents: 10, What fraction of the payout to pay to block miners (the rest will be paid to ann miners) ( Pay per last N shares ) blockPayoutFraction: 0.5, What percent of the total winnings should be taken for pool management poolFee: 0.40, The address which should be paid the pool fee poolFeeAddress: \"pkt1qyc9dkhca7uc84zn3vlgd0h0fxr3twwn34qgeqe\", This constant will affect how far back into history we pay our announcement miners ( Pay per last N shares ) pplnsAnnConstantX: 0.125, This constant will affect how far back into history we pay our block miners ( Pay per last N shares ) pplnsBlkConstantX: 2, When there are not enough shares to fairly spread out the winnings, pay what is left over to this address. defaultAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\", When something goes wrong, direct pktd to send all coins here, if this is different from the defaultAddress then it is possible to account for and pay out to the miners later when the problem is fixed. errorAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\", Config of pool.toml \u00b6 Information: - pool.example.toml is located at: ~/packetcrypt_rs/pool.example.toml - You need to edit this file, then run: ~/packetcrypt_rs/pool.example.toml ~/packetcrypt_rs/pool.toml Password used by your paymaker to post logs for payment, the same as config.paymakerHttpPasswd paymaker_http_password = \"you'll want this to be a secret\" URL of the pool master, used for getting configuration and work, the same as: Replace the url with your own. master_url = \"http://pool.pktpool.io\" ann_handler.ah* \u00b6 You can have multiple ann_handlers, you can do this by defining each one such as: [ann_handler.ah0] \"parameters\" [ann_handler.ah1] \"parameters\" These can all be in a single file to be used by each annhandler, when starting the annhandlers, you would start them with on each respective machine: packetcrypt ah --config /path/to/config.toml ah0 packetcrypt ah --config /path/to/config.toml ah1 Number of threads to dedicate to the AnnHandler num_workers = 8 Length of the input queue, keeping this low will create back-pressure and prevent miners from posting too many announcements when the server is in fact overloaded input_queue_len = 256 The public url of the annhandler, this should match what is set in your pool.js Replace the url with your own. public_url = \"http://ann1.pktpool.io/submit\" Bind to this port bind_port = \"198.51.100.3:80\" Bind this port to the sprayer component bind_pvt = \"10.0.16.3:6666\" Set sprayer spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 For Machine 3 you should end up with something like this [ann_handler.ah0] block_miner_passwd = \"no one steals my anns\" skip_check_chance = 0 num_workers = 8 input_queue_len = 512 public_url = \"http://ann1.pktpool.io/submit\" bind_pub = \"198.51.100.3:80\" bind_pvt = \"10.0.16.3:6666\" spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 subscribe_to = [] files_to_keep = 512 The same logic should be followed for Machine 4 and other handlers you may have. NOTE: To bind low ports with non-root user run: \u00b6 sudo setcap CAP_NET_BIND_SERVICE=+eip $(which packetcrypt) Running Manually \u00b6 Machine 1 \u00b6 Information: These tasks need to be run in the order they are presented PKTD needs to have downloaded the full chain first, you will know when the node is upto date when height is equal to the current block on the explorer It can take 12+ hours to fully sync to the current block height PKTD \u00b6 --rpcuser and --rpcpass should match the values set in pool.js under config.rpc ./pktd/bin/pktd --rpcuser=XXX --rpcpass=XXX --miningaddr Machine 2 \u00b6 Master \u00b6 node ./pool.js --master Paymaker \u00b6 node ./pool.js --payMaker BlkHandler(s) \u00b6 Launch the BlkHandler nodes, specify --blk0 for the first BlkHandler , --blk1 for the second, and so forth cd PacketCrypt node ./pool.js --blk0 node ./pool.js --blk1 Machine 3 \u00b6 AnnHandler \u00b6 cd packetcrypt_rs ./target/release/packetcrypt ah --config /path/to/pool.toml ah0 Machine 4 \u00b6 AnnHandler \u00b6 cd packetcrypt_rs ./targer/release/packetcrypt ah --config /path/to/pool.toml ah1 Machine 5 and 6 \u00b6 BlkMiner \u00b6 --threads is the number of threads you want to dedicate to the Blkminer, the default is to use all available threads. --paymentaddr is the wallet you want your coins to be mined into, it is advisable to not use the electrum wallet for this. --memorysizemb is how much RAM you are allocating to block mining, Ideally you want to set as much as you can. is the masterUrl of your pool cd packetcrypt_rs ./target/release/packetcrypt blk --paymentaddr --threads 80 --memorysizemb 665000 --handlerpass NoOneStealsMyAnns --subscribe 10.0.16.3:6666 --bind 0.0.0.0:6667 --mcast 239.0.1.1 NGINX Setup (For allowing external AnnMining) \u00b6 Machine 2 \u00b6 Update system and install Nginx sudo apt update sudo apt install nginx Unlink default nginx site unlink /etc/nginx/sites-enabled/default cd /etc/nginx/sites-available Create and edit the reverse-proxy.conf file vim reverse-proxy.conf The config for the services: server { listen 80; listen [::]:80; server_name ; location / { proxy_pass http://localhost:8080/; } } server { listen 80; listen [::]:80; server_name paymaker.pktpool.io; location / { proxy_pass http://localhost:8081/; } } Link new file to sites-enabled ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf Remove default config rm default Check reverse proxy config is correct nginx -t Reload nginx to pick up config changes. sudo systemctl reload nginx","title":"How to Setup a PKT Mining Pool"},{"location":"start_mining/pkt-mining-pool/#how-to-setup-a-pkt-mining-pool","text":"Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks. Block mining involves setting up a mining pool. PKT mining pools require expert networking experience, significant hardware and bandwidth infrastructure with a minimum of 25 gbps of bandwidth ingest. Block miners gain efficiency on the difficulty of the work, based on the amount of new announcements they have in memory at the time of mining. This incentivizes mining pools to pay announcement miners to supply announcements. Block mining is typically done at the mining pool's datacenter.","title":"How to Setup a PKT Mining Pool"},{"location":"start_mining/pkt-mining-pool/#mining","text":"PacketCrypt is a bandwidth hard proof of work , this means it requires lots of bandwidth to mine. Miners collaborate with one another by sending small messages (called Announcements ) and the sending of these messages requires a large amount of bandwidth . Miners who are working in collaboration with one another are members of a mining pool, therefore all mining of PacketCrypt is done in pools. PacketCrypt mining is split into two distinct stages: Announcement Mining - Using your CPU to create Announcements Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks Block mining is typically done at the mining pool's datacenter, however Announcement mining can be done from anywhere.","title":"Mining"},{"location":"start_mining/pkt-mining-pool/#how-to-announcement-mine","text":"There are a number of options available when it comes to installing the PacketCrpyt announcement miner. Choose whichever best suits your technical ability:","title":"How to Announcement mine"},{"location":"start_mining/pkt-mining-pool/#1-install-a-pre-built-binary","text":"Pre-built packetcrypt binaries (for linux) or installation packages (for macos) and archives (for windows) can be downloaded from packetcrypt releases page . For windows , download the zip archive suffixed with -windows.zip and extract its content. For macos , download the package suffixed with .pkg and click on its icon in the Finder for installation. For linux , download the binary suffixed with -linux_amd64 and rename it packetcrypt . If you're on Arch linux or Manjaro, you can install the packetcrypt AUR package","title":"1. Install a Pre-built Binary"},{"location":"start_mining/pkt-mining-pool/#2-deploy-a-docker-image","text":"There is a PacketCrypt Docker image available, which can be used for announcement mining. To install: Download and install Docker for your operating system. Download the PacketCrypt Docker image: $ docker pull thomasjp0x42/packetcrypt There are also PacketCrypt Docker images built without the portable flag ( --no-portable ) which may increase the performance of the announcement mining while reducing CPU compatibility. One such image (compiled on AMD 5950x) is available at thomasjp0x42/packetcrypt-amd64 . Additionally, for ARM devices such as Raspberry Pi, there is an image available at thomasjp0x42/packetcrypt-arm64 . The arm64 image will also work on Apple silicon such as the M1 and M2 chips. Run the container similar to the commands described in the Begin Announcement Mining section, except replace this part of the command: $ packetcrypt with this command to run PacketCrypt from Docker: $ docker run thomasjp0x42/packetcrypt The final command will be formatted like this: $ docker run thomasjp0x42/packetcrypt ann -p More information can be found at the PacketCrypt DockerHub page","title":"2. Deploy a Docker Image"},{"location":"start_mining/pkt-mining-pool/#3-build-from-source","text":"Building from source will generally offer the best mining performance but requires more technical knowledge than the previous two options. First install rust if you haven't, see: rustup git clone https://github.com/cjdelisle/packetcrypt_rs cd packetcrypt_rs cargo build --release See the PacketCrypt GitHub repository for more detailed instructions.","title":"3. Build From Source"},{"location":"start_mining/pkt-mining-pool/#begin-announcement-mining","text":"Important You cannot mine into the electrum wallet , You can only mine into the Command Line Wallet , the Pkt.World Wallet or the Mac GUI Wallet . To begin mining, you will need the address of your wallet and you will need to choose a pool. There are two ways to configure the announcement miner; by using CLI parameters or by using a configuration file: Using the CLI packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] [or for windows] packetcrypt.exe ann -p pool_1 [pool_2 pool_3 pool_4] Using a Configuration File A configuration file must be in JSON format. The file can be loaded from the local filesystem or from a web-accessible location. Any CLI parameters used will overide the corresponding settings in the configuration file. Example config.json: { \"payment_addr\": \" \", \"pools\": [ \"pool_1\", \"pool_2\", \"pool_3\", \"pool_4\" ] } packetcrypt ann -c \"./config.json\" [or] packetcrypt ann -c \"https://example.com/config.json\" [or for windows] packetcrypt.exe ann -c \"./config.json\" [or] packetcrypt.exe ann -c \"https://example.com/config.json\" Announcement mining can be done into a single pool or multiple pools. When you announcement mine into multiple pools, you will be paid by each pool that you submit announcements to. pool_1 is the pool running the highest difficulty. If you notice problems, you can test listing the pools in a different order. The number of pools you mine into is at your discretion. If a pool is down or malfunctioning you will notice the pool is not mining at [100%] in your mining feed and you can choose to remove the under-performing or malfunctioning pool.","title":"Begin Announcement Mining"},{"location":"start_mining/pkt-mining-pool/#how-to-install-a-pkt-miner-on-mac","text":"Install the Zulu or CLI PKT Wallet from https://docs.pkt.cash Download the PacketCrypt.pkg for mac Open your Terminal Install Rust by entering in the command: $ curl --proto '=https' --tlsv1.2 -sSf * https://sh.rustup.rs | sh Press 1 to confirm Enter the command: $ sudo install make Enter the command: $ git clone https://github.com/cjdelisle/packetcrypt_rs Enter the command: $ cd packetcrypt_rs Enter the command: $ ~/.cargo/bin/cargo build --release Enter the command: $ ./target/release/packetcrypt ann -p [your PKT Wallet Address] [pool 1] [pool 2] [pool 3] [pool 4]","title":"How to install a PKT miner on Mac"},{"location":"start_mining/pkt-mining-pool/#choosing-pools-to-mine-in","text":"You can mine in as many pools as you have the bandwidth to supply. The same data will be uploaded so your CPU is only used once. Currently the pools which are regularly winning blocks include: Pkteer: http://pool.pkteer.com PKTPool: http://pool.pktpool.io PktWorld: http://pool.pkt.world Zetahash (f.k.a. Srizbi): https://stratum.zetahash.com In general the recommendation is to list the pool with highest difficulty in the first position to ensure your announcements will be accepted, as the standardized policy is to accept announcements of a higher difficulty for pools with a lower base difficulty. In some cases the rewards might vary depending on the pool order regardless of difficulty, subject to custom policies implemented by the respective pools. (Check the relevant channels on Discord for current pool statuses) You should test your daily earnings on each pool to see which one is best. Your mining revenue depends on how much each pool allocates towards announcement miners as well as how much hardware they are using in-house. The pools are winning different blocks and if you mine to just one pool, your not getting any payment from the others when they win a block. It's the same with mining to a pool that is not winning any blocks.","title":"Choosing Pools to mine in"},{"location":"start_mining/pkt-mining-pool/#limiting-system-resource-usage","text":"Limiting the system resources available to Packetcrypt may negatively effect your mining power but can be useful to conserve resources for other processess.","title":"Limiting System Resource Usage"},{"location":"start_mining/pkt-mining-pool/#limit-cpu-usage","text":"Announcement mining is a resource intensive process. By default, Packetcrypt will use 100% of the available CPU resources. CPU usage can be limited by assigning a limited number of threads to packetcrypt using the -t CLI parameter or \"threads\" key if using a configuration file. Example of assigning four (4) threads to Packetcrypt: packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] -t 4 or { \"threads\" 4 }","title":"Limit CPU Usage"},{"location":"start_mining/pkt-mining-pool/#limit-bandwidth-usage","text":"Bandwidth usage is directly related to two main factors: 1 - Mining difficulty of the primary pool (the first pool listed in Packetcrypt pool configuration) A lower difficulty means higher bandwidth usage 2 - The number of pools mined Packetcrypt will send the same Announcements to each pool mined Bandwidth usage can therefore be limited by selecting a higher difficulty pool as the primary pool and/or by mining to fewer pools.","title":"Limit Bandwidth Usage"},{"location":"start_mining/pkt-mining-pool/#block-mining-running-a-pool","text":"Because each block miner must use as much bandwidth as all of the announcement miners combined , block mining is typically done at the location of the pool. Even a pool operator who wanted to support external block mining would find that the pool itself would need enough upload bandwidth to match all of the block miners - which would be completely untenable. If you are interested in block mining, contact the pool operator and discuss sending hardware to their location. Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (one or more) - These are high performance nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (one or more) - These nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if Paymaker (1) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners","title":"Block Mining & Running a Pool"},{"location":"start_mining/pkt-mining-pool/#packetcrypt-data-flow","text":"\u2588 Orange: Announcements are sent from the Announcement miners to the Ann Handlers and then to the Block miners \u2588 Blue: Block shares are sent from block miners to Block Handler(s) \u2588 Purple: Winning blocks are submitted by the Block Handler(s) to pktd and the PKT network \u2588 Pink: Block Handlers and Ann Handlers inform Paymaker of work done by announcement and block miners \u2588 Green: Paymaker configures pktd instance to create blocks which pay the people who have been mining \u2588 Brown: Master gets block templates from pktd instance Black dotted line: All nodes request configuration and block templates from Master node","title":"PacketCrypt Data Flow"},{"location":"start_mining/pkt-mining-pool/#more-information-and-packetcrypt-pool-code","text":"The code and documentation for running a pool is available on the C / nodejs version of the PacketCrypt project, the new Rust version only contains Announcement Miner and Announcement Handlers.","title":"More Information and PacketCrypt Pool Code"},{"location":"start_mining/pkt-mining-pool/#announcement-difficulty","text":"PacketCrypt is designed in such a way that a mining pool can double its effective power by: Doubling the total block mining computation effort Doubling the total announcement mining computation effort, or Doubling the amount of bandwidth between announcement miners and the pool The way that a pool operator limits the amount of bandwidth flowing into the pool, to prevent overloading of the network, is by setting what is known as the announcement difficulty . The announcement difficulty for a pool specifies how much work must be done on an announcement in order for the announcement to be accepted and paid out by the pool. Announcement difficulty serves to slow down the announcement miners to protect the pool's network. In general, doubling the announcement difficulty will halve the amount of bandwidth used by the pool and will also halve the pool's overall mining power, with a limit that setting the announcement difficulty lower than 2 does not bring any additional value. To explain why it works like this, we need to examine the PacketCrypt algorithm rules and the in particular how the block mining software decides which announcements to use when attempting to mine a block.","title":"Announcement Difficulty"},{"location":"start_mining/pkt-mining-pool/#announcement-set-selection","text":"PacketCrypt algorithm allows block miners to perform less work if they are able to prove that they had a certain number of \"high value\" announcements in memory at the time of mining, the exact ratio of actual work a block miner must do to the amount of work the PKT blockchain requires is called the power multipler . For a block miner seeking to optimize their power multiplier, every announcement has a particular level of utility value which is based on the amount of work that was done by the announcement miner (announcement difficulty) and how old the announcement is. We call this the effective difficulty . The effective difficulty of an announcement starts off as the actual difficulty of the work done to mine it and then decreases by half every block-period until it is less than 1 and the announcement is no longer usable for mining. The block mining software selects a subset of announcements which which will give it the best power multiplier based on the PacketCrypt algorithm: power_multiplier = min(effective_difficulty) * ann_count ** 2 The min(effective_difficulty) is the effective difficulty of the \"least valuable\" announcement that is being mined with. Lets assume that announcement miners are providing a steady supply of 1000 announcements per block-period and all announcements have an initial announcement difficulty of 128. The block mining software can choose to mine with 1000 announcements at 128 effective difficulty, or with 2000 announcements at 64 effective difficulty, or with 3000 announcements at 32 effective difficulty and so on. The best choice is to use the previous three block periods which provides a power multiplier that is 225% higher than that of using just the most recent 1 period worth of announcements. This curve is the same no matter what difficulty we are starting with.","title":"Announcement Set Selection"},{"location":"start_mining/pkt-mining-pool/#optimal-difficulty-curve","text":"Knowing that the optimal announcement set is all of those announcements mined over the past 3 block periods, we can compute the overall power of a pool as the announcement difficulty is raised. At announcement difficulty 1, announcements cannot be used for more than 1 block, but if we imagine that the announcement mining community can produce 1000 announcements per block at difficulty 1 then we can reason that the power multiplier will be 1000 ** 2 or 1 million. At difficulty 2 we can expect the announcement miners will produce 500 announcements per block period but since 2 block periods can be used, the power multiplier is the same. At difficulty 4, the announcement miners will produce 250 announcements per block period and they will be valid for 3 block periods making the power multiplier 750 ** 2 or 562,500. From here, the power output of the power multiplier of the optimal announcement set halves for each doubling of the announcement difficulty, making the optimal difficulty 2 .","title":"Optimal Difficulty Curve"},{"location":"start_mining/pkt-mining-pool/#faq-for-ann-miners","text":"","title":"FAQ for ANN Miners"},{"location":"start_mining/pkt-mining-pool/#what-does-overflow-mean","text":"When the ann handler receives an announcement, it puts it into a queue, when the queue fills up it responds overflow immediately. The queue can become long, so you may receive \"operation timed out\" you're still being paid, when you receive \"overflow\" you are not being paid. Unfortunately, you may also receive \"operation timed out\" because the handler is unresponsive, it's not obvious which is the reason from looking at the logs. For example, what you will see in the AnnMiner Logs: 1618394538 INFO annmine.rs:519 467 Ke/s 28.56Mb/s overflow: [0, 0, 3072, 0] uploading: [0, 0, 17632, 0] accept/reject: [26932/0, 0/0, 4856/0, 796/0] - goodrate: [100%, 100%, 61%, 100%] 467 Ke/s 467 kilo-encryptions (thousands of encryptions) per second of mining power. 28.56Mb/s Total upload bandwidth (to all pools - combined) overflow: [0, 0, 3072, 0] Overflowed the internal queue of the ann miner, before it was even able to upload to the pool, one number for each pool you're mining to. 3072 Number of anns which are not uploaded to pool #3. uploading [0, 0, 17632, 0] Number of anns currently in-flight in active http requests, again 3rd pool is a problem, others are doing well (in this example). accept/reject [26932/0, 0/0, 4856/0, 796/0] Anns accepted/rejected by each pool, these numbers are based on the previous 10 seconds, pool #2 is giving a zero accepted which might be an issue, keep watching the next message 10 seconds later for another update. goodrate [100%, 100%, 61%, 100%] Goodrate = number of anns accepted divided by number of anns produced.","title":"What does overflow mean?"},{"location":"start_mining/pkt-mining-pool/#setting-up-a-pool","text":"","title":"Setting up a Pool"},{"location":"start_mining/pkt-mining-pool/#expectations","text":"General knowledge of Linux General knowledge of git General knowledge of networking General knowledge of blockchain Access to at least 6 machines running Ubuntu 18.04 LTS or 20.04 LTS , to deploy the following services. Machine 1 : PKT node Machine 2 : Master, Paymaker & Blkhander Machine 3 : AnnHandler Machine 4 : AnnHandler Machine 5 : BlkMiner Machine 6 : BlkMiner Note: It can be done all on a single machine, you just need to pay attention to ports etc. As of June 2022, the network difficulty is high, and given that half of the work is done at pool premises, it's recommended to run at least a dozen BlkMiner machines, with a significant (768GB recommended) ammount of RAM.","title":"Expectations"},{"location":"start_mining/pkt-mining-pool/#block-mining-running-a-pool_1","text":"Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (two or more) - These are nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (two or more) - These high performance nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if they validate the share Paymaker (one) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners","title":"Block mining & running a pool"},{"location":"start_mining/pkt-mining-pool/#general-information","text":"","title":"General Information"},{"location":"start_mining/pkt-mining-pool/#repository-information","text":"The following repositories hold the required programs to run a pool: Repository Tools packetcrypt_rs: https://github.com/cjdelisle/packetcrypt_rs AnnHandler, Blkminer, AnnMiner PacketCrypt: https://github.com/cjdelisle/PacketCrypt/ Master, Paymaker, BlkHandler pktd: https://github.com/pkt-cash/pktd pktd","title":"Repository Information:"},{"location":"start_mining/pkt-mining-pool/#assumed-network-ranges","text":"In this guide we have two separate networks, the public network (198.51.100.0/24), and local network (10.0.16.0/24) to connect AnnHandlers and BlkMiner. Machine Public Network IP Private Network IP Machine 1 198.51.100.1 10.0.16.1 Machine 2 198.51.100.2 10.0.16.2 Machine 3 198.51.100.3 10.0.16.3 Machine 4 198.51.100.4 10.0.16.4 Machine 5 X 10.0.16.5 Machine 6 X 10.0.16.6","title":"Assumed network Ranges:"},{"location":"start_mining/pkt-mining-pool/#assumed-port-ranges","text":"Service Machine Port/Port Ranges Master Machine 2 8080 Paymaker Machine 2 8081 BlkHandlers Machine 2 8100-8200 AnnHandlers Machine 3 & 4 80","title":"Assumed Port Ranges:"},{"location":"start_mining/pkt-mining-pool/#installation","text":"","title":"Installation"},{"location":"start_mining/pkt-mining-pool/#machine-1","text":"","title":"Machine 1"},{"location":"start_mining/pkt-mining-pool/#pktd-node","text":"150GB of storage is required at a minimum to run the pktd node. Recommended size is around 250GB of NVMe storage. Install Golang sudo add-apt-repository ppa:longsleep/golang-backports sudo apt update sudo apt install golang-go Install git sudo apt install git Install the pktd node git clone --branch develop https://github.com/pkt-cash/pktd cd pktd ./do The output should show the following: Everything looks good - use ./bin/pktd to launch","title":"PKTD node:"},{"location":"start_mining/pkt-mining-pool/#machine-2","text":"","title":"Machine 2"},{"location":"start_mining/pkt-mining-pool/#master-paymaker-blkhandler","text":"Install the required tools: cd ~ sudo add-apt-repository universe sudo apt install git sudo apt install make sudo apt install npm sudo npm cache clean -f sudo npm install -g n sudo n stable Restart your shell ### Add here how to get latest stable version of node Clone the source code: git clone --branch master https://github.com/cjdelisle/PacketCrypt Build the PacketCrypt code cd PacketCrypt npm install","title":"Master | Paymaker | BlkHandler:"},{"location":"start_mining/pkt-mining-pool/#machine-4-6","text":"","title":"Machine 4 - 6"},{"location":"start_mining/pkt-mining-pool/#blkminer-annhandler-annminer","text":"Install the Required tools: sudo apt install gcc git sudo apt install curl curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh Clone packetcrypt_rs git clone --branch develop https://github.com/cjdelisle/packetcrypt_rs Compile PacketCrypt cd packetcrypt_rs ~/.cargo/bin/cargo build --release --features jemalloc","title":"BlkMiner | AnnHandler | AnnMiner:"},{"location":"start_mining/pkt-mining-pool/#config-of-pooljs","text":"Information: pool.js is located at: ~/PacketCrypt/pool.example.js You need to edit this file, then run: cp ~/PacketCrypt/pool.example.js ~/PacketCrypt/pool.js","title":"Config of pool.js"},{"location":"start_mining/pkt-mining-pool/#configprivateseed","text":"Signing of announcements is rarely used, it breaks people mining into multiple pools, and you should set it to null unless \"you know what you're doing\" This seed is used for deriving keys which will be used for signing announcements. Setting this value to an alphanumeric value e.g oHk8TXpbtRRZGtaYYMnIFAzYMrVh6vA8XzKWWXcKbzCThuFLIJ234bHN5peddQFzR2TtQyo58gcFRP7bKg9BeXZirSqp9gVpjBWp In general, this value should be set to the null, as signing announcements is rarely used, and breaks Announcement mining with multiple pools if you have your pool externally accessable, and should only be set if you have a strong understanding and knowledge of what you are doing. config.privateSeed = null If you aren't bothered by, or don't require your announcements to be signed .","title":"config.privateSeed"},{"location":"start_mining/pkt-mining-pool/#configpaymakerhttppasswd","text":"Anyone who has this password can make http posts to the paymaker (claim that shares were won) You should make this random and also firewall the paymaker from the public. The upload will be done using Authorization Basic with a username of \"x\" and this as the password config.paymakerHttpPasswd = 'anyone with this password can post results to the paymaker'; You can put the paymaker behind an http proxy if you wish.","title":"config.paymakerHttpPasswd"},{"location":"start_mining/pkt-mining-pool/#configmasterurl","text":"This is used by the paymaker and block handler when running them with pool.js, it is used to resolve where the master is. You can either set this as a locally host or put your master behind a nginx proxy config.masterUrl = 'http://localhost:8080'; or if you have your instance public, and you want to have it be resolvable publically, replace the url with your own. config.masterUrl = 'http://pool.pktpool.io';","title":"config.masterUrl"},{"location":"start_mining/pkt-mining-pool/#configrpc","text":"The username and password set here, should be the same username and password used at the end of this guide for when you configure the pktd service. user: 'x', pass: 'x',","title":"config.rpc"},{"location":"start_mining/pkt-mining-pool/#configannhandlers","text":"Information: config.annHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. As the AnnHandler will be run on the same machine as the BlkMiner you need to make sure there are no over-lapping port bindings. If you plan to allow external AnnMiners (AnnMiners not on your LAN to mine against your pool, the url's placed in the AnnHandlers list, should be externally resolvable. The address that is advertized for accessing this ann handler (external address) If running locally use: url: 'http://10.0.16.3:8081','http://10.0.16.4:8081' If allowing external annminers use a resolved address such as: url: 'http://ann1.pktpool.io','http://ann2.pktpool.io' Replace the url with your own.","title":"config.annHandlers"},{"location":"start_mining/pkt-mining-pool/#configblkhandlers","text":"Information: config.blkHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. BlockHandlers are low-effort high-volume single-threaded workers. What address should be advertized for accessing this BlkHander, again make sure there are no overlapping ports. If you are wanting to support external blockminers, this address should be externally resolvable url: 'http://localhost:8100', This is the port that the blkHandler will bind to. port: 8082, This is the host that the blkHandler will bind to. host: '::', This is how many requests a blkHandler can queue before the handler starts rejecting requests maxConnections: 50, root: config","title":"config.blkHandlers"},{"location":"start_mining/pkt-mining-pool/#configmaster","text":"Which port to run the master on port: 8080, What address to bind to, set to localhost if proxying host: '::', Minimum work for an announcement. This number is effectively a bandwidth divisor, every time you double this number you will reduce your bandwidth by a factor of two. annMinWork: Util.annWorkToTarget(128), Average number of shares per block, reducing this number will reduce load on your block handlers, but increasing it will allow payment to be spread more evenly between block miners. This wants to be set to a higher number than one, for the purpose of constantly testing that the block miners are making valid shares. You may have a block miner sitting for hours without a share and then when it wins one, it can become invalid because of misconfiguration shareWorkDivisor: 4, Which versions of announcements we will accept annVersions: [1], Request that ann miners mine announcements that are this many blocks old. Announcements contain a commitment of the most recent block hash but they need 3 blocks to \"mature\" before they can be used The point of this is so that PacketCrypt is about bandwidth, not latency. But there is a risk: If there is a surge then you are going to be starved for announcements When you are starved, you will have few usable anns which causes a slow-down in mining and the announcements which are being submitted are not usable. When you win a few blocks, those announcements become usable and you surge, which causes you to go back into starvation again. This should be set to either: 0 Which means the announcements you are receiving are used instantly 3 Which means you are waiting for the announcements to mature before using them. If running your own AnnMiners, it is advisable to set this to 0, and add the --mineold 3 to some of your AnnMiner startups on the CLI. This helps to keep a balance between keeping your pool as powerful as possible, along with having AnnMiners to help out in the case of a starvation mineOldAnns: 0,","title":"config.master"},{"location":"start_mining/pkt-mining-pool/#configpaymaker","text":"How the miners should access the paymaker (external address), replace the url with your own. url: 'pool.pktpool.io', Which port to run the paymaker on port: 8081, What address to bind to, set to localhost if proxying host: '::', Seconds between sending updates to pktd. If this set to zero, the payMaker will accept log uploads but will not send any changes of payout data to pktd. updateCycle: 120, updateCycle: 0 to disable How many seconds backward to keep history in memory historyDepth: 60 * 60 * 24 * 30, Maximum number of simultanious connections to accept before sending 500 errors maxConnections: 200,","title":"config.payMaker"},{"location":"start_mining/pkt-mining-pool/#anncompressor","text":"Store data in 1 minute aggregations timespanMs: 1000 * 60, Allow data to be submitted to any of the last 10 aggregations slotsToKeepEvents: 10, What fraction of the payout to pay to block miners (the rest will be paid to ann miners) ( Pay per last N shares ) blockPayoutFraction: 0.5, What percent of the total winnings should be taken for pool management poolFee: 0.40, The address which should be paid the pool fee poolFeeAddress: \"pkt1qyc9dkhca7uc84zn3vlgd0h0fxr3twwn34qgeqe\", This constant will affect how far back into history we pay our announcement miners ( Pay per last N shares ) pplnsAnnConstantX: 0.125, This constant will affect how far back into history we pay our block miners ( Pay per last N shares ) pplnsBlkConstantX: 2, When there are not enough shares to fairly spread out the winnings, pay what is left over to this address. defaultAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\", When something goes wrong, direct pktd to send all coins here, if this is different from the defaultAddress then it is possible to account for and pay out to the miners later when the problem is fixed. errorAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\",","title":"annCompressor"},{"location":"start_mining/pkt-mining-pool/#config-of-pooltoml","text":"Information: - pool.example.toml is located at: ~/packetcrypt_rs/pool.example.toml - You need to edit this file, then run: ~/packetcrypt_rs/pool.example.toml ~/packetcrypt_rs/pool.toml Password used by your paymaker to post logs for payment, the same as config.paymakerHttpPasswd paymaker_http_password = \"you'll want this to be a secret\" URL of the pool master, used for getting configuration and work, the same as: Replace the url with your own. master_url = \"http://pool.pktpool.io\"","title":"Config of pool.toml"},{"location":"start_mining/pkt-mining-pool/#ann_handlerah","text":"You can have multiple ann_handlers, you can do this by defining each one such as: [ann_handler.ah0] \"parameters\" [ann_handler.ah1] \"parameters\" These can all be in a single file to be used by each annhandler, when starting the annhandlers, you would start them with on each respective machine: packetcrypt ah --config /path/to/config.toml ah0 packetcrypt ah --config /path/to/config.toml ah1 Number of threads to dedicate to the AnnHandler num_workers = 8 Length of the input queue, keeping this low will create back-pressure and prevent miners from posting too many announcements when the server is in fact overloaded input_queue_len = 256 The public url of the annhandler, this should match what is set in your pool.js Replace the url with your own. public_url = \"http://ann1.pktpool.io/submit\" Bind to this port bind_port = \"198.51.100.3:80\" Bind this port to the sprayer component bind_pvt = \"10.0.16.3:6666\" Set sprayer spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 For Machine 3 you should end up with something like this [ann_handler.ah0] block_miner_passwd = \"no one steals my anns\" skip_check_chance = 0 num_workers = 8 input_queue_len = 512 public_url = \"http://ann1.pktpool.io/submit\" bind_pub = \"198.51.100.3:80\" bind_pvt = \"10.0.16.3:6666\" spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 subscribe_to = [] files_to_keep = 512 The same logic should be followed for Machine 4 and other handlers you may have.","title":"ann_handler.ah*"},{"location":"start_mining/pkt-mining-pool/#note-to-bind-low-ports-with-non-root-user-run","text":"sudo setcap CAP_NET_BIND_SERVICE=+eip $(which packetcrypt)","title":"NOTE: To bind low ports with non-root user run:"},{"location":"start_mining/pkt-mining-pool/#running-manually","text":"","title":"Running Manually"},{"location":"start_mining/pkt-mining-pool/#machine-1_1","text":"Information: These tasks need to be run in the order they are presented PKTD needs to have downloaded the full chain first, you will know when the node is upto date when height is equal to the current block on the explorer It can take 12+ hours to fully sync to the current block height","title":"Machine 1"},{"location":"start_mining/pkt-mining-pool/#pktd","text":"--rpcuser and --rpcpass should match the values set in pool.js under config.rpc ./pktd/bin/pktd --rpcuser=XXX --rpcpass=XXX --miningaddr ","title":"PKTD"},{"location":"start_mining/pkt-mining-pool/#machine-2_1","text":"","title":"Machine 2"},{"location":"start_mining/pkt-mining-pool/#master","text":"node ./pool.js --master","title":"Master"},{"location":"start_mining/pkt-mining-pool/#paymaker","text":"node ./pool.js --payMaker","title":"Paymaker"},{"location":"start_mining/pkt-mining-pool/#blkhandlers","text":"Launch the BlkHandler nodes, specify --blk0 for the first BlkHandler , --blk1 for the second, and so forth cd PacketCrypt node ./pool.js --blk0 node ./pool.js --blk1","title":"BlkHandler(s)"},{"location":"start_mining/pkt-mining-pool/#machine-3","text":"","title":"Machine 3"},{"location":"start_mining/pkt-mining-pool/#annhandler","text":"cd packetcrypt_rs ./target/release/packetcrypt ah --config /path/to/pool.toml ah0","title":"AnnHandler"},{"location":"start_mining/pkt-mining-pool/#machine-4","text":"","title":"Machine 4"},{"location":"start_mining/pkt-mining-pool/#annhandler_1","text":"cd packetcrypt_rs ./targer/release/packetcrypt ah --config /path/to/pool.toml ah1","title":"AnnHandler"},{"location":"start_mining/pkt-mining-pool/#machine-5-and-6","text":"","title":"Machine 5 and 6"},{"location":"start_mining/pkt-mining-pool/#blkminer","text":"--threads is the number of threads you want to dedicate to the Blkminer, the default is to use all available threads. --paymentaddr is the wallet you want your coins to be mined into, it is advisable to not use the electrum wallet for this. --memorysizemb is how much RAM you are allocating to block mining, Ideally you want to set as much as you can. is the masterUrl of your pool cd packetcrypt_rs ./target/release/packetcrypt blk --paymentaddr --threads 80 --memorysizemb 665000 --handlerpass NoOneStealsMyAnns --subscribe 10.0.16.3:6666 --bind 0.0.0.0:6667 --mcast 239.0.1.1","title":"BlkMiner"},{"location":"start_mining/pkt-mining-pool/#nginx-setup-for-allowing-external-annmining","text":"","title":"NGINX Setup (For allowing external AnnMining)"},{"location":"start_mining/pkt-mining-pool/#machine-2_2","text":"Update system and install Nginx sudo apt update sudo apt install nginx Unlink default nginx site unlink /etc/nginx/sites-enabled/default cd /etc/nginx/sites-available Create and edit the reverse-proxy.conf file vim reverse-proxy.conf The config for the services: server { listen 80; listen [::]:80; server_name ; location / { proxy_pass http://localhost:8080/; } } server { listen 80; listen [::]:80; server_name paymaker.pktpool.io; location / { proxy_pass http://localhost:8081/; } } Link new file to sites-enabled ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf Remove default config rm default Check reverse proxy config is correct nginx -t Reload nginx to pick up config changes. sudo systemctl reload nginx","title":"Machine 2"},{"location":"tokenomics/burned-coin-recapture-reconciliation/","text":"Burned Coin Recapture Reconciliation \u00b6","title":"Burned Coin Recapture Reconciliation"},{"location":"tokenomics/burned-coin-recapture-reconciliation/#burned-coin-recapture-reconciliation","text":"","title":"Burned Coin Recapture Reconciliation"},{"location":"tokenomics/dev-team/","text":"Development Team Allocation \u00b6 In order to build the protocol, documentation, and initial marketing, 246 million recaptured burned PoW coins are allocated to the developers and team (\u201cDeveloper Fund\u201d). These funds are subject to the migration airdrip. The Developer Fund totals 4.1% of the supply.","title":"Development Team Allocation"},{"location":"tokenomics/dev-team/#development-team-allocation","text":"In order to build the protocol, documentation, and initial marketing, 246 million recaptured burned PoW coins are allocated to the developers and team (\u201cDeveloper Fund\u201d). These funds are subject to the migration airdrip. The Developer Fund totals 4.1% of the supply.","title":"Development Team Allocation"},{"location":"tokenomics/initial-distribution/","text":"Initial Distribution \u00b6","title":"Initial Distribution"},{"location":"tokenomics/initial-distribution/#initial-distribution","text":"","title":"Initial Distribution"},{"location":"tokenomics/migration-airdrop/","text":"Migration Airdrop \u00b6","title":"Migration Airdrop"},{"location":"tokenomics/migration-airdrop/#migration-airdrop","text":"","title":"Migration Airdrop"},{"location":"tokenomics/proof-of-stake-voting/","text":"Proof-of-Stake Voting \u00b6 The Network Steward is determined using the Electorium voting system. At the time of staking, simply enter in a candidate wallet address to vote for Network Steward. Voting is tallied with staked tokens only (see Governance ). Every Wednesday at 9am PST the candidate who is elected Network Steward will be announced in the PKT Discord.","title":"Proof-of-Stake Voting"},{"location":"tokenomics/proof-of-stake-voting/#proof-of-stake-voting","text":"The Network Steward is determined using the Electorium voting system. At the time of staking, simply enter in a candidate wallet address to vote for Network Steward. Voting is tallied with staked tokens only (see Governance ). Every Wednesday at 9am PST the candidate who is elected Network Steward will be announced in the PKT Discord.","title":"Proof-of-Stake Voting"},{"location":"tokenomics/token-supply/","text":"Token Supply \u00b6 Comprising the 6B tokens, the 705 million burned coins from the PoW have been recaptured and allocated back into the coin supply for the Yield Vault Contract, Marketing Fund and Development Team Allocation. The Yield Vault Contract is the fund that pays daily staking yields and bonus allocations. The Yield Vault includes 365 million recaptured burned PoW coins, which are earmarked to fund the LP Staking yields. The daily Yield Vault payouts align with a yield curve of the PoW. The yield curve is programmed for 10% of the remaining unyielded tokens to be yielded every 100 days and paid out via daily emissions. During Epoch 1 daily yields will be paid to all lockups, without requiring infrastructure pairing. Epoch 1 will begin with daily emissions of 900,421.92 PKT per day yield. Epoch 2 begins on Infrastructure Day, October 30, 2024 at 12:41 UTC. Upon Epoch 2, each stake will be required to pair with one of five different infrastructure node types in order to continue to earn yields (see Infrastructure Yields ). After Epoch 2 a decimation will occur every 100 days and reduce the daily yields by 10%. The Marketing Fund is held in a multi-sig address with 3 signers. The marketing fund multi-sig wallet address is: TBD Signer 1: 0x\u2026 Signer 2: 0x\u2026 Signer 3: 0x\u2026","title":"Token Supply"},{"location":"tokenomics/token-supply/#token-supply","text":"Comprising the 6B tokens, the 705 million burned coins from the PoW have been recaptured and allocated back into the coin supply for the Yield Vault Contract, Marketing Fund and Development Team Allocation. The Yield Vault Contract is the fund that pays daily staking yields and bonus allocations. The Yield Vault includes 365 million recaptured burned PoW coins, which are earmarked to fund the LP Staking yields. The daily Yield Vault payouts align with a yield curve of the PoW. The yield curve is programmed for 10% of the remaining unyielded tokens to be yielded every 100 days and paid out via daily emissions. During Epoch 1 daily yields will be paid to all lockups, without requiring infrastructure pairing. Epoch 1 will begin with daily emissions of 900,421.92 PKT per day yield. Epoch 2 begins on Infrastructure Day, October 30, 2024 at 12:41 UTC. Upon Epoch 2, each stake will be required to pair with one of five different infrastructure node types in order to continue to earn yields (see Infrastructure Yields ). After Epoch 2 a decimation will occur every 100 days and reduce the daily yields by 10%. The Marketing Fund is held in a multi-sig address with 3 signers. The marketing fund multi-sig wallet address is: TBD Signer 1: 0x\u2026 Signer 2: 0x\u2026 Signer 3: 0x\u2026","title":"Token Supply"},{"location":"tokenomics/tokenomics/","text":"Tokenomics \u00b6 PKT has one token that powers both its governance and utility: PKT is an ERC-20 utility token PKT is yielded by staking using the dashboard on https://pkt.cash There are three (3) types of staking after August 21, 2024 (\u201cLaunch\u201d): STANDARD STAKING YIELDS \u00b6 Standard staking yields enable holders to Stake-to-Earn on their tokens. Each 1PKT is equal to 1 Yield Credit. The longer the lockup duration, the higher the yield multiplier on the underlying locked balance. For example if 1 million PKT is staked for 1 year, it will receive 1 million x 4 yield credits, equal to 4 million yield credits. Additional tokens can be added to previous lockups at any time. PKT can be staked into a lockbox with optional renewable terms. Standard Staking Yield Multipliers: PKT locked for 3 months receives 1.5x yield multiplier PKT locked for 6 months receives a 2x yield multiplier PKT locked for 12 months receives a 4x yield multiplier Beginning on October 30, 2024 (\u201cInfrastructure Day\u201d) each stake must pair with an infrastructure node (see Infrastructure ). PKT is also used for governance. Any holder who stakes PKT can vote their stake during lockup, in favor of a Network Steward of their choice. LP STAKING \u00b6 PKT holders who stake the liquidity pool on Uniswap (\u201cLPs\u201d) earn AMM fees paid by the Liquidity Pool. During the first 365 days after Launch, LP\u2019s can earn a pro rata share of a 1,000,000 PKT daily yield by staking LP tokens in a lockup of at least 1 week (\u201cLP Staking\u201d). LP Tokens that are staked into a lockup will receive staking yield multipliers, as listed above. AFFILIATE YIELDS \u00b6 PKT is also earned as a yield bonus paid to affiliates. A yield bonus is earned when someone uses an affiliate code (see Affiliate Rewards ).","title":"Tokenomics"},{"location":"tokenomics/tokenomics/#tokenomics","text":"PKT has one token that powers both its governance and utility: PKT is an ERC-20 utility token PKT is yielded by staking using the dashboard on https://pkt.cash There are three (3) types of staking after August 21, 2024 (\u201cLaunch\u201d):","title":"Tokenomics"},{"location":"tokenomics/tokenomics/#standard-staking-yields","text":"Standard staking yields enable holders to Stake-to-Earn on their tokens. Each 1PKT is equal to 1 Yield Credit. The longer the lockup duration, the higher the yield multiplier on the underlying locked balance. For example if 1 million PKT is staked for 1 year, it will receive 1 million x 4 yield credits, equal to 4 million yield credits. Additional tokens can be added to previous lockups at any time. PKT can be staked into a lockbox with optional renewable terms. Standard Staking Yield Multipliers: PKT locked for 3 months receives 1.5x yield multiplier PKT locked for 6 months receives a 2x yield multiplier PKT locked for 12 months receives a 4x yield multiplier Beginning on October 30, 2024 (\u201cInfrastructure Day\u201d) each stake must pair with an infrastructure node (see Infrastructure ). PKT is also used for governance. Any holder who stakes PKT can vote their stake during lockup, in favor of a Network Steward of their choice.","title":"STANDARD STAKING YIELDS"},{"location":"tokenomics/tokenomics/#lp-staking","text":"PKT holders who stake the liquidity pool on Uniswap (\u201cLPs\u201d) earn AMM fees paid by the Liquidity Pool. During the first 365 days after Launch, LP\u2019s can earn a pro rata share of a 1,000,000 PKT daily yield by staking LP tokens in a lockup of at least 1 week (\u201cLP Staking\u201d). LP Tokens that are staked into a lockup will receive staking yield multipliers, as listed above.","title":"LP STAKING"},{"location":"tokenomics/tokenomics/#affiliate-yields","text":"PKT is also earned as a yield bonus paid to affiliates. A yield bonus is earned when someone uses an affiliate code (see Affiliate Rewards ).","title":"AFFILIATE YIELDS"},{"location":"utility/bia/","text":"BIA \u00b6 The first streaming platform on the PKT Network is BIA, a hub for TV and films. BIA will enable premium content providers to gain access to global distribution with unprecedented revenue transparency using smart contracts and viewership data. Audiences can get paid to support the network and can use their network rewards to cash-out or pay for content. Building Audience \u00b6 Participants install a basic app and are paid to contribute small amounts of internet bandwidth to power the network. The income earned is paid in a digital currency called PKT, which audiences can then use to pay for content. This attracts global audiences interested in passive income and offsets the overhead costs of operating the platform. Premium Curation \u00b6 BIA uses AI technology and an A-list peer review system to curate premium content on the platform. Creators submit their product to renowned talent (producers, talent, etc) who can become revenue-share Premium Executive Producers. AI also identifies trending, up-voted products. This ensures the premium content on the platform. Data Transparency \u00b6 Creators upload their content to the platform using a digital rights management (DRM) dashboard. This enables creators to program a smart contract to automatically pay royalties. When content is purchased, payouts are distributed in real-time to guilds, investors and net profit participants using blockchain technology, with auditable transparency, but without middlemen. Worldwide Accessibility \u00b6 The PKT Network is accessible globally without geo-fencing. This delivers seamless access to worldwide audiences like never before. Using BIA, audiences make money by powering the network. They can cash-out, or use their income to pay for content. As the first platform that pays its audience, BIA can attract adoption and generate revenue like no platform has done before. Revenue Model \u00b6 Once a product is validated by a Premium Executive Producer, it becomes eligible to buy advertising on the platform. Advertising includes home-screen carousels, pre-roll and post-roll spots using a dynamic market bidding system (similar to AdSense). Unvalidated content can be up-voted by audiences into BIA\u2019s trending/discovery categories and then becomes eligible to buy advertising.","title":"BIA"},{"location":"utility/bia/#bia","text":"The first streaming platform on the PKT Network is BIA, a hub for TV and films. BIA will enable premium content providers to gain access to global distribution with unprecedented revenue transparency using smart contracts and viewership data. Audiences can get paid to support the network and can use their network rewards to cash-out or pay for content.","title":"BIA"},{"location":"utility/bia/#building-audience","text":"Participants install a basic app and are paid to contribute small amounts of internet bandwidth to power the network. The income earned is paid in a digital currency called PKT, which audiences can then use to pay for content. This attracts global audiences interested in passive income and offsets the overhead costs of operating the platform.","title":"Building Audience"},{"location":"utility/bia/#premium-curation","text":"BIA uses AI technology and an A-list peer review system to curate premium content on the platform. Creators submit their product to renowned talent (producers, talent, etc) who can become revenue-share Premium Executive Producers. AI also identifies trending, up-voted products. This ensures the premium content on the platform.","title":"Premium Curation"},{"location":"utility/bia/#data-transparency","text":"Creators upload their content to the platform using a digital rights management (DRM) dashboard. This enables creators to program a smart contract to automatically pay royalties. When content is purchased, payouts are distributed in real-time to guilds, investors and net profit participants using blockchain technology, with auditable transparency, but without middlemen.","title":"Data Transparency"},{"location":"utility/bia/#worldwide-accessibility","text":"The PKT Network is accessible globally without geo-fencing. This delivers seamless access to worldwide audiences like never before. Using BIA, audiences make money by powering the network. They can cash-out, or use their income to pay for content. As the first platform that pays its audience, BIA can attract adoption and generate revenue like no platform has done before.","title":"Worldwide Accessibility"},{"location":"utility/bia/#revenue-model","text":"Once a product is validated by a Premium Executive Producer, it becomes eligible to buy advertising on the platform. Advertising includes home-screen carousels, pre-roll and post-roll spots using a dynamic market bidding system (similar to AdSense). Unvalidated content can be up-voted by audiences into BIA\u2019s trending/discovery categories and then becomes eligible to buy advertising.","title":"Revenue Model"},{"location":"utility/content/","text":"Content & Media \u00b6 PKT Network is built to address the systemic problems that both audiences and content creators are suffering from. Audiences have content fatigue. Every major streaming platform is vying for attention and looking to charge high subscription fees for providing more content than anyone can realistically consume. Content creators of premium film and TV shows consistently struggle to find fair and reputable distribution. Projects that do find distribution suffer from lack of revenue transparency and systemic distributor failures to provide timely, accurate, royalty statements and payments. The incumbent platforms are guarded by gatekeepers that notoriously pay low, or zero acquisition fees, charge extremely distribution fees and inefficiently spend marketing dollars that must be recouped before profit participation begins. Mid-tier platforms lack audiences and big marketing budgets, which limits alternatives. The PKT Network delivers an open media network ecosystem where platforms can launch and reach viewers worldwide with no geofencing. Audiences are paid to power the network. They can choose to cash-out and subsidize their content subscription fees on other platforms, or buy content on a platform in the PKT Network.","title":"Content & Media"},{"location":"utility/content/#content-media","text":"PKT Network is built to address the systemic problems that both audiences and content creators are suffering from. Audiences have content fatigue. Every major streaming platform is vying for attention and looking to charge high subscription fees for providing more content than anyone can realistically consume. Content creators of premium film and TV shows consistently struggle to find fair and reputable distribution. Projects that do find distribution suffer from lack of revenue transparency and systemic distributor failures to provide timely, accurate, royalty statements and payments. The incumbent platforms are guarded by gatekeepers that notoriously pay low, or zero acquisition fees, charge extremely distribution fees and inefficiently spend marketing dollars that must be recouped before profit participation begins. Mid-tier platforms lack audiences and big marketing budgets, which limits alternatives. The PKT Network delivers an open media network ecosystem where platforms can launch and reach viewers worldwide with no geofencing. Audiences are paid to power the network. They can choose to cash-out and subsidize their content subscription fees on other platforms, or buy content on a platform in the PKT Network.","title":"Content & Media"},{"location":"utility/ecommerce/","text":"Ecommerce \u00b6 Within the PKT Network, a revolutionary feature allows websites and media platforms to use their web URLs as PKT payment addresses, which fundamentally transforms how transactions are processed online. This unique capability enables peer-to-peer (P2P) transactions directly between users and content providers without the need for centralized payment processors. By utilizing their URLs as payment addresses, website owners and media platforms can directly receive payments in PKT, bypassing traditional financial intermediaries and their associated fees. This system not only simplifies the payment process but also significantly reduces transaction costs. Traditionally, payment processors charge a percentage of each transaction as a fee, which can accumulate to substantial amounts, especially for platforms with high volumes of transactions. With PKT Network\u2019s URL-based payment system, these costs are nearly eliminated. Moreover, this method enhances transaction security and privacy. Since transactions occur directly between the payer and the payee within the decentralized PKT Network, the risks associated with third-party payment processors, delays in payment, charge backs, and financial fraud, are minimized. Additionally, this direct transaction model fosters a closer relationship between creators and their audience, promoting transparency and trust. By facilitating direct and cost-effective transactions, PKT Network empowers websites and media platforms, making it an attractive option for digital content providers seeking greater control and efficiency in their revenue streams.","title":"Ecommerce"},{"location":"utility/ecommerce/#ecommerce","text":"Within the PKT Network, a revolutionary feature allows websites and media platforms to use their web URLs as PKT payment addresses, which fundamentally transforms how transactions are processed online. This unique capability enables peer-to-peer (P2P) transactions directly between users and content providers without the need for centralized payment processors. By utilizing their URLs as payment addresses, website owners and media platforms can directly receive payments in PKT, bypassing traditional financial intermediaries and their associated fees. This system not only simplifies the payment process but also significantly reduces transaction costs. Traditionally, payment processors charge a percentage of each transaction as a fee, which can accumulate to substantial amounts, especially for platforms with high volumes of transactions. With PKT Network\u2019s URL-based payment system, these costs are nearly eliminated. Moreover, this method enhances transaction security and privacy. Since transactions occur directly between the payer and the payee within the decentralized PKT Network, the risks associated with third-party payment processors, delays in payment, charge backs, and financial fraud, are minimized. Additionally, this direct transaction model fosters a closer relationship between creators and their audience, promoting transparency and trust. By facilitating direct and cost-effective transactions, PKT Network empowers websites and media platforms, making it an attractive option for digital content providers seeking greater control and efficiency in their revenue streams.","title":"Ecommerce"},{"location":"utility/markets/","text":"Bandwidth Markets \u00b6 With the migration to Base, PKT is now able to begin tokenizing bandwidth using RWAs. These RWA\u2019s will represent access rights to bandwidth over a period of time and serve as a unique way to quantify and monetize the value of the PKT node operators' resources. These RWA\u2019s should then be exchangeable in a decentralized bandwidth trading marketplace, or even sellable to internet service providers (ISPs) looking to expand their network capacity. The challenge in creating a marketplace for bandwidth-backed RWAs is that bandwidth quality varies significantly depending on network infrastructure, the node operator\u2019s location, and demand. These factors all make it difficult to accurately price these assets and ensure fair market dynamics. PKT is partnered with Allora AI to provide price predictions. This enables analysis of vast amounts of data to create highly accurate AI-generated prices to establish a reliable source of truth for bandwidth pricing. The result is for enabling PKT\u2019s bandwidth marketplace to function more efficiently and transparently. By integrating with Allora\u2019s plug-and-play AI price predictions and self-improving machine intelligence network, the PKT project can operate at the forefront of AI development tools and computational resources. Allora is a network that enables different ML models to simultaneously evaluate and learn from other models on the network to collaboratively optimize shared ML objectives (for example, accurately assessing the price of an RWA). The network uses the results from these models to create an aggregated meta-inference which consistently outperforms any individual model on the network, thus creating a source of highly-performant collective intelligence. Over the last 3 years, models built by the Allora Labs team (formerly known as Upshot) have effectively produced price predictions for more than 400 million assets with a 95-99% confidence for the most accurate predictions. As such, this collaboration blends Allora\u2019s powerful AI price predictions with the development of PKT\u2019s bandwidth-backed RWAs and decentralized markets, to create AI powered, bandwidth trading marketplaces. Allora price prediction models will predict the fair value of bandwidth-backed RWAs based on various factors such as network quality, location, and demand. PKT node operators will be able to tokenize their bandwidth-backed RWAs into the marketplace, with prices calibrated using Allora's AI predictions. Buyers, such as internet service providers (ISPs) or other interested parties, can purchase these RWAs on the marketplace, confident in the fair pricing recommended by the AI models.","title":"Bandwidth Markets"},{"location":"utility/markets/#bandwidth-markets","text":"With the migration to Base, PKT is now able to begin tokenizing bandwidth using RWAs. These RWA\u2019s will represent access rights to bandwidth over a period of time and serve as a unique way to quantify and monetize the value of the PKT node operators' resources. These RWA\u2019s should then be exchangeable in a decentralized bandwidth trading marketplace, or even sellable to internet service providers (ISPs) looking to expand their network capacity. The challenge in creating a marketplace for bandwidth-backed RWAs is that bandwidth quality varies significantly depending on network infrastructure, the node operator\u2019s location, and demand. These factors all make it difficult to accurately price these assets and ensure fair market dynamics. PKT is partnered with Allora AI to provide price predictions. This enables analysis of vast amounts of data to create highly accurate AI-generated prices to establish a reliable source of truth for bandwidth pricing. The result is for enabling PKT\u2019s bandwidth marketplace to function more efficiently and transparently. By integrating with Allora\u2019s plug-and-play AI price predictions and self-improving machine intelligence network, the PKT project can operate at the forefront of AI development tools and computational resources. Allora is a network that enables different ML models to simultaneously evaluate and learn from other models on the network to collaboratively optimize shared ML objectives (for example, accurately assessing the price of an RWA). The network uses the results from these models to create an aggregated meta-inference which consistently outperforms any individual model on the network, thus creating a source of highly-performant collective intelligence. Over the last 3 years, models built by the Allora Labs team (formerly known as Upshot) have effectively produced price predictions for more than 400 million assets with a 95-99% confidence for the most accurate predictions. As such, this collaboration blends Allora\u2019s powerful AI price predictions with the development of PKT\u2019s bandwidth-backed RWAs and decentralized markets, to create AI powered, bandwidth trading marketplaces. Allora price prediction models will predict the fair value of bandwidth-backed RWAs based on various factors such as network quality, location, and demand. PKT node operators will be able to tokenize their bandwidth-backed RWAs into the marketplace, with prices calibrated using Allora's AI predictions. Buyers, such as internet service providers (ISPs) or other interested parties, can purchase these RWAs on the marketplace, confident in the fair pricing recommended by the AI models.","title":"Bandwidth Markets"},{"location":"utility/transparency/","text":"Payments Transparency \u00b6 Leveraging its blockchain technology for media content payments, the PKT Network is built to deliver revolutionary revenue transparency. With every transaction recorded on a decentralized and immutable ledger, and using smart contracts, the PKT Network ensures that all financial activities are transparent and verifiable by all parties involved. This transparency is crucial in the media industry, where revenue flows can often be complex and opaque. For content creators, PKT Network's use of smart contracts automates the distribution of royalties or earnings based on predefined rules, all without intermediaries. This direct method of payment minimizes discrepancies and delays typical of traditional payment systems, allowing creators to see real-time data on the revenue generated by their content. Content financiers and distributors also benefit from PKT Network's transparent system. They can track exactly how funds are being utilized and see the direct impact of their investments, which aids in making more informed decisions about funding initiatives. By providing a transparent, fair, and secure financial environment, PKT Network builds trust among creators, consumers, and investors.","title":"Payments Transparency"},{"location":"utility/transparency/#payments-transparency","text":"Leveraging its blockchain technology for media content payments, the PKT Network is built to deliver revolutionary revenue transparency. With every transaction recorded on a decentralized and immutable ledger, and using smart contracts, the PKT Network ensures that all financial activities are transparent and verifiable by all parties involved. This transparency is crucial in the media industry, where revenue flows can often be complex and opaque. For content creators, PKT Network's use of smart contracts automates the distribution of royalties or earnings based on predefined rules, all without intermediaries. This direct method of payment minimizes discrepancies and delays typical of traditional payment systems, allowing creators to see real-time data on the revenue generated by their content. Content financiers and distributors also benefit from PKT Network's transparent system. They can track exactly how funds are being utilized and see the direct impact of their investments, which aids in making more informed decisions about funding initiatives. By providing a transparent, fair, and secure financial environment, PKT Network builds trust among creators, consumers, and investors.","title":"Payments Transparency"},{"location":"wallet_setup/install-from-seed/","text":"Installing a Wallet From Seed \u00b6 If you already have a PKT wallet and know your seed, you may be able to import your coins into a new wallet. This will depend on the compatibility of your seed with the new wallet. The seed to your wallet is either a list of 15 words which you were instructed to write down during your initial wallet setup. If you set up your wallet in 2019 or early 2020 you may have a seed that is a long alphanumeric string of characters, instead of a list of 15 words. What is important to know about PKT Wallets seeds is that some wallets encrypt the wallet seed using the wallet password. In these cases, you will need to know the seed and the password that was used when the wallet was initially created. It is important to keep your seed and password written down in a safe place where you will remember it. When you are setting up any of the PKT wallets you will be asked if you want to load from seed. Then you will follow the instructions. If you want to migrate your PKT Electrum wallet seed into the PKT CLI wallet, follow these steps [here].","title":"Installing a Wallet From Seed"},{"location":"wallet_setup/install-from-seed/#installing-a-wallet-from-seed","text":"If you already have a PKT wallet and know your seed, you may be able to import your coins into a new wallet. This will depend on the compatibility of your seed with the new wallet. The seed to your wallet is either a list of 15 words which you were instructed to write down during your initial wallet setup. If you set up your wallet in 2019 or early 2020 you may have a seed that is a long alphanumeric string of characters, instead of a list of 15 words. What is important to know about PKT Wallets seeds is that some wallets encrypt the wallet seed using the wallet password. In these cases, you will need to know the seed and the password that was used when the wallet was initially created. It is important to keep your seed and password written down in a safe place where you will remember it. When you are setting up any of the PKT wallets you will be asked if you want to load from seed. Then you will follow the instructions. If you want to migrate your PKT Electrum wallet seed into the PKT CLI wallet, follow these steps [here].","title":"Installing a Wallet From Seed"},{"location":"wallet_setup/install-pkt-electrum/","text":"Installing PKT Electrum (Mac/Windows) \u00b6 Important Electrum is a good lightweight wallet for making and receiving payments, but it lacks scalability and is not appropriate for mining , if you are interested in mining PKT, see pktwallet . First setup \u00b6 MacOS \u00b6 Download the file ending with .dmg from the latest PKT Electrum Releases Open Finder Double-click on your Downloads folder and find and click on electrum-pkt-4.0.2.dmg A new window will open with the PKT Electrum app, click and drag it into your Applications folder Press Command+Space to open your Spotlight Search and type PKT Electrum, when you see the PKT Electrum app, press the Enter key to open it. The first time PKT Electrum is opened, you will get a popup asking you if you want to open it, click open Continue with Setting up your wallet below Windows \u00b6 Download the file ending with .exe from the latest PKT Electrum Releases You will see a popup window telling you the application is not signed by a Microsoft Authorized Developer, always be sure you download PKT Electrum from the original website, do not run any app given to you in a chat, file-sharing or email attachment. Click \"More info\" to show additional options. Click the \"Run anyway\" button to launch PKT Electrum, you won't see this message again. Follow the steps in the setup process. Go to your desktop and you should see a new icon labeled PKT Electrum , click on it. Continue with Setting up your wallet below. Linux \u00b6 Download the file ending with .AppImage from the latest PKT Electrum Releases Click on the downloaded file and PKT Electrum should start up right away. Setting up your wallet \u00b6 Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. First you will be asked if you want to configure the server to connect to, unless you are an advanced user, just click \"next\" Next select your wallet, you give your wallet a name if you wish, or leave it as default_wallet , then click \"next\". You will be prompted to select which type of wallet you are creating, unless you are doing something fancy, you'll want to just click \"next\" Next you will have the option to create a wallet using a secret key from different sources, for the purposes of this tutorial just click next. Next you will be asked if you want to create a \"legacy\" style wallet, this is not needed so just click \"next\" Now PKT Electrum is going to create a seed , it takes the form of 12 words and from it your entire wallet is created If you have these 12 special words, you can recover your PKT even if your computer is lost or damaged If someone else gets access to these 12 words, they can steal all of your PKT It is recommended that you write this on paper and keep in a safe place. After you have written your seed, you will be asked to type it back in, the fast way to do this is by copy/paste to a text pad Now you'll be asked to write it back in, you can copy it from the text pad Make sure you really stored your seed on paper, we do not recommend storing it on any electronic device . Now you will need to pick a passphrase for your wallet This passphrase encrypts your wallet, protecting your PKT even if your computer is stolen Unlike your seed, the passphrase is useless without the wallet file We recommend using https://www.useapassphrase.com/ to pick a strong passphrase for you You can store your passphrase on your phone to have easy access Congratulations, you now have a PKT wallet! It will require about 5 minutes to synchronize with the PKT blockchain, but you can still use it while this is happening. Receiving PKT \u00b6 To receive coins, you need to create a new PKT address Click the \"Receive\" tab Type a description for the purpose of receiving the coins, this will appear in the notification when you get paid Set the expiration, if this is not an invoice , you can choose \"never\" After you click \"Request\", your wallet will create a new address and copy it to your clipboard so you can send it to the person paying you (or transfer money to your new wallet) When PKT gets sent to your new address, you will get a notification. It says \"unconfirmed\" because the transaction has not yet been included in the history of the blockchain. Once your transaction has been included in the blockchain, this icon will change to a clock and then after a few minutes, a checkmark Congratulations, you have received your first PKT Sending PKT \u00b6 To pay PKT to someone else, click on the Send tab and paste the address to be paid Type a description of the payment, this is just for you, it will not be sent to the person you are paying Enter the amount to be paid Click Pay You will be prompted to enter your wallet passphrase in order to decrypt the wallet for one brief moment to send the PKT Every transaction requires a fee for inclusion in the blockchain, this is a very small cost: 132 nPKT is one hundred and thirty two nano-PKT (that means billionths , i.e. 0.000000132 PKT) After you enter your passphrase and click \"send\", you will see a transaction ID , this set of numbers and letters uniquely identifies your transaction and can be used to view it in the block explorer. Just like when receiving, your transaction will appear first as \"unconfirmed\" and then later it will switch to a clock when it has been included in the blockchain. After waiting a few minutes, you will see a clock and then later a checkmark indicating your transaction has been included in the blockchain When people consider a transaction to be \"complete\" depends on the merchant, but in general it should be considered to be ok once it switches from \"unconfirmed\" to the clock icon. Congratulations, you've sent PKT! About Units \u00b6 Each PKT is made up of 1000 milli-PKT, denoted mPKT Each milli-PKT is sub-divided into 1000 micro-PKT, denoted uPKT Each micro-PKT is sub-divided into 1000 nano-PKT, denoted nPKT Advanced usage \u00b6 Recover from seed \u00b6 You can recover a PKT Electrum wallet from the seed you were given when you set it up. To do this follow the same instructions as for any other Electrum wallet: https://bitcoinelectrum.com/restoring-your-standard-wallet-from-seed/ Note that recovery from seed will not work to import addresses from other wallets such as a Gridnode. Multi-signature \u00b6 Setting up multi-signature in PKT Electrum is the same as with Bitcoin Electrum so you can follow this tutorial: https://electrum.readthedocs.io/en/latest/multisig.html How it works \u00b6 PKT Electrum is significantly similar to Bitcoin Electrum. It contacts one of a pool of community operated electrumx servers. Instead of syncing the entire chain it requests information about its addresses from the electrumx server and only downloads enough of the blockchain to verify that the electrumx server is not trying to trick it. In practice this means the wallet needs to check the proof of work and sync the block headers but not the rest of the blocks. Since PKT uses PacketCrypt proof of work, the work verification needs to be different. PacketCrypt headers are fairly large, between 4KB and 16KB, even at only 4KB each they make up 2.1GB of data per year. To maintain security without downloading an unacceptably large amount of data, PKT Electrum downloads only a small number of PacketCrypt proofs near the tip of the chain. If the wallet only downloaded (say) the most recent 100 PacketCrypt proofs, an attacking electrumx server would know exactly how many blocks it needed to mine in order to create a convincing fake chain, PKT Electrum makes this more difficult by using statistical verification. Statistical Verification \u00b6 PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as MIN(100%, K / distance_from_tip) where K is a constant which we set at 20 to make PKT Electrum verify around 200 blocks total. With K = 20 , the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance * block 25 has an 80% chance * block 50 has a 40% chance * block 80 has a 25% chance The distribution of likelyhood of verifying a block is shown by this chart: Running an ElectrumX server \u00b6 If you would like to participate in running your own ElectrumX server to help the PKT Electrum network, you can do so using a simple Docker command. Check out the Docker PKT Electrumx project for more information about how to run an instance. It is important to keep your seed and password written down in a safe place where you will remember it. If your PKT Electrum wallet is mined into, it will break. You will then need to migrate your PKT Electrum wallet to a PKT CLI wallet using the following instructions. Migrating from Electrum to PKTWallet \u00b6 If you have an electrum based wallet which becomes overloaded from too many transactions (e.g. from mining directly into it), then you will need to migrate your keys to a pktwallet instance. Step 1: Setup pktwallet \u00b6 Follow the instructions in pktwallet to get your wallet up and running Step 2: Export your keys \u00b6 In Electrum, click Wallet -> Private Keys -> Export You will be prompted to enter your Electrum wallet password, then a window should appear showing your keys KEEP THESE KEYS SECRET Find an address which you want to migrate and copy the key with that address Do not copy the part which says p2wpkh: , just the letters after it The key will look sometihng like this: ci2TBp2HTWtyMQtizWMuugHxG6lNpInA1bSpLIWzjJS2AI8ObwV5 Step 3: Import key to pktwallet \u00b6 In a terminal window, run pktctl --wallet getbalance to verify that your wallet is working Unlock your wallet using pktctl --wallet walletpassphrase 1000000 Type pktctl --wallet importprivkey You should see the address printed on the screen Importing more keys \u00b6 When you import a key, it starts a rescan of the chain automatically, in order to import more you need to stop pktctl --wallet stopresync to stop Speed things up \u00b6 If you know exactly when an address was paid, you can speed up the import by only rescanning blocks where it might have been paid. For example if you are sure that the address was not paid earlier than block number 600000 you can do the following: pktctl --wallet stopresync pktctl --wallet resync 600000 100000000 Check that it's working \u00b6 It's recommended that you run pktwallet with -d debug flag in order to be able to see the debug logs. When you are resyncing you should see log lines like the following: 1609188780 [DBG] wallet.go:2817 Rescan cycle [620100] 1609188781 [DBG] wallet.go:2817 Rescan cycle [620200] 1609188782 [DBG] wallet.go:2817 Rescan cycle [620300] 1609188783 [DBG] wallet.go:2817 Rescan cycle [620400] The number if the block number which is being scanned. Troubleshooting \u00b6 ErrBirthdayBlockNotSet: birthday block not set Your wallet is not synced yet, wait for it to become synced","title":"Installing PKT Electrum (Mac/Windows)"},{"location":"wallet_setup/install-pkt-electrum/#installing-pkt-electrum-macwindows","text":"Important Electrum is a good lightweight wallet for making and receiving payments, but it lacks scalability and is not appropriate for mining , if you are interested in mining PKT, see pktwallet .","title":"Installing PKT Electrum (Mac/Windows)"},{"location":"wallet_setup/install-pkt-electrum/#first-setup","text":"","title":"First setup"},{"location":"wallet_setup/install-pkt-electrum/#macos","text":"Download the file ending with .dmg from the latest PKT Electrum Releases Open Finder Double-click on your Downloads folder and find and click on electrum-pkt-4.0.2.dmg A new window will open with the PKT Electrum app, click and drag it into your Applications folder Press Command+Space to open your Spotlight Search and type PKT Electrum, when you see the PKT Electrum app, press the Enter key to open it. The first time PKT Electrum is opened, you will get a popup asking you if you want to open it, click open Continue with Setting up your wallet below","title":"MacOS"},{"location":"wallet_setup/install-pkt-electrum/#windows","text":"Download the file ending with .exe from the latest PKT Electrum Releases You will see a popup window telling you the application is not signed by a Microsoft Authorized Developer, always be sure you download PKT Electrum from the original website, do not run any app given to you in a chat, file-sharing or email attachment. Click \"More info\" to show additional options. Click the \"Run anyway\" button to launch PKT Electrum, you won't see this message again. Follow the steps in the setup process. Go to your desktop and you should see a new icon labeled PKT Electrum , click on it. Continue with Setting up your wallet below.","title":"Windows"},{"location":"wallet_setup/install-pkt-electrum/#linux","text":"Download the file ending with .AppImage from the latest PKT Electrum Releases Click on the downloaded file and PKT Electrum should start up right away.","title":"Linux"},{"location":"wallet_setup/install-pkt-electrum/#setting-up-your-wallet","text":"Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. First you will be asked if you want to configure the server to connect to, unless you are an advanced user, just click \"next\" Next select your wallet, you give your wallet a name if you wish, or leave it as default_wallet , then click \"next\". You will be prompted to select which type of wallet you are creating, unless you are doing something fancy, you'll want to just click \"next\" Next you will have the option to create a wallet using a secret key from different sources, for the purposes of this tutorial just click next. Next you will be asked if you want to create a \"legacy\" style wallet, this is not needed so just click \"next\" Now PKT Electrum is going to create a seed , it takes the form of 12 words and from it your entire wallet is created If you have these 12 special words, you can recover your PKT even if your computer is lost or damaged If someone else gets access to these 12 words, they can steal all of your PKT It is recommended that you write this on paper and keep in a safe place. After you have written your seed, you will be asked to type it back in, the fast way to do this is by copy/paste to a text pad Now you'll be asked to write it back in, you can copy it from the text pad Make sure you really stored your seed on paper, we do not recommend storing it on any electronic device . Now you will need to pick a passphrase for your wallet This passphrase encrypts your wallet, protecting your PKT even if your computer is stolen Unlike your seed, the passphrase is useless without the wallet file We recommend using https://www.useapassphrase.com/ to pick a strong passphrase for you You can store your passphrase on your phone to have easy access Congratulations, you now have a PKT wallet! It will require about 5 minutes to synchronize with the PKT blockchain, but you can still use it while this is happening.","title":"Setting up your wallet"},{"location":"wallet_setup/install-pkt-electrum/#receiving-pkt","text":"To receive coins, you need to create a new PKT address Click the \"Receive\" tab Type a description for the purpose of receiving the coins, this will appear in the notification when you get paid Set the expiration, if this is not an invoice , you can choose \"never\" After you click \"Request\", your wallet will create a new address and copy it to your clipboard so you can send it to the person paying you (or transfer money to your new wallet) When PKT gets sent to your new address, you will get a notification. It says \"unconfirmed\" because the transaction has not yet been included in the history of the blockchain. Once your transaction has been included in the blockchain, this icon will change to a clock and then after a few minutes, a checkmark Congratulations, you have received your first PKT","title":"Receiving PKT"},{"location":"wallet_setup/install-pkt-electrum/#sending-pkt","text":"To pay PKT to someone else, click on the Send tab and paste the address to be paid Type a description of the payment, this is just for you, it will not be sent to the person you are paying Enter the amount to be paid Click Pay You will be prompted to enter your wallet passphrase in order to decrypt the wallet for one brief moment to send the PKT Every transaction requires a fee for inclusion in the blockchain, this is a very small cost: 132 nPKT is one hundred and thirty two nano-PKT (that means billionths , i.e. 0.000000132 PKT) After you enter your passphrase and click \"send\", you will see a transaction ID , this set of numbers and letters uniquely identifies your transaction and can be used to view it in the block explorer. Just like when receiving, your transaction will appear first as \"unconfirmed\" and then later it will switch to a clock when it has been included in the blockchain. After waiting a few minutes, you will see a clock and then later a checkmark indicating your transaction has been included in the blockchain When people consider a transaction to be \"complete\" depends on the merchant, but in general it should be considered to be ok once it switches from \"unconfirmed\" to the clock icon. Congratulations, you've sent PKT!","title":"Sending PKT"},{"location":"wallet_setup/install-pkt-electrum/#about-units","text":"Each PKT is made up of 1000 milli-PKT, denoted mPKT Each milli-PKT is sub-divided into 1000 micro-PKT, denoted uPKT Each micro-PKT is sub-divided into 1000 nano-PKT, denoted nPKT","title":"About Units"},{"location":"wallet_setup/install-pkt-electrum/#advanced-usage","text":"","title":"Advanced usage"},{"location":"wallet_setup/install-pkt-electrum/#recover-from-seed","text":"You can recover a PKT Electrum wallet from the seed you were given when you set it up. To do this follow the same instructions as for any other Electrum wallet: https://bitcoinelectrum.com/restoring-your-standard-wallet-from-seed/ Note that recovery from seed will not work to import addresses from other wallets such as a Gridnode.","title":"Recover from seed"},{"location":"wallet_setup/install-pkt-electrum/#multi-signature","text":"Setting up multi-signature in PKT Electrum is the same as with Bitcoin Electrum so you can follow this tutorial: https://electrum.readthedocs.io/en/latest/multisig.html","title":"Multi-signature"},{"location":"wallet_setup/install-pkt-electrum/#how-it-works","text":"PKT Electrum is significantly similar to Bitcoin Electrum. It contacts one of a pool of community operated electrumx servers. Instead of syncing the entire chain it requests information about its addresses from the electrumx server and only downloads enough of the blockchain to verify that the electrumx server is not trying to trick it. In practice this means the wallet needs to check the proof of work and sync the block headers but not the rest of the blocks. Since PKT uses PacketCrypt proof of work, the work verification needs to be different. PacketCrypt headers are fairly large, between 4KB and 16KB, even at only 4KB each they make up 2.1GB of data per year. To maintain security without downloading an unacceptably large amount of data, PKT Electrum downloads only a small number of PacketCrypt proofs near the tip of the chain. If the wallet only downloaded (say) the most recent 100 PacketCrypt proofs, an attacking electrumx server would know exactly how many blocks it needed to mine in order to create a convincing fake chain, PKT Electrum makes this more difficult by using statistical verification.","title":"How it works"},{"location":"wallet_setup/install-pkt-electrum/#statistical-verification","text":"PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as MIN(100%, K / distance_from_tip) where K is a constant which we set at 20 to make PKT Electrum verify around 200 blocks total. With K = 20 , the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance * block 25 has an 80% chance * block 50 has a 40% chance * block 80 has a 25% chance The distribution of likelyhood of verifying a block is shown by this chart:","title":"Statistical Verification"},{"location":"wallet_setup/install-pkt-electrum/#running-an-electrumx-server","text":"If you would like to participate in running your own ElectrumX server to help the PKT Electrum network, you can do so using a simple Docker command. Check out the Docker PKT Electrumx project for more information about how to run an instance. It is important to keep your seed and password written down in a safe place where you will remember it. If your PKT Electrum wallet is mined into, it will break. You will then need to migrate your PKT Electrum wallet to a PKT CLI wallet using the following instructions.","title":"Running an ElectrumX server"},{"location":"wallet_setup/install-pkt-electrum/#migrating-from-electrum-to-pktwallet","text":"If you have an electrum based wallet which becomes overloaded from too many transactions (e.g. from mining directly into it), then you will need to migrate your keys to a pktwallet instance.","title":"Migrating from Electrum to PKTWallet"},{"location":"wallet_setup/install-pkt-electrum/#step-1-setup-pktwallet","text":"Follow the instructions in pktwallet to get your wallet up and running","title":"Step 1: Setup pktwallet"},{"location":"wallet_setup/install-pkt-electrum/#step-2-export-your-keys","text":"In Electrum, click Wallet -> Private Keys -> Export You will be prompted to enter your Electrum wallet password, then a window should appear showing your keys KEEP THESE KEYS SECRET Find an address which you want to migrate and copy the key with that address Do not copy the part which says p2wpkh: , just the letters after it The key will look sometihng like this: ci2TBp2HTWtyMQtizWMuugHxG6lNpInA1bSpLIWzjJS2AI8ObwV5","title":"Step 2: Export your keys"},{"location":"wallet_setup/install-pkt-electrum/#step-3-import-key-to-pktwallet","text":"In a terminal window, run pktctl --wallet getbalance to verify that your wallet is working Unlock your wallet using pktctl --wallet walletpassphrase 1000000 Type pktctl --wallet importprivkey You should see the address printed on the screen","title":"Step 3: Import key to pktwallet"},{"location":"wallet_setup/install-pkt-electrum/#importing-more-keys","text":"When you import a key, it starts a rescan of the chain automatically, in order to import more you need to stop pktctl --wallet stopresync to stop","title":"Importing more keys"},{"location":"wallet_setup/install-pkt-electrum/#speed-things-up","text":"If you know exactly when an address was paid, you can speed up the import by only rescanning blocks where it might have been paid. For example if you are sure that the address was not paid earlier than block number 600000 you can do the following: pktctl --wallet stopresync pktctl --wallet resync 600000 100000000","title":"Speed things up"},{"location":"wallet_setup/install-pkt-electrum/#check-that-its-working","text":"It's recommended that you run pktwallet with -d debug flag in order to be able to see the debug logs. When you are resyncing you should see log lines like the following: 1609188780 [DBG] wallet.go:2817 Rescan cycle [620100] 1609188781 [DBG] wallet.go:2817 Rescan cycle [620200] 1609188782 [DBG] wallet.go:2817 Rescan cycle [620300] 1609188783 [DBG] wallet.go:2817 Rescan cycle [620400] The number if the block number which is being scanned.","title":"Check that it's working"},{"location":"wallet_setup/install-pkt-electrum/#troubleshooting","text":"ErrBirthdayBlockNotSet: birthday block not set Your wallet is not synced yet, wait for it to become synced","title":"Troubleshooting"},{"location":"wallet_setup/pkt-cli-wallet/","text":"Installing PKT CLI Wallet (Mac / Windows / Linux) \u00b6 The command line PKT wallet First Time Installation and Launching \u00b6 Download pktd \u00b6 Microsoft Windows \u00b6 Download the most recent zip archive suffixed with -windows.zip available from pktd releases page For example: pktd-v1.4.0-windows.zip Unarchive the content of the zip file Open the command prompt and navigate to the bin directory in the extracted archive For Example: cd Downloads\\pktd*\\bin Follow the instructions below but In place of ./bin/pktwallet , use pktwallet.exe In place of ./bin/pktctl , use pktctl.exe MacOS and Linux \u00b6 Download one of the most recent packages available for Linux or MacOS from pktd releases page For example, for pktd-v1.4.0 release: For MacOS , after having downloaded pktd-v1.4.0-macos.pkg , install pktwallet and other utilities by clicking on the package icon in the Finder. For Linux , after having downloaded one of the following packages: pktd-v1.4.0-linux.deb (Debian or Ubuntu) pktd-v1.4.0-linux.rpm (Fedora or RedHat) pktd AUR package (Arch linux or Manjaro), install pktwallet and other utilities by clicking on the appropriate package icon or running an installation command Creating a New Wallet \u00b6 To create a new PKT wallet, use the pktwallet --create command: ./bin/pktwallet --create You will be prompted to follow a few steps. Make sure you write your seed words on paper so that you can recover your funds even if your computer is damaged. Do not skip this step. You will thank yourself later. Keep it secret. Keep it safe. Launching pktwallet \u00b6 After creating your wallet, you can launch pktwallet with: ./bin/pktwallet Watch the output from the logs and when you see a log line like this: 1608294386 [INF] headerlogger.go:64 Processed 1 block in the last 24.82s (height 702781, 2020-12-18 13:26:01 +0100 CET) Compare the height number in the log line (e.g. 702781) to the number in the pkt block explorer to see when your wallet is up to date. A complete sync from a new installation can take 12+ hours. During this time, the balance in your wallet will not be accurate and you will be unable to transact. You may, however, proceed with creating an address while syncing, as detailed below. Creating a New PKT Address \u00b6 While pktwallet is running in the background (or in another terminal), use the following command: ./bin/pktctl --wallet getnewaddress You should see a series of numbers and letters beginning with pkt1 . This is your newly created PKT address which you can use for receiving coins. If you need to view it after creation, the address, along with the balance, can be seen in the output from running: ./bin/pktctl --wallet getaddressbalances 1 1 NOTE : Every time you use getnewaddress , the address you receive must be remembered by pktwallet forever. So, only use it when you actually need an address. How to install the PKT World Wallet (Windows only) \u00b6 Download the PKT World Wallet Follow the installation instructions Launch wallet Create a new wallet Enter a wallet passphrase. Make sure to save your passphrase in a safe place. Write down your wallet seed. It is very important to keep your seed in a safe place To generate a new PKT address, click Wallet. Generate new address To begin mining using the PKT World Wallet, click Miner Start Mining How to install a CLI Wallet \u00b6 If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Copy down your seed. If your wallet is destroyed, you can recover it as long as you have this seed and your wallet passphrase. Please keep in mind that anyone who has access to the seed only needs to guess your wallet passphrase to access your funds. Follow the instructions to finalize wallet How to start up CLI Wallet \u00b6 Open terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --wallet (whatever you named your wallet) i.e wallet personal How to create new PKT wallet address \u00b6 Make sure you have the CLI wallet running in a separate terminal window Open Terminal Enter command: $ cd pktd Enter command: $ ~/pktd/bin/pktctl --wallet getnewaddress Save your address in a safe place that is easily accessible How to send PKT from your CLI wallet \u00b6 Make sure you have the CLI wallet running in a separate terminal window Command click on file to open Open terminal Enter command: $ cd pktd Enter Command: $ ~/pktd/pktd/bin/pktctl --wallet sendfrom pkt1xxxxx $$$$ '[\"pkt1xxxxx\"]' xxxxx = PKT address you want to send from and to $$$$ = amount of pkt you want to send How to install a CLI Wallet from Seed \u00b6 If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Command click on file to open Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Enter seed Start up wallet (see instructions above) Open new terminal window Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktctl --wallet getnewaddress repeat until you find receive (each of) your recovered wallet address(es) Enter the command: $ ~/pktd/bin/pktctl --wallet resync This will resync the wallet to the blockchain (takes at least 24 hours) Enter the command: $ ~/pktd/bin/pktctl --wallet getaddressbalances 1 1 this is how you view all your (sub)wallet balances Using Your Wallet \u00b6 pktctl is the program that interfaces with a running pktwallet instance. pktctl functions will not work if pktwallet is not running and accessible. Some functions will be limited until pktwallet is fully synchronized. Some functions require the wallet being unlocked before executing. Getting Your Balance \u00b6 You can check your current PKT balance using pktctl or you can check the balances of each of your addresses if you have more than one. ./bin/pktctl --wallet getbalance or: ./bin/pktctl --wallet getaddressbalances getaddressbalances by itself will not show 0 balance addresses you may have created. To show these addresses, use: ./bin/pktctl --wallet getaddressbalances 1 1 For more explanation of the meaning of the output of getaddressbalances , use: ./bin/pktctl --wallet help getaddressbalances Unlocking Wallet \u00b6 While many functions can be performed while the wallet is locked, other functions first require the wallet to be unlocked, including sending PKT and folding. The passphrase used to unlock the wallet was set when creating the wallet. To unlock your wallet for 120 seconds (this can be changed to your liking), use: ./bin/pktctl --wallet walletpassphrase 120 To keep your wallet unlocked, use: ./bin/pktctl --wallet walletpassphrase 0 If using 0 as in the previous example to keep your wallet indefinitely unlocked, it will stay unlocked until you either restart pktwallet or run: ./bin/pktctl --wallet walletlock NOTE: Special characters (e.g., !, #, & *) in your passphrase may be incorrectly interpreted by your shell. You may need to wrap your passphrase in quotes. ./bin/pktctl --wallet walletpassphrase 'suP3r_S3cReT^P@s5W0Rd!' 120 Sending PKT \u00b6 You can send PKT using the sendtoaddress command, but first you must unlock your wallet for sending, as shown in the previous step. To send cjd a 10 PKT tip: ./bin/pktctl --wallet sendtoaddress pkt1qt8xe7dwpelngtcpsgn5nkj3pwwdm7gf3l4auax 10 Sending PKT from Specific Address \u00b6 pktwallet gives you control over which addresses are used for making a payment. This means you can keep different PKT in your wallet separate, for example separating business transactions from personal transactions. NOTE : PKT is not a \"privacy coin\", so transactions are still shown in the blockchain like with Bitcoin. Unlock wallet: ./bin/pktctl --wallet walletpassphrase 60 Send 10 PKT to \"their address\" from \"your address\": ./bin/pktctl --wallet sendfrom 10 '[\" \"]' Notice the '[\" . This is because the last argument is actually a quoted JSON array . This means you can use multiple addresses as the source of a payment. For example: ./bin/pktctl --wallet sendfrom 10 '[\" \", \" \"]' Windows users require unique formatting for command prompt: pktctl.exe --wallet sendfrom 10 [\\\" \\\"] Sweeping an Address \u00b6 With pktwallet, sending 0 PKT has special significance in that it will send \"as much PKT as possible\". To sweep address into , you can use the following command: ./bin/pktctl --wallet sendfrom 0 '[\" \"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\" \\\"] NOTE : Sweeping an address will send as much PKT as possible , which is not necessarily all PKT in that address. You may need to sweep multiple times before the address is empty. Folding Coins \u00b6 If you are the recipient of many transactions, such as is the case in mining, you may not be able to spend all of them at once. This is similar to someone who is paid in pennies having a difficult time using the pennies to buy a car. To solve this issue, you can consolidate all of the coins which were paid to you by folding . Folding is sweeping an address to itself . Just like in sweeping, you may need to run the command many times before you have completely folded. See FAQs for more detail. For example: ./bin/pktctl --wallet sendfrom 0 '[\"\"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\"\\\"] Alternative GUI Wallets \u00b6 Electrum for PKT (Windows, MacOS, Linux) NOTE: Electrum is not appropriate for mining. Do NOT mine into an electrum wallet! PKT World Wallet (Windows) Zulu Wallet (MacOS) FAQs \u00b6 I have several machines mining, do I need the wallet running on each machine? \u00b6 NO! In fact, the wallet doesn't need to be running at all to mine, but you do need to ensure you have control of the address you are mining to. Should I leave pktwallet running? \u00b6 It is not a requirement to have pktwallet running to mine. However, if you leave it running, it will stay synced. This will save time when performing pktctl functions, such as folding and sending coins. If pktwallet has not been running for some time, it will need time to sync up to the current block from the time it last ran. As a safety precaution, don't forget to lock your wallet if you do keep it running. How often should I fold and why? \u00b6 The purpose of folding is to turn all your small payments (such as from mining) into quickly and easily spendable coins. If you are multi-pool mining and have rewards in every block, you will have roughly 1440 unconsolidated transactions per day - one for each block at a rate of ~ 1 block/min. If you do not fold these transactions, after awhile you'll have a huge amount of transactions to process if you wish to send the sum or portion thereof of these smaller transactions. So, while folding isn't required and will have no impact on mining if you do or do not, you're doing yourself a favor later by keeping the transactions as consolidated as possible. It is typical to fold as much as possible every day or every few days when you think about it, depending on your use case. It can also be scripted. Note that folding is a transaction itself. Depending on how much you have to fold, you may need to run the command many times. You also may need to wait for coins to confirm before folding more. Once the folding command fails or you see a very low number in the outputcount field from running ./bin/pktctl --wallet getaddressbalances 1 1 or on PKT block explorer under Unconsolidated Txns, you have successfully folded the best you can for that point in time.","title":"Installing PKT CLI Wallet (Mac / Windows / Linux)"},{"location":"wallet_setup/pkt-cli-wallet/#installing-pkt-cli-wallet-mac-windows-linux","text":"The command line PKT wallet","title":"Installing PKT CLI Wallet (Mac / Windows / Linux)"},{"location":"wallet_setup/pkt-cli-wallet/#first-time-installation-and-launching","text":"","title":"First Time Installation and Launching"},{"location":"wallet_setup/pkt-cli-wallet/#download-pktd","text":"","title":"Download pktd"},{"location":"wallet_setup/pkt-cli-wallet/#microsoft-windows","text":"Download the most recent zip archive suffixed with -windows.zip available from pktd releases page For example: pktd-v1.4.0-windows.zip Unarchive the content of the zip file Open the command prompt and navigate to the bin directory in the extracted archive For Example: cd Downloads\\pktd*\\bin Follow the instructions below but In place of ./bin/pktwallet , use pktwallet.exe In place of ./bin/pktctl , use pktctl.exe","title":"Microsoft Windows"},{"location":"wallet_setup/pkt-cli-wallet/#macos-and-linux","text":"Download one of the most recent packages available for Linux or MacOS from pktd releases page For example, for pktd-v1.4.0 release: For MacOS , after having downloaded pktd-v1.4.0-macos.pkg , install pktwallet and other utilities by clicking on the package icon in the Finder. For Linux , after having downloaded one of the following packages: pktd-v1.4.0-linux.deb (Debian or Ubuntu) pktd-v1.4.0-linux.rpm (Fedora or RedHat) pktd AUR package (Arch linux or Manjaro), install pktwallet and other utilities by clicking on the appropriate package icon or running an installation command","title":"MacOS and Linux"},{"location":"wallet_setup/pkt-cli-wallet/#creating-a-new-wallet","text":"To create a new PKT wallet, use the pktwallet --create command: ./bin/pktwallet --create You will be prompted to follow a few steps. Make sure you write your seed words on paper so that you can recover your funds even if your computer is damaged. Do not skip this step. You will thank yourself later. Keep it secret. Keep it safe.","title":"Creating a New Wallet"},{"location":"wallet_setup/pkt-cli-wallet/#launching-pktwallet","text":"After creating your wallet, you can launch pktwallet with: ./bin/pktwallet Watch the output from the logs and when you see a log line like this: 1608294386 [INF] headerlogger.go:64 Processed 1 block in the last 24.82s (height 702781, 2020-12-18 13:26:01 +0100 CET) Compare the height number in the log line (e.g. 702781) to the number in the pkt block explorer to see when your wallet is up to date. A complete sync from a new installation can take 12+ hours. During this time, the balance in your wallet will not be accurate and you will be unable to transact. You may, however, proceed with creating an address while syncing, as detailed below.","title":"Launching pktwallet"},{"location":"wallet_setup/pkt-cli-wallet/#creating-a-new-pkt-address","text":"While pktwallet is running in the background (or in another terminal), use the following command: ./bin/pktctl --wallet getnewaddress You should see a series of numbers and letters beginning with pkt1 . This is your newly created PKT address which you can use for receiving coins. If you need to view it after creation, the address, along with the balance, can be seen in the output from running: ./bin/pktctl --wallet getaddressbalances 1 1 NOTE : Every time you use getnewaddress , the address you receive must be remembered by pktwallet forever. So, only use it when you actually need an address.","title":"Creating a New PKT Address"},{"location":"wallet_setup/pkt-cli-wallet/#how-to-install-the-pkt-world-wallet-windows-only","text":"Download the PKT World Wallet Follow the installation instructions Launch wallet Create a new wallet Enter a wallet passphrase. Make sure to save your passphrase in a safe place. Write down your wallet seed. It is very important to keep your seed in a safe place To generate a new PKT address, click Wallet. Generate new address To begin mining using the PKT World Wallet, click Miner Start Mining","title":"How to install the PKT World Wallet (Windows only)"},{"location":"wallet_setup/pkt-cli-wallet/#how-to-install-a-cli-wallet","text":"If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Copy down your seed. If your wallet is destroyed, you can recover it as long as you have this seed and your wallet passphrase. Please keep in mind that anyone who has access to the seed only needs to guess your wallet passphrase to access your funds. Follow the instructions to finalize wallet","title":"How to install a CLI Wallet"},{"location":"wallet_setup/pkt-cli-wallet/#how-to-start-up-cli-wallet","text":"Open terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --wallet (whatever you named your wallet) i.e wallet personal","title":"How to start up CLI Wallet"},{"location":"wallet_setup/pkt-cli-wallet/#how-to-create-new-pkt-wallet-address","text":"Make sure you have the CLI wallet running in a separate terminal window Open Terminal Enter command: $ cd pktd Enter command: $ ~/pktd/bin/pktctl --wallet getnewaddress Save your address in a safe place that is easily accessible","title":"How to create new PKT wallet address"},{"location":"wallet_setup/pkt-cli-wallet/#how-to-send-pkt-from-your-cli-wallet","text":"Make sure you have the CLI wallet running in a separate terminal window Command click on file to open Open terminal Enter command: $ cd pktd Enter Command: $ ~/pktd/pktd/bin/pktctl --wallet sendfrom pkt1xxxxx $$$$ '[\"pkt1xxxxx\"]' xxxxx = PKT address you want to send from and to $$$$ = amount of pkt you want to send","title":"How to send PKT from your CLI wallet"},{"location":"wallet_setup/pkt-cli-wallet/#how-to-install-a-cli-wallet-from-seed","text":"If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Command click on file to open Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Enter seed Start up wallet (see instructions above) Open new terminal window Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktctl --wallet getnewaddress repeat until you find receive (each of) your recovered wallet address(es) Enter the command: $ ~/pktd/bin/pktctl --wallet resync This will resync the wallet to the blockchain (takes at least 24 hours) Enter the command: $ ~/pktd/bin/pktctl --wallet getaddressbalances 1 1 this is how you view all your (sub)wallet balances","title":"How to install a CLI Wallet from Seed"},{"location":"wallet_setup/pkt-cli-wallet/#using-your-wallet","text":"pktctl is the program that interfaces with a running pktwallet instance. pktctl functions will not work if pktwallet is not running and accessible. Some functions will be limited until pktwallet is fully synchronized. Some functions require the wallet being unlocked before executing.","title":"Using Your Wallet"},{"location":"wallet_setup/pkt-cli-wallet/#getting-your-balance","text":"You can check your current PKT balance using pktctl or you can check the balances of each of your addresses if you have more than one. ./bin/pktctl --wallet getbalance or: ./bin/pktctl --wallet getaddressbalances getaddressbalances by itself will not show 0 balance addresses you may have created. To show these addresses, use: ./bin/pktctl --wallet getaddressbalances 1 1 For more explanation of the meaning of the output of getaddressbalances , use: ./bin/pktctl --wallet help getaddressbalances","title":"Getting Your Balance"},{"location":"wallet_setup/pkt-cli-wallet/#unlocking-wallet","text":"While many functions can be performed while the wallet is locked, other functions first require the wallet to be unlocked, including sending PKT and folding. The passphrase used to unlock the wallet was set when creating the wallet. To unlock your wallet for 120 seconds (this can be changed to your liking), use: ./bin/pktctl --wallet walletpassphrase 120 To keep your wallet unlocked, use: ./bin/pktctl --wallet walletpassphrase 0 If using 0 as in the previous example to keep your wallet indefinitely unlocked, it will stay unlocked until you either restart pktwallet or run: ./bin/pktctl --wallet walletlock NOTE: Special characters (e.g., !, #, & *) in your passphrase may be incorrectly interpreted by your shell. You may need to wrap your passphrase in quotes. ./bin/pktctl --wallet walletpassphrase 'suP3r_S3cReT^P@s5W0Rd!' 120","title":"Unlocking Wallet"},{"location":"wallet_setup/pkt-cli-wallet/#sending-pkt","text":"You can send PKT using the sendtoaddress command, but first you must unlock your wallet for sending, as shown in the previous step. To send cjd a 10 PKT tip: ./bin/pktctl --wallet sendtoaddress pkt1qt8xe7dwpelngtcpsgn5nkj3pwwdm7gf3l4auax 10","title":"Sending PKT"},{"location":"wallet_setup/pkt-cli-wallet/#sending-pkt-from-specific-address","text":"pktwallet gives you control over which addresses are used for making a payment. This means you can keep different PKT in your wallet separate, for example separating business transactions from personal transactions. NOTE : PKT is not a \"privacy coin\", so transactions are still shown in the blockchain like with Bitcoin. Unlock wallet: ./bin/pktctl --wallet walletpassphrase 60 Send 10 PKT to \"their address\" from \"your address\": ./bin/pktctl --wallet sendfrom 10 '[\" \"]' Notice the '[\" . This is because the last argument is actually a quoted JSON array . This means you can use multiple addresses as the source of a payment. For example: ./bin/pktctl --wallet sendfrom 10 '[\" \", \" \"]' Windows users require unique formatting for command prompt: pktctl.exe --wallet sendfrom 10 [\\\" \\\"]","title":"Sending PKT from Specific Address"},{"location":"wallet_setup/pkt-cli-wallet/#sweeping-an-address","text":"With pktwallet, sending 0 PKT has special significance in that it will send \"as much PKT as possible\". To sweep address into , you can use the following command: ./bin/pktctl --wallet sendfrom 0 '[\" \"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\" \\\"] NOTE : Sweeping an address will send as much PKT as possible , which is not necessarily all PKT in that address. You may need to sweep multiple times before the address is empty.","title":"Sweeping an Address"},{"location":"wallet_setup/pkt-cli-wallet/#folding-coins","text":"If you are the recipient of many transactions, such as is the case in mining, you may not be able to spend all of them at once. This is similar to someone who is paid in pennies having a difficult time using the pennies to buy a car. To solve this issue, you can consolidate all of the coins which were paid to you by folding . Folding is sweeping an address to itself . Just like in sweeping, you may need to run the command many times before you have completely folded. See FAQs for more detail. For example: ./bin/pktctl --wallet sendfrom 0 '[\"\"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\"\\\"]","title":"Folding Coins"},{"location":"wallet_setup/pkt-cli-wallet/#alternative-gui-wallets","text":"Electrum for PKT (Windows, MacOS, Linux) NOTE: Electrum is not appropriate for mining. Do NOT mine into an electrum wallet! PKT World Wallet (Windows) Zulu Wallet (MacOS)","title":"Alternative GUI Wallets"},{"location":"wallet_setup/pkt-cli-wallet/#faqs","text":"","title":"FAQs"},{"location":"wallet_setup/pkt-cli-wallet/#i-have-several-machines-mining-do-i-need-the-wallet-running-on-each-machine","text":"NO! In fact, the wallet doesn't need to be running at all to mine, but you do need to ensure you have control of the address you are mining to.","title":"I have several machines mining, do I need the wallet running on each machine?"},{"location":"wallet_setup/pkt-cli-wallet/#should-i-leave-pktwallet-running","text":"It is not a requirement to have pktwallet running to mine. However, if you leave it running, it will stay synced. This will save time when performing pktctl functions, such as folding and sending coins. If pktwallet has not been running for some time, it will need time to sync up to the current block from the time it last ran. As a safety precaution, don't forget to lock your wallet if you do keep it running.","title":"Should I leave pktwallet running?"},{"location":"wallet_setup/pkt-cli-wallet/#how-often-should-i-fold-and-why","text":"The purpose of folding is to turn all your small payments (such as from mining) into quickly and easily spendable coins. If you are multi-pool mining and have rewards in every block, you will have roughly 1440 unconsolidated transactions per day - one for each block at a rate of ~ 1 block/min. If you do not fold these transactions, after awhile you'll have a huge amount of transactions to process if you wish to send the sum or portion thereof of these smaller transactions. So, while folding isn't required and will have no impact on mining if you do or do not, you're doing yourself a favor later by keeping the transactions as consolidated as possible. It is typical to fold as much as possible every day or every few days when you think about it, depending on your use case. It can also be scripted. Note that folding is a transaction itself. Depending on how much you have to fold, you may need to run the command many times. You also may need to wait for coins to confirm before folding more. Once the folding command fails or you see a very low number in the outputcount field from running ./bin/pktctl --wallet getaddressbalances 1 1 or on PKT block explorer under Unconsolidated Txns, you have successfully folded the best you can for that point in time.","title":"How often should I fold and why?"},{"location":"wallet_setup/pkt-wallet-setup/","text":"How to setup a PKT Wallet \u00b6 PKT is its own unique blockchain and only interacts with specific wallets that support PKT. There are several wallet choices that may be applicable based on your needs. If you are planning on mining PKT, you will have to choose a wallet that supports mining. If you attempt to mine PKT into a wallet that does not support mining, the wallet will break and require substantial troubleshooting. Below is a list of the various PKT wallets. Please pay attention and choose the wallet that services your needs. PKT Electrum (Mac/PC) - PKT Electrum is not for mining. This is a good lightweight wallet for making and receiving payments. Click [here] for setup instructions. PKT.World Wallet (Mac/PC) - PKT.World wallet is a mining wallet for MacOS and Windows. The wallet has a clean user interface. The Windows version has a built-in miner. Click [here] for setup instructions. PKT Zulu Wallet (Mac) - PKT Zulu wallet is an early mining wallet for MacOS. This wallet is no longer community supported. It is recommended to migrate coins and mining to PKT.World wallet. Click [here] for setup instructions. PKT CLI Wallet (Mac/PC/Linux) - The PKT CLI wallet is a powerful command line mining wallet. It has greater scalability and privacy features. Many wallet developers fork PKT CLI for their wallet development. However, this wallet requires installing pktd and has no graphical user interface. Must be proficient in the command line to use this wallet. Click here for setup instructions.","title":"How to setup a PKT Wallet"},{"location":"wallet_setup/pkt-wallet-setup/#how-to-setup-a-pkt-wallet","text":"PKT is its own unique blockchain and only interacts with specific wallets that support PKT. There are several wallet choices that may be applicable based on your needs. If you are planning on mining PKT, you will have to choose a wallet that supports mining. If you attempt to mine PKT into a wallet that does not support mining, the wallet will break and require substantial troubleshooting. Below is a list of the various PKT wallets. Please pay attention and choose the wallet that services your needs. PKT Electrum (Mac/PC) - PKT Electrum is not for mining. This is a good lightweight wallet for making and receiving payments. Click [here] for setup instructions. PKT.World Wallet (Mac/PC) - PKT.World wallet is a mining wallet for MacOS and Windows. The wallet has a clean user interface. The Windows version has a built-in miner. Click [here] for setup instructions. PKT Zulu Wallet (Mac) - PKT Zulu wallet is an early mining wallet for MacOS. This wallet is no longer community supported. It is recommended to migrate coins and mining to PKT.World wallet. Click [here] for setup instructions. PKT CLI Wallet (Mac/PC/Linux) - The PKT CLI wallet is a powerful command line mining wallet. It has greater scalability and privacy features. Many wallet developers fork PKT CLI for their wallet development. However, this wallet requires installing pktd and has no graphical user interface. Must be proficient in the command line to use this wallet. Click here for setup instructions.","title":"How to setup a PKT Wallet"},{"location":"wallet_setup/pkt-world-wallet/","text":"Installing the PKT.World Wallet (Mac/Windows) \u00b6 The PKT.World wallet is one of these easiest ways to store your PKT cash. The PKT.World wallet works on both Windows and MacOS. However, the Windows wallet is also a PKT miner, while the MacOS version is only a wallet. The wallet features an easy to use graphical user interface with ongoing support from the PKT.World mining pool operator. Simply follow this link [here] to download the wallet from the PKT.World website. It is important to keep your seed and password written down in a safe place where you will remember it.","title":"Installing the PKT.World Wallet (Mac/Windows)"},{"location":"wallet_setup/pkt-world-wallet/#installing-the-pktworld-wallet-macwindows","text":"The PKT.World wallet is one of these easiest ways to store your PKT cash. The PKT.World wallet works on both Windows and MacOS. However, the Windows wallet is also a PKT miner, while the MacOS version is only a wallet. The wallet features an easy to use graphical user interface with ongoing support from the PKT.World mining pool operator. Simply follow this link [here] to download the wallet from the PKT.World website. It is important to keep your seed and password written down in a safe place where you will remember it.","title":"Installing the PKT.World Wallet (Mac/Windows)"},{"location":"wallet_setup/pkt-zulu-wallet/","text":"Installing PKT Zulu Wallet (Mac) \u00b6 Paste these instructions, but change the first note: pktwallet The PKT Zulu Wallet is an early mining wallet that only works on MacOS. However, this wallet is only compatible with Big Sur MacOS version 11. Please note, this wallet is not currently being maintained by the community, so if setting up a new wallet use the PKT.World wallet instead. If you have a PKT Zulu wallet, it is recommended to transfer your coins to another wallet as soon as possible. Please note, if you are already using PKT Zulu wallet, then when you install the PKT.World wallet for MacOS [here], it may automatically recognize your wallet.db file on your computer. These instructions below are still available for people that currently have this wallet installed. It is important to keep your seed and password written down in a safe place where you will remember it.","title":"Installing PKT Zulu Wallet (Mac)"},{"location":"wallet_setup/pkt-zulu-wallet/#installing-pkt-zulu-wallet-mac","text":"Paste these instructions, but change the first note: pktwallet The PKT Zulu Wallet is an early mining wallet that only works on MacOS. However, this wallet is only compatible with Big Sur MacOS version 11. Please note, this wallet is not currently being maintained by the community, so if setting up a new wallet use the PKT.World wallet instead. If you have a PKT Zulu wallet, it is recommended to transfer your coins to another wallet as soon as possible. Please note, if you are already using PKT Zulu wallet, then when you install the PKT.World wallet for MacOS [here], it may automatically recognize your wallet.db file on your computer. These instructions below are still available for people that currently have this wallet installed. It is important to keep your seed and password written down in a safe place where you will remember it.","title":"Installing PKT Zulu Wallet (Mac)"},{"location":"wallet_setup/wallet-faq/","text":"PKT Documentation \u00b6 Documentation for the PKT project Wallet setup \u00b6 There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features. Mining \u00b6 PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page. Running a pktd instance \u00b6 You can setup a pktd instance using the instructions on pktd . Help and Community \u00b6 To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"PKT Documentation"},{"location":"wallet_setup/wallet-faq/#pkt-documentation","text":"Documentation for the PKT project","title":"PKT Documentation"},{"location":"wallet_setup/wallet-faq/#wallet-setup","text":"There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.","title":"Wallet setup"},{"location":"wallet_setup/wallet-faq/#mining","text":"PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.","title":"Mining"},{"location":"wallet_setup/wallet-faq/#running-a-pktd-instance","text":"You can setup a pktd instance using the instructions on pktd .","title":"Running a pktd instance"},{"location":"wallet_setup/wallet-faq/#help-and-community","text":"To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"Help and Community"}]} \ No newline at end of file +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"PKT Documentation Documentation for the PKT project PKT Network PKT Network is a fast, resilient, and censorship-resistant media network powered by the people. Instead of relying on centralized companies for its network infrastructure, PKT is a decentralized physical infrastructure (DePIN) project. This means the network is powered by its global community of economically incentivized users. Staking PKT economically incentivizes people to stake and earn PKT. Each stake must be assigned to an infrastructure node that powers the PKT Network. Supporting the network has never been easier. Get started today. Migration airdrop Infrastructure The PKT Network relies on its community to operate its underlying infrastructure. This is made possible by staking, which requires people to lockup PKT tokens to earn rewards. Beginning in October 26, 2024, each stake must be paired with an infrastructure node to continue receiving rewards. This ensures that the economic incentives in fact scale the underlying network. This ensures providers are rewarded to maintain reliable and accessible network resources. Tokenomics Affiliate How to buy PKT Wallets PKT works with all Ethereum compatible wallets. The wallets that are most recommended for staking and storing PKT are the Coinbase Wallet and MetaMask. Utility PKT functions as a versatile utility network built on the Base blockchain. The Base blockchain is a L2 that delivers fast, low cost payments using the Ethereum network. The PKT Network delivers a digital foundation for apps, products and platforms to access and service global customers. Governance Community PKT is a community-based project. There is no company, no foundation, no equity investors and no DAO. Join the community to connect with other Pkteers who are believe in geting paid to support the future of the media industry. Brand Assets","title":"Home"},{"location":"#pkt-documentation","text":"Documentation for the PKT project","title":"PKT Documentation"},{"location":"#pkt-network","text":"PKT Network is a fast, resilient, and censorship-resistant media network powered by the people. Instead of relying on centralized companies for its network infrastructure, PKT is a decentralized physical infrastructure (DePIN) project. This means the network is powered by its global community of economically incentivized users.","title":"PKT Network"},{"location":"#staking","text":"PKT economically incentivizes people to stake and earn PKT. Each stake must be assigned to an infrastructure node that powers the PKT Network. Supporting the network has never been easier. Get started today.","title":"Staking"},{"location":"#migration-airdrop","text":"","title":"Migration airdrop"},{"location":"#infrastructure","text":"The PKT Network relies on its community to operate its underlying infrastructure. This is made possible by staking, which requires people to lockup PKT tokens to earn rewards. Beginning in October 26, 2024, each stake must be paired with an infrastructure node to continue receiving rewards. This ensures that the economic incentives in fact scale the underlying network. This ensures providers are rewarded to maintain reliable and accessible network resources.","title":"Infrastructure"},{"location":"#tokenomics","text":"","title":"Tokenomics"},{"location":"#affiliate","text":"","title":"Affiliate"},{"location":"#how-to-buy-pkt","text":"","title":"How to buy PKT"},{"location":"#wallets","text":"PKT works with all Ethereum compatible wallets. The wallets that are most recommended for staking and storing PKT are the Coinbase Wallet and MetaMask.","title":"Wallets"},{"location":"#utility","text":"PKT functions as a versatile utility network built on the Base blockchain. The Base blockchain is a L2 that delivers fast, low cost payments using the Ethereum network. The PKT Network delivers a digital foundation for apps, products and platforms to access and service global customers.","title":"Utility"},{"location":"#governance","text":"","title":"Governance"},{"location":"#community","text":"PKT is a community-based project. There is no company, no foundation, no equity investors and no DAO. Join the community to connect with other Pkteers who are believe in geting paid to support the future of the media industry.","title":"Community"},{"location":"#brand-assets","text":"","title":"Brand Assets"},{"location":"PKT_FAQ/","text":"PKT FAQ This is a community defined FAQ, edit this page to improve it. General What is PKT? PKT allows users to monetize their unused internet bandwidth. By participating in the PKT Network you are helping to build a faster, stronger, and more secure, decentralized network. What is PKT Cash? PKT is a native mined coin based on an open source project. There are multiple companies in the PKT ecosystem but no company \"behind PKT.\" What wallets are available? If you're not mining, the best wallet is PKT Electrum , which was developed as part of a Network Steward funded project and supports Windows, Mac and Linux. However, mining into electrum will break it and if you do it, you will need to export your keys to recover funds. If you use Microsoft Windows, the best wallet to use is PKT.world wallet If you use Mac and want to mine, you can use Zulu Wallet If you are using a server, you can use the CLI wallet which is the base code for the PKT.world wallet and Zulu wallet. There is an ongoing wallet called MatterFi which is based on the powerful OpenTransactions technology. You are invited to help beta-test this wallet in #matterfi on pkt.chat. Where can I buy or sell PKT? Currently there are two ways to buy and sell, you can buy wrapped PKT on pancakeswap and then un-wrap it using the ODAPP (NOTE: in order to use wrapped PKT, you will need Binance Smart Chain BNB to pay gas fees. Also note that ODAPP charges 3.5% when wrapping or unwrapping) If you would like a more human experience of buying or selling, you can come to ye ol' telegram chat where PKT has been traded since the beginning. Remember that telegram is a place where scammers lurk, so always read and follow the guidelines and always use escrow, even after you have traded with somebody multiple times. What is the path towards being publicly listed on exchanges? PKT is a decentralized project like Bitcoin, not a centralized token. Community members are having conversations with different exchanges and you can do it too. There are no more details at this time about the particular listing initiatives. The differentiating factors vs. Bitcoin and other crypto coins? The differences from Bitcoin are: PacketCrypt bandwidth hard proof of work replaces SHA-256 1 minute block time 6 billion coins total Mining yields decrease 10% every 100 days in what is called the decimation 20% of each mined block goes to the Network Steward wallet, which funds R&D of the ecosystem Vision What is value proposition of PKT? The PKT project is focused on building a decentralized bandwidth marketplace to decouple the business and technical aspects of internet service from the physical aspect of maintaining infrastructure. The fundamental value is division of labor and lowering the barrier of entry for internet service competition. What is a Cloud ISP? There is an explanation video about Cloud ISPs on Twitter. The role of a Cloud ISP is to perform the technical and administrative aspects of internet service so that the aspects of infrastructure operation can be done by individuals, small businesses and community groups. What do you see as the greatest challenge to PKTs long-term success? Historically, crypto projects achieve the best results when they are focused on use cases and utility. PKT is focusing on building a decentralized bandwidth marketplace where people can earn PKT with their internet and use PKT to pay for connectivity. The greatest challenge is getting the next billion people connected to the internet. What are the applications and software currently being explored? A free to use VPN service called AnodeVPN will be launched in 2021, and users can pay for their VPN speed with PKT Cash. Internet bandwidth sharing and mesh networking are also currently in the stages of development. Mining How is PKT mined? PKT is mined using the novel PacketCrypt bandwidth-hard mining algorithm which requires bandwidth to mine. It uses a combination of CPU and bandwidth, you get an advantage by working together with other miners which requires bandwidth. How will the growth in mining impact the coin? As more people mine PacketCrypt, they will need to invest in more network infrastructure which will become useful later on for making the internet faster and more accessible. What wallet do I use for mining? For mining it's recommended to use the command line PKTWallet due to the amount of mining transactions and it's ability to scale. If you use a Mac then you can also use the PKT-Cash-Wallet for MacOS. Is there an easy way to start mining? There are mining instructions for mining on the PKT website. PktPal is a business in the community which offers turn-key mining solutions. Do miners mining on a single pool have any benefit over miners mining on multi pool? Multi-pool mining means submitting the exact same announcements to multiple pools. So if you have the bandwidth available it will always benefit you to mine in all of the major pools. Network Steward What is the Network Steward? The Network Steward is part of the consensus rules of the PKT blockchain. 20% of every newly mined block goes to a wallet address and then those coins are 100% paid out in grants to help build open-source technology and develop the PKT Network. Network Steward funds must be deployed within 90 days or else they are burned. This address was initially set to a multi-signature group, but it can be changed by a PoS based vote process. Who is the Network Steward currently? A group of 5 volunteers including the original author of the code. More information can be found [here]: (https://pkt.cash/network-steward) How is the (current) Network Steward using the funds? The Network Steward follows a project evaluation process. No funds have ever been deployed except to fund projects which were proposed by members of the public in an open competitive process. The Network Steward operates with full transparency. Every transaction made by the Network Steward can be seen in the block explorer and is refered to in the Network Steward's github repository explaining the project which that transaction helped to fund. Has the Network Steward burned any funds? You can check out the stats on burned coins in the block explorer Network Steward page . How do I submit a proposal? There are currently two ways to propose a project to the PKT Network Steward, if your project is large and has the benefit of accountants to be able to verify that the money has been spent appropriately, you can make a proposal directly to the NS through the NS github Network Steward's Github . The NS opens calls from time to time with a specified budget and during these calls anyone can apply. If you want to propose a smaller project and have the accounting and official reporting managed for you, you can propose to the User Operated Internet fund which is funded by the Network Steward but is administored by NLnet, a well respected public benefit organization which is experienced at managing these types of projects. Dilligence Who is the creator? Is he actively involved? What's his ownership? PKT was created by Caleb James DeLisle, the creator of cjdns. Cjdns is the only decentralized mesh networking protocol which is designed to function in even if some of the nodes in the network are adversarial. Caleb has been mining PKT similarly to everybody else in the project. Who stands to benefit the most from growth and adaption? The early miners and adopters of PKT will benefit greatly. PKT also benefits everybody because it will lead to a lower cost and highly competitive internet service ecosystem. Are there any regulatory or compliance liabilities? PKT is a fully decentralized fork of Bitcoin, so it is similarly considered to be a commodity. What legal disclosures need to made with investments into this? Or are there none? Because PKT is a fully decentralized clone of the Bitcoin codebase, the legal and regulatory framing is probably similar. Communication Has any branding or marketing already been completed? PKT is a decentralized project so there is no official brand for PKT, however the website pkt.cash, logos, and other materials were developed as part of a Network Steward funded project and are usable under the Creative Commons license. Are any brand ambassadors already engaged? PKT is not a centralized project so anybody can be an ambassador. There are a number of companies and initiatives which currently exist in the PKT ecosystem including AnodeVPN and Pkt Pal. Commercial How can I contact the PKT Team You are the PKT team, PKT is a fully decentralized project like Bitcoin, so everyone is the team. The bad news is there is no central authority who can write you a check, but the good news is there are a few businesses in the PKT ecosystem who might be prepared to buy your services. See PKT Commercial for a (non-exhaustive) list. Can I build X with PKT? YES , the PKT community encourages all types of (legal, responsible) business activity in the PKT ecosystem. The ODAPP bridge was created by a community member and was not in the original PKT vision but this bridge is now an important part of the infrastructure of the PKT ecosystem. You can also build your commercial venture and the we in the PKT community will do what we can to help you be successful.","title":"PKT FAQ"},{"location":"PKT_FAQ/#pkt-faq","text":"This is a community defined FAQ, edit this page to improve it.","title":"PKT FAQ"},{"location":"PKT_FAQ/#general","text":"","title":"General"},{"location":"PKT_FAQ/#what-is-pkt","text":"PKT allows users to monetize their unused internet bandwidth. By participating in the PKT Network you are helping to build a faster, stronger, and more secure, decentralized network.","title":"What is PKT?"},{"location":"PKT_FAQ/#what-is-pkt-cash","text":"PKT is a native mined coin based on an open source project. There are multiple companies in the PKT ecosystem but no company \"behind PKT.\"","title":"What is PKT Cash?"},{"location":"PKT_FAQ/#what-wallets-are-available","text":"If you're not mining, the best wallet is PKT Electrum , which was developed as part of a Network Steward funded project and supports Windows, Mac and Linux. However, mining into electrum will break it and if you do it, you will need to export your keys to recover funds. If you use Microsoft Windows, the best wallet to use is PKT.world wallet If you use Mac and want to mine, you can use Zulu Wallet If you are using a server, you can use the CLI wallet which is the base code for the PKT.world wallet and Zulu wallet. There is an ongoing wallet called MatterFi which is based on the powerful OpenTransactions technology. You are invited to help beta-test this wallet in #matterfi on pkt.chat.","title":"What wallets are available?"},{"location":"PKT_FAQ/#where-can-i-buy-or-sell-pkt","text":"Currently there are two ways to buy and sell, you can buy wrapped PKT on pancakeswap and then un-wrap it using the ODAPP (NOTE: in order to use wrapped PKT, you will need Binance Smart Chain BNB to pay gas fees. Also note that ODAPP charges 3.5% when wrapping or unwrapping) If you would like a more human experience of buying or selling, you can come to ye ol' telegram chat where PKT has been traded since the beginning. Remember that telegram is a place where scammers lurk, so always read and follow the guidelines and always use escrow, even after you have traded with somebody multiple times.","title":"Where can I buy or sell PKT?"},{"location":"PKT_FAQ/#what-is-the-path-towards-being-publicly-listed-on-exchanges","text":"PKT is a decentralized project like Bitcoin, not a centralized token. Community members are having conversations with different exchanges and you can do it too. There are no more details at this time about the particular listing initiatives.","title":"What is the path towards being publicly listed on exchanges?"},{"location":"PKT_FAQ/#the-differentiating-factors-vs-bitcoin-and-other-crypto-coins","text":"The differences from Bitcoin are: PacketCrypt bandwidth hard proof of work replaces SHA-256 1 minute block time 6 billion coins total Mining yields decrease 10% every 100 days in what is called the decimation 20% of each mined block goes to the Network Steward wallet, which funds R&D of the ecosystem","title":"The differentiating factors vs. Bitcoin and other crypto coins?"},{"location":"PKT_FAQ/#vision","text":"","title":"Vision"},{"location":"PKT_FAQ/#what-is-value-proposition-of-pkt","text":"The PKT project is focused on building a decentralized bandwidth marketplace to decouple the business and technical aspects of internet service from the physical aspect of maintaining infrastructure. The fundamental value is division of labor and lowering the barrier of entry for internet service competition.","title":"What is value proposition of PKT?"},{"location":"PKT_FAQ/#what-is-a-cloud-isp","text":"There is an explanation video about Cloud ISPs on Twitter. The role of a Cloud ISP is to perform the technical and administrative aspects of internet service so that the aspects of infrastructure operation can be done by individuals, small businesses and community groups.","title":"What is a Cloud ISP?"},{"location":"PKT_FAQ/#what-do-you-see-as-the-greatest-challenge-to-pkts-long-term-success","text":"Historically, crypto projects achieve the best results when they are focused on use cases and utility. PKT is focusing on building a decentralized bandwidth marketplace where people can earn PKT with their internet and use PKT to pay for connectivity. The greatest challenge is getting the next billion people connected to the internet.","title":"What do you see as the greatest challenge to PKTs long-term success?"},{"location":"PKT_FAQ/#what-are-the-applications-and-software-currently-being-explored","text":"A free to use VPN service called AnodeVPN will be launched in 2021, and users can pay for their VPN speed with PKT Cash. Internet bandwidth sharing and mesh networking are also currently in the stages of development.","title":"What are the applications and software currently being explored?"},{"location":"PKT_FAQ/#mining","text":"","title":"Mining"},{"location":"PKT_FAQ/#how-is-pkt-mined","text":"PKT is mined using the novel PacketCrypt bandwidth-hard mining algorithm which requires bandwidth to mine. It uses a combination of CPU and bandwidth, you get an advantage by working together with other miners which requires bandwidth.","title":"How is PKT mined?"},{"location":"PKT_FAQ/#how-will-the-growth-in-mining-impact-the-coin","text":"As more people mine PacketCrypt, they will need to invest in more network infrastructure which will become useful later on for making the internet faster and more accessible.","title":"How will the growth in mining impact the coin?"},{"location":"PKT_FAQ/#what-wallet-do-i-use-for-mining","text":"For mining it's recommended to use the command line PKTWallet due to the amount of mining transactions and it's ability to scale. If you use a Mac then you can also use the PKT-Cash-Wallet for MacOS.","title":"What wallet do I use for mining?"},{"location":"PKT_FAQ/#is-there-an-easy-way-to-start-mining","text":"There are mining instructions for mining on the PKT website. PktPal is a business in the community which offers turn-key mining solutions.","title":"Is there an easy way to start mining?"},{"location":"PKT_FAQ/#do-miners-mining-on-a-single-pool-have-any-benefit-over-miners-mining-on-multi-pool","text":"Multi-pool mining means submitting the exact same announcements to multiple pools. So if you have the bandwidth available it will always benefit you to mine in all of the major pools.","title":"Do miners mining on a single pool have any benefit over miners mining on multi pool?"},{"location":"PKT_FAQ/#network-steward","text":"","title":"Network Steward"},{"location":"PKT_FAQ/#what-is-the-network-steward","text":"The Network Steward is part of the consensus rules of the PKT blockchain. 20% of every newly mined block goes to a wallet address and then those coins are 100% paid out in grants to help build open-source technology and develop the PKT Network. Network Steward funds must be deployed within 90 days or else they are burned. This address was initially set to a multi-signature group, but it can be changed by a PoS based vote process.","title":"What is the Network Steward?"},{"location":"PKT_FAQ/#who-is-the-network-steward-currently","text":"A group of 5 volunteers including the original author of the code. More information can be found [here]: (https://pkt.cash/network-steward)","title":"Who is the Network Steward currently?"},{"location":"PKT_FAQ/#how-is-the-current-network-steward-using-the-funds","text":"The Network Steward follows a project evaluation process. No funds have ever been deployed except to fund projects which were proposed by members of the public in an open competitive process. The Network Steward operates with full transparency. Every transaction made by the Network Steward can be seen in the block explorer and is refered to in the Network Steward's github repository explaining the project which that transaction helped to fund.","title":"How is the (current) Network Steward using the funds?"},{"location":"PKT_FAQ/#has-the-network-steward-burned-any-funds","text":"You can check out the stats on burned coins in the block explorer Network Steward page .","title":"Has the Network Steward burned any funds?"},{"location":"PKT_FAQ/#how-do-i-submit-a-proposal","text":"There are currently two ways to propose a project to the PKT Network Steward, if your project is large and has the benefit of accountants to be able to verify that the money has been spent appropriately, you can make a proposal directly to the NS through the NS github Network Steward's Github . The NS opens calls from time to time with a specified budget and during these calls anyone can apply. If you want to propose a smaller project and have the accounting and official reporting managed for you, you can propose to the User Operated Internet fund which is funded by the Network Steward but is administored by NLnet, a well respected public benefit organization which is experienced at managing these types of projects.","title":"How do I submit a proposal?"},{"location":"PKT_FAQ/#dilligence","text":"","title":"Dilligence"},{"location":"PKT_FAQ/#who-is-the-creator-is-he-actively-involved-whats-his-ownership","text":"PKT was created by Caleb James DeLisle, the creator of cjdns. Cjdns is the only decentralized mesh networking protocol which is designed to function in even if some of the nodes in the network are adversarial. Caleb has been mining PKT similarly to everybody else in the project.","title":"Who is the creator? Is he actively involved? What's his ownership?"},{"location":"PKT_FAQ/#who-stands-to-benefit-the-most-from-growth-and-adaption","text":"The early miners and adopters of PKT will benefit greatly. PKT also benefits everybody because it will lead to a lower cost and highly competitive internet service ecosystem.","title":"Who stands to benefit the most from growth and adaption?"},{"location":"PKT_FAQ/#are-there-any-regulatory-or-compliance-liabilities","text":"PKT is a fully decentralized fork of Bitcoin, so it is similarly considered to be a commodity.","title":"Are there any regulatory or compliance liabilities?"},{"location":"PKT_FAQ/#what-legal-disclosures-need-to-made-with-investments-into-this-or-are-there-none","text":"Because PKT is a fully decentralized clone of the Bitcoin codebase, the legal and regulatory framing is probably similar.","title":"What legal disclosures need to made with investments into this? Or are there none?"},{"location":"PKT_FAQ/#communication","text":"","title":"Communication"},{"location":"PKT_FAQ/#has-any-branding-or-marketing-already-been-completed","text":"PKT is a decentralized project so there is no official brand for PKT, however the website pkt.cash, logos, and other materials were developed as part of a Network Steward funded project and are usable under the Creative Commons license.","title":"Has any branding or marketing already been completed?"},{"location":"PKT_FAQ/#are-any-brand-ambassadors-already-engaged","text":"PKT is not a centralized project so anybody can be an ambassador. There are a number of companies and initiatives which currently exist in the PKT ecosystem including AnodeVPN and Pkt Pal.","title":"Are any brand ambassadors already engaged?"},{"location":"PKT_FAQ/#commercial","text":"","title":"Commercial"},{"location":"PKT_FAQ/#how-can-i-contact-the-pkt-team","text":"You are the PKT team, PKT is a fully decentralized project like Bitcoin, so everyone is the team. The bad news is there is no central authority who can write you a check, but the good news is there are a few businesses in the PKT ecosystem who might be prepared to buy your services. See PKT Commercial for a (non-exhaustive) list.","title":"How can I contact the PKT Team"},{"location":"PKT_FAQ/#can-i-build-x-with-pkt","text":"YES , the PKT community encourages all types of (legal, responsible) business activity in the PKT ecosystem. The ODAPP bridge was created by a community member and was not in the original PKT vision but this bridge is now an important part of the infrastructure of the PKT ecosystem. You can also build your commercial venture and the we in the PKT community will do what we can to help you be successful.","title":"Can I build X with PKT?"},{"location":"affiliate/","text":"Affiliates Rewards PKT also has an affiliate program built into the protocol. Each connected wallet receives an affiliate code. If an individual (Affiliate-2) stakes using an affiliate code from someone (Affiliate-1), then Affiliate-2 receives a 1% yield bonus, in perpetuity. Affiliate-1, who provided the affiliate code, receives a 4% yield bonus on the stake of Affiliate-2, in perpetuity. Affiliate-1 also receives a 1% yield bonus, in perpetuity, on the stake of anyone that Affiliate-2 provides their affiliate code to. These rewards incentivize organic growth within the ecosystem, while scaling the network worldwide.","title":"Affiliate"},{"location":"affiliate/#affiliates-rewards","text":"PKT also has an affiliate program built into the protocol. Each connected wallet receives an affiliate code. If an individual (Affiliate-2) stakes using an affiliate code from someone (Affiliate-1), then Affiliate-2 receives a 1% yield bonus, in perpetuity. Affiliate-1, who provided the affiliate code, receives a 4% yield bonus on the stake of Affiliate-2, in perpetuity. Affiliate-1 also receives a 1% yield bonus, in perpetuity, on the stake of anyone that Affiliate-2 provides their affiliate code to. These rewards incentivize organic growth within the ecosystem, while scaling the network worldwide.","title":"Affiliates Rewards"},{"location":"airdrop/","text":"Migration Airdrop How to claim Airdrop If you own PacketCrypt proof-of-work (\u201cPoW\u201d) coins you will need to swap into tokens of PKT on Base. All PacketCrypt. Install a Web3 wallet like MetaMask or Coinbase Wallet Buy enough Base Ethereum that you are able to pay a very small transaction fee Add the PKT contract address to your Web3 wallet Copy your wallet address Open your legacy PKT wallet (PKT World, Anode, CLI) Choose to copy the private key for one of the addresses in your legacy PKT wallet that has coins you want to swap Download the migration app here Paste the private key into the migration app Paste your new Web3 wallet address into the migration app The migration app will compute a digital signature Open the new PKT dashboard app on pkt.cash Navigate to the migration tab Paste the signature from the migration app Click submit and this will claim your tokens of PKT on Base, which will be sent to the Web3 wallet address you provided You can repeat this process for each wallet address you want to swap (you can use the same Web3 wallet address, or a new Web3 wallet address of your choice. Note It will only be possible to swap PKT on Base for PoW coins via OTC. FYI If you have tokens on WPKT, you will need to await for the Odapp custodian to inform the community how to redeem WPKT for PKT on Base.","title":"Migration airdrop"},{"location":"airdrop/#migration-airdrop","text":"","title":"Migration Airdrop"},{"location":"airdrop/#how-to-claim-airdrop","text":"If you own PacketCrypt proof-of-work (\u201cPoW\u201d) coins you will need to swap into tokens of PKT on Base. All PacketCrypt. Install a Web3 wallet like MetaMask or Coinbase Wallet Buy enough Base Ethereum that you are able to pay a very small transaction fee Add the PKT contract address to your Web3 wallet Copy your wallet address Open your legacy PKT wallet (PKT World, Anode, CLI) Choose to copy the private key for one of the addresses in your legacy PKT wallet that has coins you want to swap Download the migration app here Paste the private key into the migration app Paste your new Web3 wallet address into the migration app The migration app will compute a digital signature Open the new PKT dashboard app on pkt.cash Navigate to the migration tab Paste the signature from the migration app Click submit and this will claim your tokens of PKT on Base, which will be sent to the Web3 wallet address you provided You can repeat this process for each wallet address you want to swap (you can use the same Web3 wallet address, or a new Web3 wallet address of your choice. Note It will only be possible to swap PKT on Base for PoW coins via OTC. FYI If you have tokens on WPKT, you will need to await for the Odapp custodian to inform the community how to redeem WPKT for PKT on Base.","title":"How to claim Airdrop"},{"location":"buy-pkt/","text":"How to Buy PKT To buy PKT on Base: First you need Ethereum on Base in your web3 wallet. If you don\u2019t have a web3 wallet, get a Coinbase Wallet or MetaMask wallet here. You can buy Ethereum on Base directly in your Coinbase Wallet. Or you can buy from another exchange or crypto on-ramp and transfer to your wallet. If you already have Ethereum, but need to convert it to Ethereum on Base, you can use a bridge here . Once you have Ethereum on Base, you can swap PKT directly in your web3 wallet. NOTE If you already own PKT from the Packetcrypt proof-of-work coin, you are eligible to claim your 1:1 PKT airdrop on Base here. You will be eligible to claim \u2153 of your PKT airdrop now, \u2153 on February 21, 2025, and \u2153 on August 21, 2025.","title":"How to buy PKT"},{"location":"buy-pkt/#how-to-buy-pkt","text":"To buy PKT on Base: First you need Ethereum on Base in your web3 wallet. If you don\u2019t have a web3 wallet, get a Coinbase Wallet or MetaMask wallet here. You can buy Ethereum on Base directly in your Coinbase Wallet. Or you can buy from another exchange or crypto on-ramp and transfer to your wallet. If you already have Ethereum, but need to convert it to Ethereum on Base, you can use a bridge here . Once you have Ethereum on Base, you can swap PKT directly in your web3 wallet. NOTE If you already own PKT from the Packetcrypt proof-of-work coin, you are eligible to claim your 1:1 PKT airdrop on Base here. You will be eligible to claim \u2153 of your PKT airdrop now, \u2153 on February 21, 2025, and \u2153 on August 21, 2025.","title":"How to Buy PKT"},{"location":"cjdns_websites/","text":"Setup your website on cjdns network Install Yunohost by following the detailed instructions provided here . Once the installation is complete, log in as an administrator at yunohost.local . Perform a system update, which may take some time. Navigate to Tools -> Yunohost Settings -> Security, and under NGINX, disable \"Force HTTPS.\" Click Save to apply the changes. Reboot your Yunohost server to make the tun device available. Navigate to Tools->Shutdown and click Reboot. Return to yunohost.local after the update and navigate to the Applications menu. Click on Install, search for \"wordpress,\" select it, and proceed with the installation. Go back to the Applications menu, select \"All apps\" next to the search bar and then search for \"cjdns\", select it and install it. Once cjdns has installed your cjdns ipv6 will be displayed, Copy it. Ssh into your yunohost and edit your nginx configuration nano /etc/nginx/conf.d/[domain.com].conf there under the server section add your cjdns ipv6 as a server_name , make sure to put it with in square brackets [] and also remove any leading zeros from each section if there are any. For example: fc3d:2895:0b0c:cf4a:3d3b:216f:7268:a34a becomes [fc3d:2895:b0c:cf4a:3d3b:216f:7268:a34a] Save the conf file and run nginx -t to check for any errors and then `systemctl restart nginx` to restart the server. Congratulations now you have your new website available for everyone in the cjdns network. You can access it by using a browser and go to http://[your-cjdns-ipv6]/blog For example: `http://[fc3d:2895:b0c:cf4a:3d3b:216f:7268:a34a]/blog`","title":"Setup your website on cjdns network"},{"location":"cjdns_websites/#setup-your-website-on-cjdns-network","text":"Install Yunohost by following the detailed instructions provided here . Once the installation is complete, log in as an administrator at yunohost.local . Perform a system update, which may take some time. Navigate to Tools -> Yunohost Settings -> Security, and under NGINX, disable \"Force HTTPS.\" Click Save to apply the changes. Reboot your Yunohost server to make the tun device available. Navigate to Tools->Shutdown and click Reboot. Return to yunohost.local after the update and navigate to the Applications menu. Click on Install, search for \"wordpress,\" select it, and proceed with the installation. Go back to the Applications menu, select \"All apps\" next to the search bar and then search for \"cjdns\", select it and install it. Once cjdns has installed your cjdns ipv6 will be displayed, Copy it. Ssh into your yunohost and edit your nginx configuration nano /etc/nginx/conf.d/[domain.com].conf there under the server section add your cjdns ipv6 as a server_name , make sure to put it with in square brackets [] and also remove any leading zeros from each section if there are any. For example: fc3d:2895:0b0c:cf4a:3d3b:216f:7268:a34a becomes [fc3d:2895:b0c:cf4a:3d3b:216f:7268:a34a] Save the conf file and run nginx -t to check for any errors and then `systemctl restart nginx` to restart the server. Congratulations now you have your new website available for everyone in the cjdns network. You can access it by using a browser and go to http://[your-cjdns-ipv6]/blog For example: `http://[fc3d:2895:b0c:cf4a:3d3b:216f:7268:a34a]/blog`","title":"Setup your website on cjdns network"},{"location":"commercial/","text":"PKT Commercial This is a mostly un-moderated list of classified advertisements and offers. Buyer beware, anyone can contribute their own offer and pkt.cash does not verify them. Add yourself Make a Pull Request to This page to add your offer. Keep it short and to the point NO PICTURES, no color text, no big fonts Use the appropriate category Hardware Pktpal.com Buy a PKT Cube which will mine PKT with your unused internet and provides easy-to-use PkteerOS wallet. Hosting Space-hosting.net Mining servers for rent PKT Cloud Mining Service AMAPOOL.com Your best choice towards a fully automated PKT cloud mining solution.","title":"PKT Commercial"},{"location":"commercial/#pkt-commercial","text":"This is a mostly un-moderated list of classified advertisements and offers. Buyer beware, anyone can contribute their own offer and pkt.cash does not verify them.","title":"PKT Commercial"},{"location":"commercial/#add-yourself","text":"Make a Pull Request to This page to add your offer. Keep it short and to the point NO PICTURES, no color text, no big fonts Use the appropriate category","title":"Add yourself"},{"location":"commercial/#hardware","text":"","title":"Hardware"},{"location":"commercial/#pktpalcom","text":"Buy a PKT Cube which will mine PKT with your unused internet and provides easy-to-use PkteerOS wallet.","title":"Pktpal.com"},{"location":"commercial/#hosting","text":"","title":"Hosting"},{"location":"commercial/#space-hostingnet","text":"Mining servers for rent","title":"Space-hosting.net"},{"location":"commercial/#pkt-cloud-mining-service","text":"","title":"PKT Cloud Mining Service"},{"location":"commercial/#amapoolcom","text":"Your best choice towards a fully automated PKT cloud mining solution.","title":"AMAPOOL.com"},{"location":"communication/","text":"Ethical Communication Guidelines This is a guideline for ethical communications about the project. It is recognized that to accomplish the goals, it is imperative that there is a community who understands and uses the technology, so communication cannot be avoided. However, poor communication, even made with the best intentions, risks harming the reputation of the project and the general public. So these guidelines exist to help community members represent the project in the best way possible. A Far Higher Standard Within the cryptocurrency ecosystem, there are a significant number of outright criminal activities. Beyond those there is a wide grey area of communication activities which have not been subject to any regulatory enforcement, but still fall far outside of what these guidelines establish as ethical. Community members are cautioned that due to the scale of these \"grey\" activities, there is a large body of publications, influencers, marketers, \"shills\" and other professionals who, if consulted or emulated, are highly likely to put a person in ethical peril, because these guidelines establish a far higher standard of communication ethics than that which is generally considered to be legal. Principle of No Expected Return It is acknowledged that buying, selling and mining are central aspects of cryptocurrency use, so it is difficult to effectively communicate about the project without ever addressing reasons why a person might do these things. Therefore these guidelines offer a pre-approved narrative which is considered to be maximally protective of the reputation of the project while also providing a healthy perspective regarding the risks associated with cryptocurrency. The Principle of No Expected Return is that one should buy or mine a cryptocurrency if and only if they believe strongly enough in the vision of the project that they would be proud to own the coin even if they were never able to sell it. In the early days of Bitcoin, it was widely believed that it would be legislated out of existence or otherwise collapse, and so this principle was pervasive throughout the community. Many people chose to hold Bitcoin as a political statement regarding the morality of modern financial institutions, especially after the 2008 financial crisis. The key components of the Principle of No Expected Return are: * A clear understanding of what the technology is and what it is not. * A belief in the social change which that technology can realistically facilitate. * The mental and financial preparedness to lose any money or effort that is used to acquire the coin, as one has when one makes a donation. When you\u2019re considering buying a coin, you need to ask yourself: If you were to lose everything you put into a coin, would you look back on the day you bought it, proud to have been a part of the project at that time? If the answer is no, then you\u2019re either planning to buy too much, or you\u2019re just not ready. Guidelines Dishonest, intentionally misleading, or otherwise unlawful communication is obviously unethical, but beyond that there is no clear definition for unethical communication, though one could characterise it in the words of Justice Stewart, \"I know it when I see it\". These non-exhaustive guidelines exist to give community members an understanding of the types of communication which are most likely to be unethical. They are listed in order of importance with the most important first. Communications which follow the letter, but not the spirit, of these guidelines are unethical. One example of this is token disclaimers such as \"this is not financial advice\". Disclaimers can be useful for helping a person understand the limitations and caveats of a communication, but a token disclaimer exists more to make the communicator seem innocent than to help the audience have a clearer understanding. The use of fine print, or disclaimers which \"feel out of place\" in the overall communication should be regarded as red flags, and communicators using these should review the objectives of their message and whether it is being communicated clearly. Communications which a person of sound judgement could plausibly interpret as presenting a low risk low effort opportunity to make money , or \u201csomething for nothing\u201d, are unethical. Presenting an opportunity can take many forms including implication though specific selection of facts, or an over-celebratory tone. Generally speaking, communications should be explicit about their objective so that there is minimal chance of mis-interpretation. Communications which a person suffering impaired judgement has an unusually high likelihood of interpreting as a low risk low effort opportunity to make money are unethical. Topics like \u201cwinning\u201d, \u201cpump\u201d, \u201cFOMO\u201d, \u201cYOLO\u201d (spend all of your money), \u201cmoon\u201d, and the idea of being rich, may strike the average person as nothing more than a bit of low-culture humour, but for a pathological gambler these can trigger a harmful thought process and should be avoided. Communications related to investment and trading of the coin should be addressed to investors and traders \u2014 professionals who know how hard it is to reliably beat the market and who make decisions based on their own unique portfolio and risk management strategy. Any kind of communication around these topics which has a celebratory tone, or which could reasonably be interpreted as investment advice is not ethical. Communications which focus entirely on explaining a piece of technology, without any mention or implication of buying, selling, price, or potential future growth (including growth in usage of the technology), are probably ethical. Communications which address the topic of buying, selling or mining, but are specifically focused on the Principle of No Expected Return, are probably ethical. Examples to Avoid These passages are examples of the type of communication which is likely to be problematic. Context is key, and in the context of a communication which clearly transmits an ethical core message, a passing mention of money probably does not make the whole communication unethical. But if the core message is not communicated with adequate clarity, then even the slightest mention of topics like the following may make the communication unethical. \"price has grown by 50% over the past 3 months\" \"George has made $700 mining with his old computer\" \"reaping the rewards for something you put zero effort in!\"\" \"build a fund for rainy days\" \"earning passive income at any time of day, even when sleeping\" \"early adopters have the most to gain\" \"miners who accumulate the coin are rewarded whenever there is significant price appreciation\" \"so many people trust cryptocurrency investment\" \"gain financially by facilitating connectivity\" While some of these statements may be factual, they share a common narrative that there is an opportunity, it is easy, and it leads to making money. This is a stark contrast from the Principle of No Expected Return. Better Examples Honest communications addressing topics like the following are more likely to be ethical. \"price has been on the rise, but this can be affected by current events outside the project, so core community members are more focused on continuous progress toward the goal\" \"'I pay for my internet, so I might as well use it\"', said George who has been mining with his old computer\" \"we all know internet is over-priced, but now there is a community of people trying to do something about it\" \"'I know cryptocurrencies are risky, and tomorrow it could all be worth nothing, but I'm spending money I can afford on a something I believe in' said Tom, who recently bought coins\" \"the control that big telecoms have over our everyday lives can make people feel powerless, but now there\u2019s an easy way to push back\" \"sometimes the price goes up and sometimes it goes down. Being part of the community is about believing that democratised internet is possible\"","title":"Ethical Communication Guidelines"},{"location":"communication/#ethical-communication-guidelines","text":"This is a guideline for ethical communications about the project. It is recognized that to accomplish the goals, it is imperative that there is a community who understands and uses the technology, so communication cannot be avoided. However, poor communication, even made with the best intentions, risks harming the reputation of the project and the general public. So these guidelines exist to help community members represent the project in the best way possible.","title":"Ethical Communication Guidelines"},{"location":"communication/#a-far-higher-standard","text":"Within the cryptocurrency ecosystem, there are a significant number of outright criminal activities. Beyond those there is a wide grey area of communication activities which have not been subject to any regulatory enforcement, but still fall far outside of what these guidelines establish as ethical. Community members are cautioned that due to the scale of these \"grey\" activities, there is a large body of publications, influencers, marketers, \"shills\" and other professionals who, if consulted or emulated, are highly likely to put a person in ethical peril, because these guidelines establish a far higher standard of communication ethics than that which is generally considered to be legal.","title":"A Far Higher Standard"},{"location":"communication/#principle-of-no-expected-return","text":"It is acknowledged that buying, selling and mining are central aspects of cryptocurrency use, so it is difficult to effectively communicate about the project without ever addressing reasons why a person might do these things. Therefore these guidelines offer a pre-approved narrative which is considered to be maximally protective of the reputation of the project while also providing a healthy perspective regarding the risks associated with cryptocurrency. The Principle of No Expected Return is that one should buy or mine a cryptocurrency if and only if they believe strongly enough in the vision of the project that they would be proud to own the coin even if they were never able to sell it. In the early days of Bitcoin, it was widely believed that it would be legislated out of existence or otherwise collapse, and so this principle was pervasive throughout the community. Many people chose to hold Bitcoin as a political statement regarding the morality of modern financial institutions, especially after the 2008 financial crisis. The key components of the Principle of No Expected Return are: * A clear understanding of what the technology is and what it is not. * A belief in the social change which that technology can realistically facilitate. * The mental and financial preparedness to lose any money or effort that is used to acquire the coin, as one has when one makes a donation. When you\u2019re considering buying a coin, you need to ask yourself: If you were to lose everything you put into a coin, would you look back on the day you bought it, proud to have been a part of the project at that time? If the answer is no, then you\u2019re either planning to buy too much, or you\u2019re just not ready.","title":"Principle of No Expected Return"},{"location":"communication/#guidelines","text":"Dishonest, intentionally misleading, or otherwise unlawful communication is obviously unethical, but beyond that there is no clear definition for unethical communication, though one could characterise it in the words of Justice Stewart, \"I know it when I see it\". These non-exhaustive guidelines exist to give community members an understanding of the types of communication which are most likely to be unethical. They are listed in order of importance with the most important first. Communications which follow the letter, but not the spirit, of these guidelines are unethical. One example of this is token disclaimers such as \"this is not financial advice\". Disclaimers can be useful for helping a person understand the limitations and caveats of a communication, but a token disclaimer exists more to make the communicator seem innocent than to help the audience have a clearer understanding. The use of fine print, or disclaimers which \"feel out of place\" in the overall communication should be regarded as red flags, and communicators using these should review the objectives of their message and whether it is being communicated clearly. Communications which a person of sound judgement could plausibly interpret as presenting a low risk low effort opportunity to make money , or \u201csomething for nothing\u201d, are unethical. Presenting an opportunity can take many forms including implication though specific selection of facts, or an over-celebratory tone. Generally speaking, communications should be explicit about their objective so that there is minimal chance of mis-interpretation. Communications which a person suffering impaired judgement has an unusually high likelihood of interpreting as a low risk low effort opportunity to make money are unethical. Topics like \u201cwinning\u201d, \u201cpump\u201d, \u201cFOMO\u201d, \u201cYOLO\u201d (spend all of your money), \u201cmoon\u201d, and the idea of being rich, may strike the average person as nothing more than a bit of low-culture humour, but for a pathological gambler these can trigger a harmful thought process and should be avoided. Communications related to investment and trading of the coin should be addressed to investors and traders \u2014 professionals who know how hard it is to reliably beat the market and who make decisions based on their own unique portfolio and risk management strategy. Any kind of communication around these topics which has a celebratory tone, or which could reasonably be interpreted as investment advice is not ethical. Communications which focus entirely on explaining a piece of technology, without any mention or implication of buying, selling, price, or potential future growth (including growth in usage of the technology), are probably ethical. Communications which address the topic of buying, selling or mining, but are specifically focused on the Principle of No Expected Return, are probably ethical.","title":"Guidelines"},{"location":"communication/#examples-to-avoid","text":"These passages are examples of the type of communication which is likely to be problematic. Context is key, and in the context of a communication which clearly transmits an ethical core message, a passing mention of money probably does not make the whole communication unethical. But if the core message is not communicated with adequate clarity, then even the slightest mention of topics like the following may make the communication unethical. \"price has grown by 50% over the past 3 months\" \"George has made $700 mining with his old computer\" \"reaping the rewards for something you put zero effort in!\"\" \"build a fund for rainy days\" \"earning passive income at any time of day, even when sleeping\" \"early adopters have the most to gain\" \"miners who accumulate the coin are rewarded whenever there is significant price appreciation\" \"so many people trust cryptocurrency investment\" \"gain financially by facilitating connectivity\" While some of these statements may be factual, they share a common narrative that there is an opportunity, it is easy, and it leads to making money. This is a stark contrast from the Principle of No Expected Return.","title":"Examples to Avoid"},{"location":"communication/#better-examples","text":"Honest communications addressing topics like the following are more likely to be ethical. \"price has been on the rise, but this can be affected by current events outside the project, so core community members are more focused on continuous progress toward the goal\" \"'I pay for my internet, so I might as well use it\"', said George who has been mining with his old computer\" \"we all know internet is over-priced, but now there is a community of people trying to do something about it\" \"'I know cryptocurrencies are risky, and tomorrow it could all be worth nothing, but I'm spending money I can afford on a something I believe in' said Tom, who recently bought coins\" \"the control that big telecoms have over our everyday lives can make people feel powerless, but now there\u2019s an easy way to push back\" \"sometimes the price goes up and sometimes it goes down. Being part of the community is about believing that democratised internet is possible\"","title":"Better Examples"},{"location":"governance-nsc/","text":"Network Steward Charter Anyone considering becoming Network Steward will need to publicly declare themselves to be a candidate. Upon declaring candidacy, a proposal should be publicly shared. The proposal should outline the basis and intentions of the Network Steward if elected. Please find suggestions for how to structure a proposal, as the criteria for evaluation is public. Short term impact Short term impact constitutes the project's capability to help the achievement of the PKT project's immediate objectives. For example, a project to search for breakthroughs in wireless technology may be well aligned with PKT's objectives in the long term but will not bear fruit for a significant amount of time. Specific questions useful for evaluating short term impact: Will this project facilitate PKT\u2019s roadmap? Will this project help PKT to distinguish itself from other blockchain projects? Does this project provide a piece of infrastructure which is considered necessary? Long term impact Long term impact constitutes a project's capability to pay dividends to the PKT ecosystem over the long term. Long term impact is important because it fosters a snowball effect of returns on the investment of Network Steward funds. Specific questions useful for evaluating long term impact: Will this project help advance \"infrastructure operator\" roles? Will this project provide key infrastructure/institutions necessary to the emergence of a healthy ecosystem? Does this project bypass a tragedy-of-the-commons problem which blocks the natural emergence of a piece of key infrastructure? Scope and use of resources Use of resources is the question of how \"expensive\" a project is and its ability to fit within the budget. Short and long term impact will be evaluated with attention to the impact/cost ratio. Note that volunteer time/effort spent by the Network Steward, or their team in order to oversee the project will be taken into account, so all other things being equal, a few large projects are preferable to a large number of smaller ones. Some questions which may be useful for evaluating scope and use of resources include: Do the metrics for success justify the amount of effort placed on the project? Does the cost for effort seem to be a good deal (attention shall be given to the skill sets of declared participants)? Are there competitive aspects with the project to promote efficient use of resources? Risk control Risk control is about the question of how likely a project is to fail at delivering the expected result. Projects which are inherently more risky will be evaluated more stringently on their proposed risk control. Specific questions useful to the evaluation of risk control include: How evenly is the effort spaced over the milestones of the project? How evenly is the payment spaced over the milestones of the project? How well did the candidate specify success criteria for the project? To what extent are the risks defined and planned for in the project proposal? To what extent are the difficulties and potential blockers moved to the early parts of the project? What evidence is there that the Network Steward is capable of delivering? Hazard control The objective of the Network Steward is for the community to elect someone who will build or oversee projects that benefit the entire PKT ecosystem equally without unfairly benefitting any one participant over any other. Hazard control is about preventing any incentive or the perception of an incentive which would promote a corruption of the process from its objective. Public perceptions are almost as important as the real thing because the perception of hazard discourages new participants from joining the PKT ecosystem and encourages existing participants to submit projects which are at least as corrupt as they imagine the average project to be. Some questions which may be useful to the evaluation of hazard control include: To what extent is the project safe from any real or perceived conflicts of interest? To what extent are the results of this project equally advantageous to all participants in the PKT ecosystem? To what extent does the proposal structure the project such that success will be more advantageous to the applicant than failure? The use of milestones, deliverables and evenly spaced payments conditioned on deliveries is encouraged. To what extent does the project control the risk of arbitrage profit opportunity for the applicant? An example of arbitrage profit opportunity appears when there is a lack of market agreement on the cost of the deliverables which the project will produce. Logo design is a good example of a deliverable for which there lacks market agreement on the cost. While PepeiCo saw fit to spend one million dollars on their logo, the Nike logo was bought for a mere $35. In the case of such an expenditure, the overall community may be unable to verify whether a project constitutes a million dollars worth of diligent effort or a $35 drawing sold at a markup. Did the applicant declare and control for any potential conflicts of interest? Potentially unacceptable projects Some projects may be judged by the community to be unacceptable under any conditions. An intuitive example would be a proposal to build an assassination market which is blatantly illegal and contrary to the objectives of the project. These judgements will be made by individual voters. Some questions which are useful in the evaluation of acceptability: Does the project seem more likely to benefit the PKT ecosystem than to harm it? Does the project seem unlikely to cause significant damage to the perceived legitimacy of the PKT ecosystem? Delayed milestones While it is not in the interest of the community to rush projects, it is important to guard against the possibility of candidates applying for projects and then not doing the work - planning to abandon the project unless there is a precipitous increase in the price at which they can sell PKT.","title":"Network Steward Charter"},{"location":"governance-nsc/#network-steward-charter","text":"Anyone considering becoming Network Steward will need to publicly declare themselves to be a candidate. Upon declaring candidacy, a proposal should be publicly shared. The proposal should outline the basis and intentions of the Network Steward if elected. Please find suggestions for how to structure a proposal, as the criteria for evaluation is public.","title":"Network Steward Charter"},{"location":"governance-nsc/#short-term-impact","text":"Short term impact constitutes the project's capability to help the achievement of the PKT project's immediate objectives. For example, a project to search for breakthroughs in wireless technology may be well aligned with PKT's objectives in the long term but will not bear fruit for a significant amount of time. Specific questions useful for evaluating short term impact: Will this project facilitate PKT\u2019s roadmap? Will this project help PKT to distinguish itself from other blockchain projects? Does this project provide a piece of infrastructure which is considered necessary?","title":"Short term impact"},{"location":"governance-nsc/#long-term-impact","text":"Long term impact constitutes a project's capability to pay dividends to the PKT ecosystem over the long term. Long term impact is important because it fosters a snowball effect of returns on the investment of Network Steward funds. Specific questions useful for evaluating long term impact: Will this project help advance \"infrastructure operator\" roles? Will this project provide key infrastructure/institutions necessary to the emergence of a healthy ecosystem? Does this project bypass a tragedy-of-the-commons problem which blocks the natural emergence of a piece of key infrastructure?","title":"Long term impact"},{"location":"governance-nsc/#scope-and-use-of-resources","text":"Use of resources is the question of how \"expensive\" a project is and its ability to fit within the budget. Short and long term impact will be evaluated with attention to the impact/cost ratio. Note that volunteer time/effort spent by the Network Steward, or their team in order to oversee the project will be taken into account, so all other things being equal, a few large projects are preferable to a large number of smaller ones. Some questions which may be useful for evaluating scope and use of resources include: Do the metrics for success justify the amount of effort placed on the project? Does the cost for effort seem to be a good deal (attention shall be given to the skill sets of declared participants)? Are there competitive aspects with the project to promote efficient use of resources?","title":"Scope and use of resources"},{"location":"governance-nsc/#risk-control","text":"Risk control is about the question of how likely a project is to fail at delivering the expected result. Projects which are inherently more risky will be evaluated more stringently on their proposed risk control. Specific questions useful to the evaluation of risk control include: How evenly is the effort spaced over the milestones of the project? How evenly is the payment spaced over the milestones of the project? How well did the candidate specify success criteria for the project? To what extent are the risks defined and planned for in the project proposal? To what extent are the difficulties and potential blockers moved to the early parts of the project? What evidence is there that the Network Steward is capable of delivering?","title":"Risk control"},{"location":"governance-nsc/#hazard-control","text":"The objective of the Network Steward is for the community to elect someone who will build or oversee projects that benefit the entire PKT ecosystem equally without unfairly benefitting any one participant over any other. Hazard control is about preventing any incentive or the perception of an incentive which would promote a corruption of the process from its objective. Public perceptions are almost as important as the real thing because the perception of hazard discourages new participants from joining the PKT ecosystem and encourages existing participants to submit projects which are at least as corrupt as they imagine the average project to be. Some questions which may be useful to the evaluation of hazard control include: To what extent is the project safe from any real or perceived conflicts of interest? To what extent are the results of this project equally advantageous to all participants in the PKT ecosystem? To what extent does the proposal structure the project such that success will be more advantageous to the applicant than failure? The use of milestones, deliverables and evenly spaced payments conditioned on deliveries is encouraged. To what extent does the project control the risk of arbitrage profit opportunity for the applicant? An example of arbitrage profit opportunity appears when there is a lack of market agreement on the cost of the deliverables which the project will produce. Logo design is a good example of a deliverable for which there lacks market agreement on the cost. While PepeiCo saw fit to spend one million dollars on their logo, the Nike logo was bought for a mere $35. In the case of such an expenditure, the overall community may be unable to verify whether a project constitutes a million dollars worth of diligent effort or a $35 drawing sold at a markup. Did the applicant declare and control for any potential conflicts of interest?","title":"Hazard control"},{"location":"governance-nsc/#potentially-unacceptable-projects","text":"Some projects may be judged by the community to be unacceptable under any conditions. An intuitive example would be a proposal to build an assassination market which is blatantly illegal and contrary to the objectives of the project. These judgements will be made by individual voters. Some questions which are useful in the evaluation of acceptability: Does the project seem more likely to benefit the PKT ecosystem than to harm it? Does the project seem unlikely to cause significant damage to the perceived legitimacy of the PKT ecosystem?","title":"Potentially unacceptable projects"},{"location":"governance-nsc/#delayed-milestones","text":"While it is not in the interest of the community to rush projects, it is important to guard against the possibility of candidates applying for projects and then not doing the work - planning to abandon the project unless there is a precipitous increase in the price at which they can sell PKT.","title":"Delayed milestones"},{"location":"governance/","text":"Introduction The institution of the Network Steward will remain as it was before, and will continue to be elected via a weekly vote using the Electorium algorithm. However unlike the vote in legacy PKT, coins will need to be locked up in order to vote. There will be no specific lockup period required, and there will be no vote multiplier for using a longer lockup period, but each PKT, and each 1 PKT worth of locked up LP Token, will be worth one vote. The same voting mechanism will allow changes to both the Network Steward and the Executor. However, changing the Executor is a more solemn matter and so will only occur when 75% of all actively voting coins continually approve such change for 4 consecutive weeks. This 75% rule is borrowed from the requirement for approving changes to the US Constitution. The allocation of yields is however a more complex affair, and just as the mining pools had centrally decided the allocation of yields, the application of the rules laid out in the Infrastructure section will be managed by a centralized \u201cExecutor\u201d. How Does Electorium Work? Nobody ever sits down and asks themselves who is most fit to manage the affairs of the nation. Instead people argue over whether it\u2019s going to be the blue guy or the red guy, and they think that\u2019s democracy. It\u2019s quite possible that the entire partisan landscape as we know it is an artifact of a flawed voting system. The dream of the third party candidate is that if enough people would vote for him, he would no longer be \u201cthird party\u201d. But to get there, he needs to somehow overcome the objection that voting for him means losing a chance to vote against \"The Bad Guy\". Even the third party candidate does not ask the voter who is most fit to rule! If we could just cast all the politics and partisanship aside and get to the real heart of the question, everybody\u2019s answer would probably be different. We\u2019d most likely have a beautiful patchwork of nominations including businessmen, professors, soldiers, clergy, and other people of distinction. To address this, PKT uses a new vote counting algorithm called Electorium. It is in essence a search algorithm. It finds the candidate who cannot be beaten by anyone else, if we were to pretend that neither they, nor their challenger, voted for each other. So in the case of Alice and Bob, we pretend Alice is not voting for Bob, and Bob is not voting for Alice and we can easily find the winner. This computation of delegated votes is not as simple as it might seem. If Alice votes for Bob, and Bob votes for Alice, it is not immediately obvious who should win. Not only that, it is important that the counting process be fast. There is also another case where perhaps Alice votes for Bob, but Bob does not vote for Alice. It might seem that Bob is the clear winner, but if the majority of his votes have been received from or through Alice, then by these rules Alice still wins. However, if there is another candidate who receives more votes than Alice but less than Bob, Bob becomes the winner because Alice loses and is forced to delegate her votes. Delegated Voting Using Electorium you can vote for anyone, but no one is required to be a candidate. If you vote for someone who does not wish to be a candidate, your vote is simply delegated to whoever they vote for. Everyone who chooses to be a candidate automatically votes for themselves. If they vote for someone else, that vote is secondary to their implied vote for themselves. To put it differently, voting as a candidate will never cause you to lose. If a candidate explicitly votes for himself, his explicit vote is meaningless. It is the same as indicating his candidacy without voting at all. This voting system values each vote by the amount of PKT the voter holds. This is of course unlike a standard national election where every citizen gets an equal vote. But like almost all blockchains, PKT has nothing analogous to the concept of the citizen. One person can trivially pretend to be thousands, or even millions, of unique individuals. So PKT must by necessity adopt the model used in public corporations, where votes are weighted based on how much of the coin is held. This idea of weighting the vote based on skin in the game actually makes some sense as well. In a national election, every citizen could be considered to have the equal skin in the game, it is their life and family that is at stake. But in the case of a project or online community, a person with little investment can easily walk away, so they cannot be expected to make decisions with the same level of care as someone whose involvement is greater. Thus voting is done as proof-of-stake. Proof-of-stake voting is done publicly. The right to vote one\u2019s conscience without fear of repercussion is a fundamental part of the modern democratic process. But anonymous voting on a blockchain is largely uncharted territory, so it is not clear how, or even if, this could be achieved. In any case, there is one advantage to public voting, and that is public voting of the delegates. When you choose who is to represent you, you certainly should know what decisions they make. You might wonder what happens if you want to vote for somebody, but you don\u2019t like who they would vote for. Well you can\u2019t have it both ways, either you trust their judgment or you don\u2019t, and the beauty of this system is that it forces you to reconcile that. You also don\u2019t get to evade moral responsibility by choosing a lovable candidate who's guaranteed to lose. The question before you is who is most fit to lead, and you cannot vote without answering it. If you do vote, it is highly likely that your vote will somehow help elect the final winner. Secret voting, while important for the general public, is abhorrent when done in the senate chamber. In the Electorium system everyone is a potential senator, and everyone\u2019s vote is a matter of public record. You only need to vote once, and your vote counts in every election with whatever balance you have at the time of the election, until you either change it, or it expires. There is a vote expiration time of 1 year so that lost wallets will not affect the outcome of elections forever. Executor From launch day, the Executor will be hard coded. The role of the executor is not to make meaningful decisions, but rather to fit the facts to the written rules as best as possible. Questions like \u201cis this cjdns node really operational?\u201d or \u201cis that nameserver censoring domains?\u201d are not conducive to smart contract based validation, so these decisions will be made by the Executor. Prior to the end of 2024, a smart contract that will be developed will be an implementation of the Electorium voting algorithm to allow for replacement of the Executor.","title":"Introduction"},{"location":"governance/#introduction","text":"The institution of the Network Steward will remain as it was before, and will continue to be elected via a weekly vote using the Electorium algorithm. However unlike the vote in legacy PKT, coins will need to be locked up in order to vote. There will be no specific lockup period required, and there will be no vote multiplier for using a longer lockup period, but each PKT, and each 1 PKT worth of locked up LP Token, will be worth one vote. The same voting mechanism will allow changes to both the Network Steward and the Executor. However, changing the Executor is a more solemn matter and so will only occur when 75% of all actively voting coins continually approve such change for 4 consecutive weeks. This 75% rule is borrowed from the requirement for approving changes to the US Constitution. The allocation of yields is however a more complex affair, and just as the mining pools had centrally decided the allocation of yields, the application of the rules laid out in the Infrastructure section will be managed by a centralized \u201cExecutor\u201d.","title":"Introduction"},{"location":"governance/#how-does-electorium-work","text":"Nobody ever sits down and asks themselves who is most fit to manage the affairs of the nation. Instead people argue over whether it\u2019s going to be the blue guy or the red guy, and they think that\u2019s democracy. It\u2019s quite possible that the entire partisan landscape as we know it is an artifact of a flawed voting system. The dream of the third party candidate is that if enough people would vote for him, he would no longer be \u201cthird party\u201d. But to get there, he needs to somehow overcome the objection that voting for him means losing a chance to vote against \"The Bad Guy\". Even the third party candidate does not ask the voter who is most fit to rule! If we could just cast all the politics and partisanship aside and get to the real heart of the question, everybody\u2019s answer would probably be different. We\u2019d most likely have a beautiful patchwork of nominations including businessmen, professors, soldiers, clergy, and other people of distinction. To address this, PKT uses a new vote counting algorithm called Electorium. It is in essence a search algorithm. It finds the candidate who cannot be beaten by anyone else, if we were to pretend that neither they, nor their challenger, voted for each other. So in the case of Alice and Bob, we pretend Alice is not voting for Bob, and Bob is not voting for Alice and we can easily find the winner. This computation of delegated votes is not as simple as it might seem. If Alice votes for Bob, and Bob votes for Alice, it is not immediately obvious who should win. Not only that, it is important that the counting process be fast. There is also another case where perhaps Alice votes for Bob, but Bob does not vote for Alice. It might seem that Bob is the clear winner, but if the majority of his votes have been received from or through Alice, then by these rules Alice still wins. However, if there is another candidate who receives more votes than Alice but less than Bob, Bob becomes the winner because Alice loses and is forced to delegate her votes.","title":"How Does Electorium Work?"},{"location":"governance/#delegated-voting","text":"Using Electorium you can vote for anyone, but no one is required to be a candidate. If you vote for someone who does not wish to be a candidate, your vote is simply delegated to whoever they vote for. Everyone who chooses to be a candidate automatically votes for themselves. If they vote for someone else, that vote is secondary to their implied vote for themselves. To put it differently, voting as a candidate will never cause you to lose. If a candidate explicitly votes for himself, his explicit vote is meaningless. It is the same as indicating his candidacy without voting at all. This voting system values each vote by the amount of PKT the voter holds. This is of course unlike a standard national election where every citizen gets an equal vote. But like almost all blockchains, PKT has nothing analogous to the concept of the citizen. One person can trivially pretend to be thousands, or even millions, of unique individuals. So PKT must by necessity adopt the model used in public corporations, where votes are weighted based on how much of the coin is held. This idea of weighting the vote based on skin in the game actually makes some sense as well. In a national election, every citizen could be considered to have the equal skin in the game, it is their life and family that is at stake. But in the case of a project or online community, a person with little investment can easily walk away, so they cannot be expected to make decisions with the same level of care as someone whose involvement is greater. Thus voting is done as proof-of-stake. Proof-of-stake voting is done publicly. The right to vote one\u2019s conscience without fear of repercussion is a fundamental part of the modern democratic process. But anonymous voting on a blockchain is largely uncharted territory, so it is not clear how, or even if, this could be achieved. In any case, there is one advantage to public voting, and that is public voting of the delegates. When you choose who is to represent you, you certainly should know what decisions they make. You might wonder what happens if you want to vote for somebody, but you don\u2019t like who they would vote for. Well you can\u2019t have it both ways, either you trust their judgment or you don\u2019t, and the beauty of this system is that it forces you to reconcile that. You also don\u2019t get to evade moral responsibility by choosing a lovable candidate who's guaranteed to lose. The question before you is who is most fit to lead, and you cannot vote without answering it. If you do vote, it is highly likely that your vote will somehow help elect the final winner. Secret voting, while important for the general public, is abhorrent when done in the senate chamber. In the Electorium system everyone is a potential senator, and everyone\u2019s vote is a matter of public record. You only need to vote once, and your vote counts in every election with whatever balance you have at the time of the election, until you either change it, or it expires. There is a vote expiration time of 1 year so that lost wallets will not affect the outcome of elections forever.","title":"Delegated Voting"},{"location":"governance/#executor","text":"From launch day, the Executor will be hard coded. The role of the executor is not to make meaningful decisions, but rather to fit the facts to the written rules as best as possible. Questions like \u201cis this cjdns node really operational?\u201d or \u201cis that nameserver censoring domains?\u201d are not conducive to smart contract based validation, so these decisions will be made by the Executor. Prior to the end of 2024, a smart contract that will be developed will be an implementation of the Electorium voting algorithm to allow for replacement of the Executor.","title":"Executor"},{"location":"units/","text":"PKT Units and Fees As with all blockchains, every transaction of PKT is exact, however unlike other blockchains, the number of atomic units in the PKT coin is not a power of 10. With Bitcoin there are 100,000,000 atomic units (\"satoshis\") per bitcoin. With PKT there are 2 to the 30th power ( 1,073,741,824 ) atomic units. While this is strange number in base-10, in binary it is a perfectly even 1 followed by thirty zeros. The binary nature of PKT has a few caveats, for example it means sending 0.01 PKT is actually impossible. This is because 0.01 would corrispond to 10,737,418.24 atomic units. Since they are atomic (indivisible), this must be rounded to the nearest whole number: 10,737,418 . When this divided by 2 30 , it results in 0.009999999776482582 . Therefore, all GUI wallets and explorers adopt the following convension: PKT amounts are always expressed with two decimal places and rounded to nearest, so 1,084,479,242 atomic units is displayed as 1.01 PKT . If the amount is less than 1 PKT , the amount is displayed as milli-pkt or mPKT and multiplied by 1,000 , so 10,737,418 atomic units is displayed as 10.00 mPKT If the amount is less than 1 mPKT , the amount is displayed as micro-pkt or \u03bcPKT and multiplied by 1,000,000 , so 107,374 atomic units is displayed as 100.00 \u03bcPKT . If the amount is less than 1 \u03bcPKT , the amount is displayed as nano-pkt or nPKT and multiplied by 1,000,000,000 , so 107 atomic units is displayed as 99.64 nPKT . A single atomic unit is displayed as 0.93 nPKT . While these are the convensions adopted by all GUI wallets and explorers. Exchanges and merchants may choose to forbid transaction of amounts less than 1 PKT , thus they need only implement #1 because they will never display an amount of less than 1 PKT . Fees PKT uses bitcoin-like computation for determining fees. Because the blockchain has a 1 minute block time, there is generally plenty of space for transactions in the blocks and the typical fee is the minimum: 1 atomic unit per byte of transaction size. The size of a transaction depends on the number of transaction inputs and outputs. The number of outputs is simply the number of addresses you are paying, plus one more to re-route change back to yourself. The number of inputs depends on where the coins you are sending have been sourced from. If you are mining PKT, then you may have many tiny transactions which you need to aggregate in order to make a payment. Currently, wallets do not create transactions with more than 1,460 inputs. This results in a transaction of just under 100,000 bytes and thus costing right around 100,000 atomic units or 93.13 \u03bcPKT , that is micro-pkt or millionths of a PKT (for the largest possible transaction). A more typical transaction size would be around 1,000 bytes and thus cost 1,000 atomic units, or 931.32 nPKT (billionths of 1 PKT). In almost every case, the fees will disappear when the transaction is rounded to display the 2 decimal places. It is possible, though vanishingly unlikely that your wallet could display 10.00 PKT and after sending exactly 5 PKT your wallet displays 4.99 . This would happen if the actual amount you had was 9.555555556 PKT , rounded to 10.00 and after sending exactly 5 PKT , the miniscule fee caused it to cross a rounding boundary and become 4.555555553 . If you wish to perform analytical accounting, it is recommended that you deal exclusively in atomic units, represented as an int64, and only represent PKT for display purposes.","title":"PKT Units and Fees"},{"location":"units/#pkt-units-and-fees","text":"As with all blockchains, every transaction of PKT is exact, however unlike other blockchains, the number of atomic units in the PKT coin is not a power of 10. With Bitcoin there are 100,000,000 atomic units (\"satoshis\") per bitcoin. With PKT there are 2 to the 30th power ( 1,073,741,824 ) atomic units. While this is strange number in base-10, in binary it is a perfectly even 1 followed by thirty zeros. The binary nature of PKT has a few caveats, for example it means sending 0.01 PKT is actually impossible. This is because 0.01 would corrispond to 10,737,418.24 atomic units. Since they are atomic (indivisible), this must be rounded to the nearest whole number: 10,737,418 . When this divided by 2 30 , it results in 0.009999999776482582 . Therefore, all GUI wallets and explorers adopt the following convension: PKT amounts are always expressed with two decimal places and rounded to nearest, so 1,084,479,242 atomic units is displayed as 1.01 PKT . If the amount is less than 1 PKT , the amount is displayed as milli-pkt or mPKT and multiplied by 1,000 , so 10,737,418 atomic units is displayed as 10.00 mPKT If the amount is less than 1 mPKT , the amount is displayed as micro-pkt or \u03bcPKT and multiplied by 1,000,000 , so 107,374 atomic units is displayed as 100.00 \u03bcPKT . If the amount is less than 1 \u03bcPKT , the amount is displayed as nano-pkt or nPKT and multiplied by 1,000,000,000 , so 107 atomic units is displayed as 99.64 nPKT . A single atomic unit is displayed as 0.93 nPKT . While these are the convensions adopted by all GUI wallets and explorers. Exchanges and merchants may choose to forbid transaction of amounts less than 1 PKT , thus they need only implement #1 because they will never display an amount of less than 1 PKT .","title":"PKT Units and Fees"},{"location":"units/#fees","text":"PKT uses bitcoin-like computation for determining fees. Because the blockchain has a 1 minute block time, there is generally plenty of space for transactions in the blocks and the typical fee is the minimum: 1 atomic unit per byte of transaction size. The size of a transaction depends on the number of transaction inputs and outputs. The number of outputs is simply the number of addresses you are paying, plus one more to re-route change back to yourself. The number of inputs depends on where the coins you are sending have been sourced from. If you are mining PKT, then you may have many tiny transactions which you need to aggregate in order to make a payment. Currently, wallets do not create transactions with more than 1,460 inputs. This results in a transaction of just under 100,000 bytes and thus costing right around 100,000 atomic units or 93.13 \u03bcPKT , that is micro-pkt or millionths of a PKT (for the largest possible transaction). A more typical transaction size would be around 1,000 bytes and thus cost 1,000 atomic units, or 931.32 nPKT (billionths of 1 PKT). In almost every case, the fees will disappear when the transaction is rounded to display the 2 decimal places. It is possible, though vanishingly unlikely that your wallet could display 10.00 PKT and after sending exactly 5 PKT your wallet displays 4.99 . This would happen if the actual amount you had was 9.555555556 PKT , rounded to 10.00 and after sending exactly 5 PKT , the miniscule fee caused it to cross a rounding boundary and become 4.555555553 . If you wish to perform analytical accounting, it is recommended that you deal exclusively in atomic units, represented as an int64, and only represent PKT for display purposes.","title":"Fees"},{"location":"useful_tools/","text":"PKT Useful Tools This is a mostly un-moderated list of FREE tools, websites and software built by the PKT Cash community. Beware, anyone can contribute their own links and pkt.cash does not verify them. Add yourself Make a Pull Request to This page to add your link. Keep it short and to the point NO PICTURES, no color text, no big fonts No commercial products or services (these can be added here ) Chain Analysis Pkt.world Explorer The Pkt.world blockchain explorer gives insights into the blockchain, active mining pools and their performance, and your mining profits. PktPool.io Analytics dashboard covering many aspects of the PKT blockchain including a block explorer, transaction graphs, mining rewards, WPKT transactions and much more. Packetscan.io Packetscan is a block explorer for the PKT Cash blockchain. Look up transactions, blocks, addresess, balances, chain stats and more. Mining Yield and Performance Calculators MinePKT.com Ke/s calculator to see your profits! Mining Profitability Calculator Estimate performance and potential PKT Cash announcement miner earnings for a huge selection of CPUs. Mining Tools Minr A simple to use GUI for PacketCrypt. Available on MacOS, Windows and Linux. Configuration Generator Quickly generate and download a PacketCrypt config.json file. Miscellaneous Decimation Tracker When will the next PKT Cash decimation be? Never miss another decimation with the PKT Watch Decimation Tracker. PKT Tips Mining tips and tricks for memebers who are new to the PKT project.","title":"PKT Useful Tools"},{"location":"useful_tools/#pkt-useful-tools","text":"This is a mostly un-moderated list of FREE tools, websites and software built by the PKT Cash community. Beware, anyone can contribute their own links and pkt.cash does not verify them.","title":"PKT Useful Tools"},{"location":"useful_tools/#add-yourself","text":"Make a Pull Request to This page to add your link. Keep it short and to the point NO PICTURES, no color text, no big fonts No commercial products or services (these can be added here )","title":"Add yourself"},{"location":"useful_tools/#chain-analysis","text":"","title":"Chain Analysis"},{"location":"useful_tools/#pktworld-explorer","text":"The Pkt.world blockchain explorer gives insights into the blockchain, active mining pools and their performance, and your mining profits.","title":"Pkt.world Explorer"},{"location":"useful_tools/#pktpoolio","text":"Analytics dashboard covering many aspects of the PKT blockchain including a block explorer, transaction graphs, mining rewards, WPKT transactions and much more.","title":"PktPool.io"},{"location":"useful_tools/#packetscanio","text":"Packetscan is a block explorer for the PKT Cash blockchain. Look up transactions, blocks, addresess, balances, chain stats and more.","title":"Packetscan.io"},{"location":"useful_tools/#mining-yield-and-performance-calculators","text":"","title":"Mining Yield and Performance Calculators"},{"location":"useful_tools/#minepktcom","text":"Ke/s calculator to see your profits!","title":"MinePKT.com"},{"location":"useful_tools/#mining-profitability-calculator","text":"Estimate performance and potential PKT Cash announcement miner earnings for a huge selection of CPUs.","title":"Mining Profitability Calculator"},{"location":"useful_tools/#mining-tools","text":"","title":"Mining Tools"},{"location":"useful_tools/#minr","text":"A simple to use GUI for PacketCrypt. Available on MacOS, Windows and Linux.","title":"Minr"},{"location":"useful_tools/#configuration-generator","text":"Quickly generate and download a PacketCrypt config.json file.","title":"Configuration Generator"},{"location":"useful_tools/#miscellaneous","text":"","title":"Miscellaneous"},{"location":"useful_tools/#decimation-tracker","text":"When will the next PKT Cash decimation be? Never miss another decimation with the PKT Watch Decimation Tracker.","title":"Decimation Tracker"},{"location":"useful_tools/#pkt-tips","text":"Mining tips and tricks for memebers who are new to the PKT project.","title":"PKT Tips"},{"location":"utility/","text":"Introduction The migration of PKT to the Base blockchain represents a technology evolution for the PKT community and a vastly improved user experience. Base opens up a world of possibilities with best-in-class hardware and software wallets, decentralized finance (DeFi), marketplaces, real-world assets (RWAs), and non-fungible tokens (NFTs). Moreover, the move to Base blockchain enhances interoperability with other significant projects within the Optimism and broader Ethereum ecosystems. This compatibility extends PKT\u2019s reach and functionality, integrating it into a larger network of blockchain applications and services. Such connectivity fosters potential collaborations and innovations across different platforms and industries and helps drive utility for PKT token holders.","title":"Introduction"},{"location":"utility/#introduction","text":"The migration of PKT to the Base blockchain represents a technology evolution for the PKT community and a vastly improved user experience. Base opens up a world of possibilities with best-in-class hardware and software wallets, decentralized finance (DeFi), marketplaces, real-world assets (RWAs), and non-fungible tokens (NFTs). Moreover, the move to Base blockchain enhances interoperability with other significant projects within the Optimism and broader Ethereum ecosystems. This compatibility extends PKT\u2019s reach and functionality, integrating it into a larger network of blockchain applications and services. Such connectivity fosters potential collaborations and innovations across different platforms and industries and helps drive utility for PKT token holders.","title":"Introduction"},{"location":"vote/","text":"Casting a Vote To cast a vote, you need to install PKT-Lightning-Wallet on your computer. git clone https://github.com/cjdelisle/PKT-Lightning-Wallet cd PKT-Lightning-Wallet ./do Then you can create a new wallet to test the voting system: ./bin/pld --create --wallet=voting_test_jan24_2024 Once you have created it, start pld using: ./bin/pld --wallet=voting_test After it is running, open another window, navigate to the same folder, and make a new address: ./bin/pldctl wallet/address/create Once you have the new address, send yourself a few PKT in order to vote with it. You can check your balance using: ./bin/pldctl wallet/address/balances Before you can vote, you will first need to unlock the wallet: ./bin/pldctl unlock And after you have unlocked the wallet using the password you configured earlier, you can finally cast your vote: ./bin/pldctl wallet/transaction/sendvote \\ --from_address= \\ \u2014-vote_for=pkt1q2yt8djdlykf2d9ukmw0q5z5tur05xm674tq6y8 If all goes well, you should see a transaction ID as the result, and within a few minutes you will be able to look up that transaction on any of the block explorers. A few words of caution: If you use the CLI pktwallet, PKT-Lightning-Wallet will open your same wallet.db file and it responds the same way to the --wallet flag. PKT-Lightning-Wallet is still in development do not use it to open a large wallet yet!","title":"Casting a Vote"},{"location":"vote/#casting-a-vote","text":"To cast a vote, you need to install PKT-Lightning-Wallet on your computer. git clone https://github.com/cjdelisle/PKT-Lightning-Wallet cd PKT-Lightning-Wallet ./do Then you can create a new wallet to test the voting system: ./bin/pld --create --wallet=voting_test_jan24_2024 Once you have created it, start pld using: ./bin/pld --wallet=voting_test After it is running, open another window, navigate to the same folder, and make a new address: ./bin/pldctl wallet/address/create Once you have the new address, send yourself a few PKT in order to vote with it. You can check your balance using: ./bin/pldctl wallet/address/balances Before you can vote, you will first need to unlock the wallet: ./bin/pldctl unlock And after you have unlocked the wallet using the password you configured earlier, you can finally cast your vote: ./bin/pldctl wallet/transaction/sendvote \\ --from_address= \\ \u2014-vote_for=pkt1q2yt8djdlykf2d9ukmw0q5z5tur05xm674tq6y8 If all goes well, you should see a transaction ID as the result, and within a few minutes you will be able to look up that transaction on any of the block explorers. A few words of caution: If you use the CLI pktwallet, PKT-Lightning-Wallet will open your same wallet.db file and it responds the same way to the --wallet flag. PKT-Lightning-Wallet is still in development do not use it to open a large wallet yet!","title":"Casting a Vote"},{"location":"wallets/","text":"Wallets The Base blockchain is an Ethereum layer-2 scaling solution that employs advanced wallet technology to enhance user experience. Wallets on the Base blockchain deliver great user interface, interaction with smart contracts, and low transaction fees with faster processing times. The two recommended wallets are: MetaMask : MetaMask is one of the most popular wallets for interacting with Ethereum and Ethereum-based layer-2 networks including Base. It is widely recognized for its ease of use and robust security features. It functions as a browser extension and a mobile app, providing users with a secure way to manage their identities on different sites and sign blockchain transactions. Given its integration capabilities with Base, MetaMask allows users to easily switch between the Ethereum mainnet and the Base network, making it a versatile tool for both new and experienced users. Coinbase Wallet : Another excellent option for Base users is the Coinbase Wallet. It offers a user-friendly interface that supports not only cryptocurrency transactions but also interactions with dApps directly. This makes it ideal for those who prefer an all-in-one solution for managing their digital assets and engaging with the blockchain ecosystem. Both wallets provide key functionalities needed for operating on the Base network, including secure storage of assets, easy access to dApps, and support for Ethereum\u2019s ERC-20 tokens and NFTs, including PKT on Base.","title":"Wallets"},{"location":"wallets/#wallets","text":"The Base blockchain is an Ethereum layer-2 scaling solution that employs advanced wallet technology to enhance user experience. Wallets on the Base blockchain deliver great user interface, interaction with smart contracts, and low transaction fees with faster processing times. The two recommended wallets are: MetaMask : MetaMask is one of the most popular wallets for interacting with Ethereum and Ethereum-based layer-2 networks including Base. It is widely recognized for its ease of use and robust security features. It functions as a browser extension and a mobile app, providing users with a secure way to manage their identities on different sites and sign blockchain transactions. Given its integration capabilities with Base, MetaMask allows users to easily switch between the Ethereum mainnet and the Base network, making it a versatile tool for both new and experienced users. Coinbase Wallet : Another excellent option for Base users is the Coinbase Wallet. It offers a user-friendly interface that supports not only cryptocurrency transactions but also interactions with dApps directly. This makes it ideal for those who prefer an all-in-one solution for managing their digital assets and engaging with the blockchain ecosystem. Both wallets provide key functionalities needed for operating on the Base network, including secure storage of assets, easy access to dApps, and support for Ethereum\u2019s ERC-20 tokens and NFTs, including PKT on Base.","title":"Wallets"},{"location":"wrapped_pkt/","text":"Steps to swap PKT to wPKT Buy PKT on Bittrex Global (Non-USA traders) or BitMart (Global traders) Create a metamask wallet and connect to the Binance Smart Chain Goto www.ODApp.io Connect your metamask wallet Please note there is a %0.075 fee associated with swapping Pre-commit your wallet by entering the PKT sender address. This is the address that you will be sending your PKT from. (Please note: This address must be from a PKT wallet (Electrum, Zulu or PKT World. Once you commit this address it is the only address you can use to convert PKT to wPKT and wPKT to PKT. After you submit you should see Pair Successfully Committed. Click Get WPKT Using the PKT wallet address you used in step 5, Send the amount of PKT you want to wrap to wPKT to ODApp's \"VAULT\" address, pkt1qex9d4fjwc0nqr3x0hex6ds5vpu67efjdlm6ckz Make sure to copy the Transaction ID as you will need this in the coming steps For security, you will need to wait about 7 minutes to claim your WPKT. For transactions greater than 7 million PKT could take up to 3 hours to complete. Enter your PKT transaction ID, the address you sent your PKT from, and the BSC address you would like your WPKT sent to. You will need to hold some BNB coin in your metamask wallet to pay for fees in this process. If successful the following notification will populate and you will then have the ability to add wPKT token to your wallet. This will prompt your metamask wallet to open and allow you to add your tokens. Go check your wPKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into etherscan.io and you should see the transaction on the blockchain. Steps to swap wPKT to PKT You should already have either purchased wPKT on PancakeSwap or swapped your PKT into wPKT Please note there is a %.075 fee associated with swapping Log into your metmask wallet You must have some BNB in your wallet as you will need this for fees associated with swapping. Open your PKT wallet Goto www.ODApp.io and connect your metamask wallet Enter the amount of wPKT you want to convert to PKT Enter the PKT wallet address you would like the PKT deposited into The following prompt should show if you successfully burned the coins Press Recover PKT and this prompt should show Go check your PKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into https://explorer.pkt.cash and you should see the transaction on the blockchain.","title":"Wrapped pkt"},{"location":"wrapped_pkt/#steps-to-swap-pkt-to-wpkt","text":"Buy PKT on Bittrex Global (Non-USA traders) or BitMart (Global traders) Create a metamask wallet and connect to the Binance Smart Chain Goto www.ODApp.io Connect your metamask wallet Please note there is a %0.075 fee associated with swapping Pre-commit your wallet by entering the PKT sender address. This is the address that you will be sending your PKT from. (Please note: This address must be from a PKT wallet (Electrum, Zulu or PKT World. Once you commit this address it is the only address you can use to convert PKT to wPKT and wPKT to PKT. After you submit you should see Pair Successfully Committed. Click Get WPKT Using the PKT wallet address you used in step 5, Send the amount of PKT you want to wrap to wPKT to ODApp's \"VAULT\" address, pkt1qex9d4fjwc0nqr3x0hex6ds5vpu67efjdlm6ckz Make sure to copy the Transaction ID as you will need this in the coming steps For security, you will need to wait about 7 minutes to claim your WPKT. For transactions greater than 7 million PKT could take up to 3 hours to complete. Enter your PKT transaction ID, the address you sent your PKT from, and the BSC address you would like your WPKT sent to. You will need to hold some BNB coin in your metamask wallet to pay for fees in this process. If successful the following notification will populate and you will then have the ability to add wPKT token to your wallet. This will prompt your metamask wallet to open and allow you to add your tokens. Go check your wPKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into etherscan.io and you should see the transaction on the blockchain.","title":"Steps to swap PKT to wPKT"},{"location":"wrapped_pkt/#steps-to-swap-wpkt-to-pkt","text":"You should already have either purchased wPKT on PancakeSwap or swapped your PKT into wPKT Please note there is a %.075 fee associated with swapping Log into your metmask wallet You must have some BNB in your wallet as you will need this for fees associated with swapping. Open your PKT wallet Goto www.ODApp.io and connect your metamask wallet Enter the amount of wPKT you want to convert to PKT Enter the PKT wallet address you would like the PKT deposited into The following prompt should show if you successfully burned the coins Press Recover PKT and this prompt should show Go check your PKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into https://explorer.pkt.cash and you should see the transaction on the blockchain.","title":"Steps to swap wPKT to PKT"},{"location":"adv_learning/buy-pkt/","text":"PKT Documentation Documentation for the PKT project Wallet setup There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features. Mining PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page. Running a pktd instance You can setup a pktd instance using the instructions on pktd . Help and Community To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"PKT Documentation"},{"location":"adv_learning/buy-pkt/#pkt-documentation","text":"Documentation for the PKT project","title":"PKT Documentation"},{"location":"adv_learning/buy-pkt/#wallet-setup","text":"There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.","title":"Wallet setup"},{"location":"adv_learning/buy-pkt/#mining","text":"PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.","title":"Mining"},{"location":"adv_learning/buy-pkt/#running-a-pktd-instance","text":"You can setup a pktd instance using the instructions on pktd .","title":"Running a pktd instance"},{"location":"adv_learning/buy-pkt/#help-and-community","text":"To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"Help and Community"},{"location":"adv_learning/cryptoeconomics/","text":"Cryptoeconomics PKT blockchain is based on the Bitcoin codebase and implements two fundamental changes: Replacing SHA256 with the PacketCrypt proof of work. Adding a Network Steward that receives 20% of every coinbase payout to provide grants that meets its funding criteria. There are a total of 6 billion PKT, which will be mined over 63 years. Instead of an abrupt halving event every 4 years, like with Bitcoin, PKT uses a steady decay called a decimation, which is a 10% reduction in the block rewards every 100 days. Payout of PKT vs. BTC as percent of total coins Payout of PKT vs. BTC as percent of total coins PKT is designed around fast cheap transacting in small denominations. This is why there will be a total of 6 billion PKT mined compared to 21 million for Bitcoin. Furthermore, each PKT is subdividable into 1,073,741,824 units (2 to the 30th power) whereas there are only 100 million satoshis per Bitcoin. When the Bitcoin price reached almost $62,000 in October 2021, the price of a satoshi was 0.06 cents. This cost per satoshi is impractical for microtransactions, even with nearly free transacting over the Lightning Network. PKT Cash provides an economic incentive for people to connect bandwidth to the PKT Network. The Network Steward is designed to ensure funding is available to build-out an expansive, decentralized internet infrastructure with open-source technology.","title":"Cryptoeconomics"},{"location":"adv_learning/cryptoeconomics/#cryptoeconomics","text":"PKT blockchain is based on the Bitcoin codebase and implements two fundamental changes: Replacing SHA256 with the PacketCrypt proof of work. Adding a Network Steward that receives 20% of every coinbase payout to provide grants that meets its funding criteria. There are a total of 6 billion PKT, which will be mined over 63 years. Instead of an abrupt halving event every 4 years, like with Bitcoin, PKT uses a steady decay called a decimation, which is a 10% reduction in the block rewards every 100 days. Payout of PKT vs. BTC as percent of total coins Payout of PKT vs. BTC as percent of total coins PKT is designed around fast cheap transacting in small denominations. This is why there will be a total of 6 billion PKT mined compared to 21 million for Bitcoin. Furthermore, each PKT is subdividable into 1,073,741,824 units (2 to the 30th power) whereas there are only 100 million satoshis per Bitcoin. When the Bitcoin price reached almost $62,000 in October 2021, the price of a satoshi was 0.06 cents. This cost per satoshi is impractical for microtransactions, even with nearly free transacting over the Lightning Network. PKT Cash provides an economic incentive for people to connect bandwidth to the PKT Network. The Network Steward is designed to ensure funding is available to build-out an expansive, decentralized internet infrastructure with open-source technology.","title":"Cryptoeconomics"},{"location":"adv_learning/pktd-full-node/","text":"How to Run a Pktd Full Node Pktd is the PKT full node blockchain software. It is a fork of btcd, the golang bitcoin instance. Running a full node If you want to run a full node in the PKT network, you can do so by downloading pktd and compiling it on a Linux or Mac server. Follow the process in Installation and the simply type ./bin/pktd and it will start up and begin syncing the chain and helping verify the PKT network. NOTE : Running a full node requires over 40 GB of disk space to store the blockchain and is not necessary for participating in the project. If you just want to make a wallet, see PKT Electrum (gui) or PKTWallet (command line) wallets. Installation Install golang First, you need to install the go programming language, go to the golang website and learn how to install it on your system: https://golang.org/doc/install Install git Next you will need to make sure you have git installed. The first thing to do is check whether you have it installed already: git version If it prints something like git version 2.21.1 you\u2019re in luck and you can continue. If it prints something more like command not found: git then you\u2019ll need to install it. Installation will depend on your system, for debian/ubuntu like systems you will want sudo apt install git and for OSX with homebrew, you\u2019ll want brew install git . Install the components Once you have golang and git fully installed and set up, you can use the following commands to install pktd, pktwallet and pktctl. git clone https://github.com/pkt-cash/pktd cd pktd ./do If you see something like: Everything looks good at the end of typing ./do then you should be ready to start using pktd.","title":"How to Run a Pktd Full Node"},{"location":"adv_learning/pktd-full-node/#how-to-run-a-pktd-full-node","text":"Pktd is the PKT full node blockchain software. It is a fork of btcd, the golang bitcoin instance.","title":"How to Run a Pktd Full Node"},{"location":"adv_learning/pktd-full-node/#running-a-full-node","text":"If you want to run a full node in the PKT network, you can do so by downloading pktd and compiling it on a Linux or Mac server. Follow the process in Installation and the simply type ./bin/pktd and it will start up and begin syncing the chain and helping verify the PKT network. NOTE : Running a full node requires over 40 GB of disk space to store the blockchain and is not necessary for participating in the project. If you just want to make a wallet, see PKT Electrum (gui) or PKTWallet (command line) wallets.","title":"Running a full node"},{"location":"adv_learning/pktd-full-node/#installation","text":"","title":"Installation"},{"location":"adv_learning/pktd-full-node/#install-golang","text":"First, you need to install the go programming language, go to the golang website and learn how to install it on your system: https://golang.org/doc/install","title":"Install golang"},{"location":"adv_learning/pktd-full-node/#install-git","text":"Next you will need to make sure you have git installed. The first thing to do is check whether you have it installed already: git version If it prints something like git version 2.21.1 you\u2019re in luck and you can continue. If it prints something more like command not found: git then you\u2019ll need to install it. Installation will depend on your system, for debian/ubuntu like systems you will want sudo apt install git and for OSX with homebrew, you\u2019ll want brew install git .","title":"Install git"},{"location":"adv_learning/pktd-full-node/#install-the-components","text":"Once you have golang and git fully installed and set up, you can use the following commands to install pktd, pktwallet and pktctl. git clone https://github.com/pkt-cash/pktd cd pktd ./do If you see something like: Everything looks good at the end of typing ./do then you should be ready to start using pktd.","title":"Install the components"},{"location":"adv_learning/sell-pkt/","text":"PKT Documentation Documentation for the PKT project Wallet setup There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features. Mining PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page. Running a pktd instance You can setup a pktd instance using the instructions on pktd . Help and Community To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"PKT Documentation"},{"location":"adv_learning/sell-pkt/#pkt-documentation","text":"Documentation for the PKT project","title":"PKT Documentation"},{"location":"adv_learning/sell-pkt/#wallet-setup","text":"There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.","title":"Wallet setup"},{"location":"adv_learning/sell-pkt/#mining","text":"PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.","title":"Mining"},{"location":"adv_learning/sell-pkt/#running-a-pktd-instance","text":"You can setup a pktd instance using the instructions on pktd .","title":"Running a pktd instance"},{"location":"adv_learning/sell-pkt/#help-and-community","text":"To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"Help and Community"},{"location":"adv_learning/swap-pkt-wrapped-pkt/","text":"How to Swap PKT and Wrapped PKT Steps to swap PKT to wPKT Buy PKT on Bittrex Global (Non-USA traders) or BitMart (Global traders) Create a metamask wallet and connect to the Binance Smart Chain Goto www.ODApp.io Connect your metamask wallet Please note there is a %0.075 fee associated with swapping Pre-commit your wallet by entering the PKT sender address. This is the address that you will be sending your PKT from. (Please note: This address must be from a PKT wallet (Electrum, Zulu or PKT World. Once you commit this address it is the only address you can use to convert PKT to wPKT and wPKT to PKT. After you submit you should see Pair Successfully Committed. Click Get WPKT Using the PKT wallet address you used in step 5, Send the amount of PKT you want to wrap to wPKT to ODApp's \"VAULT\" address, pkt1qex9d4fjwc0nqr3x0hex6ds5vpu67efjdlm6ckz Make sure to copy the Transaction ID as you will need this in the coming steps For security, you will need to wait about 7 minutes to claim your WPKT. For transactions greater than 7 million PKT could take up to 3 hours to complete. Enter your PKT transaction ID, the address you sent your PKT from, and the BSC address you would like your WPKT sent to. You will need to hold some BNB coin in your metamask wallet to pay for fees in this process. If successful the following notification will populate and you will then have the ability to add wPKT token to your wallet. This will prompt your metamask wallet to open and allow you to add your tokens. Go check your wPKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into etherscan.io and you should see the transaction on the blockchain. Steps to swap wPKT to PKT You should already have either purchased wPKT on PancakeSwap or swapped your PKT into wPKT Please note there is a %.075 fee associated with swapping Log into your metmask wallet You must have some BNB in your wallet as you will need this for fees associated with swapping. Open your PKT wallet Go to www.ODApp.io and connect your metamask wallet Enter the amount of wPKT you want to convert to PKT Enter the PKT wallet address you would like the PKT deposited into The following prompt should show if you successfully burned the coins Press Recover PKT and this prompt should show Go check your PKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into https://explorer.pkt.cash and you should see the transaction on the blockchain.","title":"How to Swap PKT and Wrapped PKT"},{"location":"adv_learning/swap-pkt-wrapped-pkt/#how-to-swap-pkt-and-wrapped-pkt","text":"","title":"How to Swap PKT and Wrapped PKT"},{"location":"adv_learning/swap-pkt-wrapped-pkt/#steps-to-swap-pkt-to-wpkt","text":"Buy PKT on Bittrex Global (Non-USA traders) or BitMart (Global traders) Create a metamask wallet and connect to the Binance Smart Chain Goto www.ODApp.io Connect your metamask wallet Please note there is a %0.075 fee associated with swapping Pre-commit your wallet by entering the PKT sender address. This is the address that you will be sending your PKT from. (Please note: This address must be from a PKT wallet (Electrum, Zulu or PKT World. Once you commit this address it is the only address you can use to convert PKT to wPKT and wPKT to PKT. After you submit you should see Pair Successfully Committed. Click Get WPKT Using the PKT wallet address you used in step 5, Send the amount of PKT you want to wrap to wPKT to ODApp's \"VAULT\" address, pkt1qex9d4fjwc0nqr3x0hex6ds5vpu67efjdlm6ckz Make sure to copy the Transaction ID as you will need this in the coming steps For security, you will need to wait about 7 minutes to claim your WPKT. For transactions greater than 7 million PKT could take up to 3 hours to complete. Enter your PKT transaction ID, the address you sent your PKT from, and the BSC address you would like your WPKT sent to. You will need to hold some BNB coin in your metamask wallet to pay for fees in this process. If successful the following notification will populate and you will then have the ability to add wPKT token to your wallet. This will prompt your metamask wallet to open and allow you to add your tokens. Go check your wPKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into etherscan.io and you should see the transaction on the blockchain.","title":"Steps to swap PKT to wPKT"},{"location":"adv_learning/swap-pkt-wrapped-pkt/#steps-to-swap-wpkt-to-pkt","text":"You should already have either purchased wPKT on PancakeSwap or swapped your PKT into wPKT Please note there is a %.075 fee associated with swapping Log into your metmask wallet You must have some BNB in your wallet as you will need this for fees associated with swapping. Open your PKT wallet Go to www.ODApp.io and connect your metamask wallet Enter the amount of wPKT you want to convert to PKT Enter the PKT wallet address you would like the PKT deposited into The following prompt should show if you successfully burned the coins Press Recover PKT and this prompt should show Go check your PKT wallet and make sure your coins were deposited. You can always copy your PKT transaction hash into https://explorer.pkt.cash and you should see the transaction on the blockchain.","title":"Steps to swap wPKT to PKT"},{"location":"community/avoid-examples/","text":"Examples to Avoid These passages are examples of the type of communication which is likely to be problematic. Context is key, and in the context of a communication which clearly transmits an ethical core message, a passing mention of money probably does not make the whole communication unethical. But if the core message is not communicated with adequate clarity, then even the slightest mention of topics like the following may make the communication unethical. \"Reaping the rewards for something you put zero effort in.\" \"Easy money.\u201d \"So many people trust cryptocurrency as an investment.\" While some of these statements may be factual, they share a common narrative that there is an opportunity, it is easy, and it leads to making money. This is a stark contrast from the Principle of No Expected Return.","title":"Examples to Avoid"},{"location":"community/avoid-examples/#examples-to-avoid","text":"These passages are examples of the type of communication which is likely to be problematic. Context is key, and in the context of a communication which clearly transmits an ethical core message, a passing mention of money probably does not make the whole communication unethical. But if the core message is not communicated with adequate clarity, then even the slightest mention of topics like the following may make the communication unethical. \"Reaping the rewards for something you put zero effort in.\" \"Easy money.\u201d \"So many people trust cryptocurrency as an investment.\" While some of these statements may be factual, they share a common narrative that there is an opportunity, it is easy, and it leads to making money. This is a stark contrast from the Principle of No Expected Return.","title":"Examples to Avoid"},{"location":"community/better-examples/","text":"Better Examples Honest communications addressing topics like the following are more likely to be ethical. \"Price has been on the rise, but this can be affected by market events outside the project.\" \"We all know internet is over-priced, but now there is a community of people trying to do something about it\" \"I know cryptocurrencies are risky, and tomorrow it could all be worth nothing, but I'm spending money I can afford to lose on a something I believe in\"\" \"The control that big telecoms have over our everyday lives can make people feel powerless, but now there\u2019s an easy way to push back\" \"Sometimes the price goes up and sometimes it goes down. Being part of the community is about believing that democratized internet and a decentralized media network is possible.\"","title":"Better Examples"},{"location":"community/better-examples/#better-examples","text":"Honest communications addressing topics like the following are more likely to be ethical. \"Price has been on the rise, but this can be affected by market events outside the project.\" \"We all know internet is over-priced, but now there is a community of people trying to do something about it\" \"I know cryptocurrencies are risky, and tomorrow it could all be worth nothing, but I'm spending money I can afford to lose on a something I believe in\"\" \"The control that big telecoms have over our everyday lives can make people feel powerless, but now there\u2019s an easy way to push back\" \"Sometimes the price goes up and sometimes it goes down. Being part of the community is about believing that democratized internet and a decentralized media network is possible.\"","title":"Better Examples"},{"location":"community/code_of_conduct/","text":"Code of Conduct We are here to talk about PKT. If it's not PKT related, don't post it here. Not reading the rules is not an excuse for breaking the rules. No OTC trading allowed. This is a place to build the community and create a positive dialogue amongst Pkteers. If the conversation turns negative, the moderators reserve the right to ban or block anyone. Hate speech is not permitted and can result in being banned. This means no sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language. We ask that Pkteers keep the conversation civil and respectful. No violence, threats of violence or violent language directed against another person. No name calling, attacks, or bad mouthing others. No posting or displaying sexually explicit or violent material. No personal insults, particularly those related to gender, sexual orientation, race, religion, or disability No unwelcome sexual attention. This includes, sexualized comments or jokes, and unwelcomed sexual advances. No self-promotion whether direct or indirect unless with written admin approval. No shilling (promoting) of assets is permitted. Moderators reserve the right to moderate, block or remove posts that are factually inaccurate, deemed inappropriate or lack substantiation. Spamming will result in being banned. No trolling - No antagonizing people in any of the PKT chats by deliberately posting inflammatory, irrelevant, or offensive comments, images, memes, stickers or other disruptive content. If it doesn't relate to PKT don't post it or you will be banned. Contact people If someone has made you feel unsafe or unwelcome, please contact one of the admins of the group. We will do our best to address your matter quickly and with discretion. Jeremy Berger: telegram: @jeremy_berger / pkt.chat: @jeremyb Caleb James DeLisle: pkt.chat: @cjd","title":"Code of Conduct"},{"location":"community/code_of_conduct/#code-of-conduct","text":"We are here to talk about PKT. If it's not PKT related, don't post it here. Not reading the rules is not an excuse for breaking the rules. No OTC trading allowed. This is a place to build the community and create a positive dialogue amongst Pkteers. If the conversation turns negative, the moderators reserve the right to ban or block anyone. Hate speech is not permitted and can result in being banned. This means no sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language. We ask that Pkteers keep the conversation civil and respectful. No violence, threats of violence or violent language directed against another person. No name calling, attacks, or bad mouthing others. No posting or displaying sexually explicit or violent material. No personal insults, particularly those related to gender, sexual orientation, race, religion, or disability No unwelcome sexual attention. This includes, sexualized comments or jokes, and unwelcomed sexual advances. No self-promotion whether direct or indirect unless with written admin approval. No shilling (promoting) of assets is permitted. Moderators reserve the right to moderate, block or remove posts that are factually inaccurate, deemed inappropriate or lack substantiation. Spamming will result in being banned. No trolling - No antagonizing people in any of the PKT chats by deliberately posting inflammatory, irrelevant, or offensive comments, images, memes, stickers or other disruptive content. If it doesn't relate to PKT don't post it or you will be banned.","title":"Code of Conduct"},{"location":"community/code_of_conduct/#contact-people","text":"If someone has made you feel unsafe or unwelcome, please contact one of the admins of the group. We will do our best to address your matter quickly and with discretion. Jeremy Berger: telegram: @jeremy_berger / pkt.chat: @jeremyb Caleb James DeLisle: pkt.chat: @cjd","title":"Contact people"},{"location":"community/ethica-communication-guidelines/","text":"Ethical Communication Guidelines This is a guideline for ethical communications about the project. It is recognized that for PKT to accomplish its goals, there must be a community who understands and uses the technology. In this way communication cannot be avoided. However, poor communication, even made with the best intentions, risks harming the reputation of the project and the general public. So these guidelines exist to help community members represent the project in the best way possible. A Far Higher Standard Within the cryptocurrency ecosystem, there are a significant number of outright criminal activities. Beyond those, there is a wide gray area of communication activities which have not been subject to any regulatory enforcement, but still fall far outside of what these guidelines established as ethical. Community members are cautioned that due to the scale of these \"gray\" activities, there is a large body of publications, influencers, marketers, \"shills\" and other professionals who, if consulted or emulated, are highly likely to put a person in ethical peril. The reason is because these guidelines establish a far higher standard of communication ethics than that which is generally considered to be legal. Principle of No Expected Return It is acknowledged that buying and selling are central aspects of the cryptocurrency ecosystem, so it is difficult to effectively communicate about the project without ever addressing reasons why a person might do these things. Therefore these guidelines offer a pre-approved narrative which is considered to be maximally protective of the reputation of the project while also providing a healthy perspective regarding the risks associated with cryptocurrency. The Principle of No Expected Return is that one should buy cryptocurrency if and only if they believe strongly enough in the vision of the project that they would be proud to own the coin even if they were never able to sell it. In the early days of Bitcoin, it was widely believed that it would be legislated out of existence or otherwise collapse, and so this principle was pervasive throughout the community. Many people chose to hold Bitcoin as a political statement regarding the morality of modern financial institutions, especially after the 2008 financial crisis. The key components of the Principle of No Expected Return are: * A clear understanding of what the technology is and what it is not. * A belief in the social change which that technology can realistically facilitate. * The mental and financial preparedness to lose any money or effort that is used to acquire the token, as one has when one makes a donation. When you\u2019re considering buying a token, you need to ask yourself: If you were to lose everything you put into a token, would you look back on the day you bought it, proud to have been a part of the project at that time? If the answer is no, then you\u2019re either planning to buy too much, or you\u2019re just not ready. Guidelines Dishonest, intentionally misleading, or otherwise unlawful communication is obviously unethical. Beyond that there is no clear definition for unethical communication, though one could characterize it in the words of Justice Stewart, \"I know it when I see it\". These non-exhaustive guidelines exist to give community members an understanding of the types of communication which are most likely to be unethical. They are listed in order of importance with the most important first. Communications which follow the letter, but not the spirit, of these guidelines are unethical. One example of this is token disclaimers such as \"this is not financial advice\". Disclaimers can be useful for helping a person understand the limitations and caveats of a communication, but a token disclaimer exists more to make the communicator seem innocent than to help the audience have a clearer understanding. The use of fine print, or disclaimers which \"feel out of place\" in the overall communication should be regarded as red flags, and communicators using these should review the objectives of their message and whether it is being communicated clearly. Communications which a person of sound judgment could plausibly interpret as presenting a low risk low effort opportunity to make money , or \u201csomething for nothing\u201d, are unethical. Presenting an opportunity can take many forms including implication though specific selection of facts, or an over-celebratory tone. Generally speaking, communications should be explicit about their objective so that there is minimal chance of mis-interpretation. Communications in which a person suffering impaired judgment has an unusually high likelihood of interpreting as a low risk low effort opportunity to make money are unethical. Topics like \u201cwinning\u201d, \u201cpump\u201d, \u201cFOMO\u201d, \u201cYOLO\u201d (spend all of your money), \u201cmoon\u201d, and the idea of being rich, may strike the average person as nothing more than a bit of low-culture humor, but for a pathological gambler these can trigger a harmful thought process and should be avoided. Communications related to investment and trading of the token should be addressed to investors and traders \u2014 professionals who know how hard it is to reliably beat the market and who make decisions based on their own unique portfolio and risk management strategy. Any kind of communication around these topics which has a celebratory tone, or which could reasonably be interpreted as investment advice is not ethical. Communications which focus entirely on explaining a piece of technology, without any mention or implication of buying, selling, price, or potential future growth (including growth in usage of the technology), are probably ethical. Communications which address the topic of buying, selling or staking, but are specifically focused on the Principle of No Expected Return, are probably ethical.","title":"Ethical Communication Guidelines"},{"location":"community/ethica-communication-guidelines/#ethical-communication-guidelines","text":"This is a guideline for ethical communications about the project. It is recognized that for PKT to accomplish its goals, there must be a community who understands and uses the technology. In this way communication cannot be avoided. However, poor communication, even made with the best intentions, risks harming the reputation of the project and the general public. So these guidelines exist to help community members represent the project in the best way possible.","title":"Ethical Communication Guidelines"},{"location":"community/ethica-communication-guidelines/#a-far-higher-standard","text":"Within the cryptocurrency ecosystem, there are a significant number of outright criminal activities. Beyond those, there is a wide gray area of communication activities which have not been subject to any regulatory enforcement, but still fall far outside of what these guidelines established as ethical. Community members are cautioned that due to the scale of these \"gray\" activities, there is a large body of publications, influencers, marketers, \"shills\" and other professionals who, if consulted or emulated, are highly likely to put a person in ethical peril. The reason is because these guidelines establish a far higher standard of communication ethics than that which is generally considered to be legal.","title":"A Far Higher Standard"},{"location":"community/ethica-communication-guidelines/#principle-of-no-expected-return","text":"It is acknowledged that buying and selling are central aspects of the cryptocurrency ecosystem, so it is difficult to effectively communicate about the project without ever addressing reasons why a person might do these things. Therefore these guidelines offer a pre-approved narrative which is considered to be maximally protective of the reputation of the project while also providing a healthy perspective regarding the risks associated with cryptocurrency. The Principle of No Expected Return is that one should buy cryptocurrency if and only if they believe strongly enough in the vision of the project that they would be proud to own the coin even if they were never able to sell it. In the early days of Bitcoin, it was widely believed that it would be legislated out of existence or otherwise collapse, and so this principle was pervasive throughout the community. Many people chose to hold Bitcoin as a political statement regarding the morality of modern financial institutions, especially after the 2008 financial crisis. The key components of the Principle of No Expected Return are: * A clear understanding of what the technology is and what it is not. * A belief in the social change which that technology can realistically facilitate. * The mental and financial preparedness to lose any money or effort that is used to acquire the token, as one has when one makes a donation. When you\u2019re considering buying a token, you need to ask yourself: If you were to lose everything you put into a token, would you look back on the day you bought it, proud to have been a part of the project at that time? If the answer is no, then you\u2019re either planning to buy too much, or you\u2019re just not ready.","title":"Principle of No Expected Return"},{"location":"community/ethica-communication-guidelines/#guidelines","text":"Dishonest, intentionally misleading, or otherwise unlawful communication is obviously unethical. Beyond that there is no clear definition for unethical communication, though one could characterize it in the words of Justice Stewart, \"I know it when I see it\". These non-exhaustive guidelines exist to give community members an understanding of the types of communication which are most likely to be unethical. They are listed in order of importance with the most important first. Communications which follow the letter, but not the spirit, of these guidelines are unethical. One example of this is token disclaimers such as \"this is not financial advice\". Disclaimers can be useful for helping a person understand the limitations and caveats of a communication, but a token disclaimer exists more to make the communicator seem innocent than to help the audience have a clearer understanding. The use of fine print, or disclaimers which \"feel out of place\" in the overall communication should be regarded as red flags, and communicators using these should review the objectives of their message and whether it is being communicated clearly. Communications which a person of sound judgment could plausibly interpret as presenting a low risk low effort opportunity to make money , or \u201csomething for nothing\u201d, are unethical. Presenting an opportunity can take many forms including implication though specific selection of facts, or an over-celebratory tone. Generally speaking, communications should be explicit about their objective so that there is minimal chance of mis-interpretation. Communications in which a person suffering impaired judgment has an unusually high likelihood of interpreting as a low risk low effort opportunity to make money are unethical. Topics like \u201cwinning\u201d, \u201cpump\u201d, \u201cFOMO\u201d, \u201cYOLO\u201d (spend all of your money), \u201cmoon\u201d, and the idea of being rich, may strike the average person as nothing more than a bit of low-culture humor, but for a pathological gambler these can trigger a harmful thought process and should be avoided. Communications related to investment and trading of the token should be addressed to investors and traders \u2014 professionals who know how hard it is to reliably beat the market and who make decisions based on their own unique portfolio and risk management strategy. Any kind of communication around these topics which has a celebratory tone, or which could reasonably be interpreted as investment advice is not ethical. Communications which focus entirely on explaining a piece of technology, without any mention or implication of buying, selling, price, or potential future growth (including growth in usage of the technology), are probably ethical. Communications which address the topic of buying, selling or staking, but are specifically focused on the Principle of No Expected Return, are probably ethical.","title":"Guidelines"},{"location":"community/press-media-assets/","text":"Brand Assets Download the PKT Logo and wordmark assets here . Before use, please see the trademark guidelines for these assets here .","title":"Brand Assets"},{"location":"community/press-media-assets/#brand-assets","text":"Download the PKT Logo and wordmark assets here . Before use, please see the trademark guidelines for these assets here .","title":"Brand Assets"},{"location":"dev/building-on-pkt/","text":"Building on PKT The PKT roadmap is composed of 4 Phases, based on having the fewest dependencies first. Collectively the 3 Phase will bring the PKT Network to scale. Phase 1: Launch Bandwidth Mining PacketCrypt was created and the mainnet PKT blockchain was launched in August 2019. Phase 1 focused on community growth, building out network infrastructure and unifying around PacketCrypt and bandwidth-hard mining. Major developments include multiple PKT wallets, community engagement via PKT Chat, the project task tracker, Network Steward and informational websites. Phase 2: Utilize Tokenized Bandwidth Leases Anyone who wants to use a VPN, create their own, or mine PKT will easily be able to do so via Anodium VPN. Technology development includes Token Strike, to issue tokens in the PKT ecosystem for near zero cost and without gas fees, a DeFi bridge between PKT, Ethereum and Binance Smart Chain, bandwidth lease function and infrastructure via cjdns, and an Edge Point Device to easily mine PacketCrypt and get on the internet via your neighbor. Phase 3: Scale Support Internet Sharing The alpha implementation of the virtual Cloud ISP provides the ability to trade, aggregate, and access tokenized bandwidth leases via cjdns. People can get on the internet via their neighbor with no privacy risk because all data is sent to a VPN. The Atomic Swap Market can transact in and out of PKT with high speed, low cost transactions between Lightning Network enabled coins such as PKT, Bitcoin, Litecoin and Ethereum. Desktop and mobile apps provide easy functionality across devices worldwide. Phase 4: Innovate Virtual ISPs The commercial expansion of Cloud ISPs signifies a healthy and active bandwidth market. People can lease bandwidth allotment guarantees and access the internet without using a traditional ISP. PKT Priority provides internet access with a minimum price free if there is available bandwidth. This will simplify local mesh networking by moving the network engineering component to the Cloud ISP. The stateless switch design central in the cjdns protocol will not only set new records for router performance/cost ratio, but will also allow for hundreds or even thousands of Cloud ISPs to send data through a single device, each according to their own routing policy.","title":"Building on PKT"},{"location":"dev/building-on-pkt/#building-on-pkt","text":"The PKT roadmap is composed of 4 Phases, based on having the fewest dependencies first. Collectively the 3 Phase will bring the PKT Network to scale.","title":"Building on PKT"},{"location":"dev/building-on-pkt/#phase-1-launch","text":"Bandwidth Mining PacketCrypt was created and the mainnet PKT blockchain was launched in August 2019. Phase 1 focused on community growth, building out network infrastructure and unifying around PacketCrypt and bandwidth-hard mining. Major developments include multiple PKT wallets, community engagement via PKT Chat, the project task tracker, Network Steward and informational websites.","title":"Phase 1: Launch"},{"location":"dev/building-on-pkt/#phase-2-utilize","text":"Tokenized Bandwidth Leases Anyone who wants to use a VPN, create their own, or mine PKT will easily be able to do so via Anodium VPN. Technology development includes Token Strike, to issue tokens in the PKT ecosystem for near zero cost and without gas fees, a DeFi bridge between PKT, Ethereum and Binance Smart Chain, bandwidth lease function and infrastructure via cjdns, and an Edge Point Device to easily mine PacketCrypt and get on the internet via your neighbor.","title":"Phase 2: Utilize"},{"location":"dev/building-on-pkt/#phase-3-scale","text":"Support Internet Sharing The alpha implementation of the virtual Cloud ISP provides the ability to trade, aggregate, and access tokenized bandwidth leases via cjdns. People can get on the internet via their neighbor with no privacy risk because all data is sent to a VPN. The Atomic Swap Market can transact in and out of PKT with high speed, low cost transactions between Lightning Network enabled coins such as PKT, Bitcoin, Litecoin and Ethereum. Desktop and mobile apps provide easy functionality across devices worldwide.","title":"Phase 3: Scale"},{"location":"dev/building-on-pkt/#phase-4-innovate","text":"Virtual ISPs The commercial expansion of Cloud ISPs signifies a healthy and active bandwidth market. People can lease bandwidth allotment guarantees and access the internet without using a traditional ISP. PKT Priority provides internet access with a minimum price free if there is available bandwidth. This will simplify local mesh networking by moving the network engineering component to the Cloud ISP. The stateless switch design central in the cjdns protocol will not only set new records for router performance/cost ratio, but will also allow for hundreds or even thousands of Cloud ISPs to send data through a single device, each according to their own routing policy.","title":"Phase 4: Innovate"},{"location":"dev/cjdns/","text":"Cjdns PKT is an ideological continuation of the cjdns mesh networking project, launched by PKT Lead Developer Caleb James DeLisle in 2011. Cjdns solves several weaknesses with internet function, such as data privacy, need for decentralization and optimized, efficient routing. Cjdns provides anyone with an IPv6 address, which is the basis for a global mesh network in which anyone can share their internet and become an internet service provider.","title":"Cjdns"},{"location":"dev/cjdns/#cjdns","text":"PKT is an ideological continuation of the cjdns mesh networking project, launched by PKT Lead Developer Caleb James DeLisle in 2011. Cjdns solves several weaknesses with internet function, such as data privacy, need for decentralization and optimized, efficient routing. Cjdns provides anyone with an IPv6 address, which is the basis for a global mesh network in which anyone can share their internet and become an internet service provider.","title":"Cjdns"},{"location":"dev/cloud-isp/","text":"Cloud ISP A Cloud ISP is a hybrid between a traditional ISP and a VPN provider. This technology is designed to reimagine internet service, so anyone can become an ISP. Cloud ISPs aggregate and broker Edge Point tokenized bandwidth leases, facilitate software defined networking, and oversee the administrative roles of internet service to customers. The Cloud ISP system is designed to manage two virtual assets: the virtual router lease and the bandwidth lease. A virtual router lease has a right to resources within the routing device for a limited time period. The bandwidth lease provides a minimum bandwidth link guarantee between two physical routing devices for a specific time period. The result is the PKT Network: an ultra fast independent network that is connected to the normal internet and powered by the people.","title":"Cloud ISP"},{"location":"dev/cloud-isp/#cloud-isp","text":"A Cloud ISP is a hybrid between a traditional ISP and a VPN provider. This technology is designed to reimagine internet service, so anyone can become an ISP. Cloud ISPs aggregate and broker Edge Point tokenized bandwidth leases, facilitate software defined networking, and oversee the administrative roles of internet service to customers. The Cloud ISP system is designed to manage two virtual assets: the virtual router lease and the bandwidth lease. A virtual router lease has a right to resources within the routing device for a limited time period. The bandwidth lease provides a minimum bandwidth link guarantee between two physical routing devices for a specific time period. The result is the PKT Network: an ultra fast independent network that is connected to the normal internet and powered by the people.","title":"Cloud ISP"},{"location":"dev/edge-points/","text":"Edge Point Edge Points are devices that are operated by an individual or business and maintain a network connection to the PKT Network. Edge Points will tokenize their bandwidth using TokenStrike and sell tokenized bandwidth to Cloud ISPs to broker connectivity to real customers. Edge Point technology will interface with PKT VPN and evolve to facilitate mesh network access points to the internet.","title":"Edge Point"},{"location":"dev/edge-points/#edge-point","text":"Edge Points are devices that are operated by an individual or business and maintain a network connection to the PKT Network. Edge Points will tokenize their bandwidth using TokenStrike and sell tokenized bandwidth to Cloud ISPs to broker connectivity to real customers. Edge Point technology will interface with PKT VPN and evolve to facilitate mesh network access points to the internet.","title":"Edge Point"},{"location":"dev/packetcrypt/","text":"PacketCrypt PacketCrypt is the world\u2019s first bandwidth-hard proof of work. Packet = Bandwidth and Crypt = Encryption. This technology incentivizes miners to increase bandwidth upload & download throughput. PKT mining favors increased bandwidth over CPU power, rewarding people that connect high speed bandwidth infrastructure to the PKT Network.","title":"PacketCrypt"},{"location":"dev/packetcrypt/#packetcrypt","text":"PacketCrypt is the world\u2019s first bandwidth-hard proof of work. Packet = Bandwidth and Crypt = Encryption. This technology incentivizes miners to increase bandwidth upload & download throughput. PKT mining favors increased bandwidth over CPU power, rewarding people that connect high speed bandwidth infrastructure to the PKT Network.","title":"PacketCrypt"},{"location":"dev/pkt-lightning-deamon/","text":"PKT Lighting","title":"PKT Lighting"},{"location":"dev/pkt-lightning-deamon/#pkt-lighting","text":"","title":"PKT Lighting"},{"location":"dev/pkt-vpn/","text":"PKT VPN The PKT VPN is built to connect to, send and receive traffic through the cjdns network. PKT VPN enables users to get a base-line VPN for free, and pay for speed using microtransactions with PKT Cash. VPN server administrators will register as a public PKT VPN, accept client connections and route VPN traffic through the PKT network. Users can browse a list of VPNs, select the best VPN based on location and bandwidth load and surf the internet from behind a PKT VPN exit node. VPN creates utility for the PKT Network and offers financial incentive in addition to PKT Cash mining.","title":"PKT VPN"},{"location":"dev/pkt-vpn/#pkt-vpn","text":"The PKT VPN is built to connect to, send and receive traffic through the cjdns network. PKT VPN enables users to get a base-line VPN for free, and pay for speed using microtransactions with PKT Cash. VPN server administrators will register as a public PKT VPN, accept client connections and route VPN traffic through the PKT network. Users can browse a list of VPNs, select the best VPN based on location and bandwidth load and surf the internet from behind a PKT VPN exit node. VPN creates utility for the PKT Network and offers financial incentive in addition to PKT Cash mining.","title":"PKT VPN"},{"location":"dev/tokenstrike/","text":"TokenStrike TokenStrike is a unique protocol for the issuance and exchange of tokens and NFTs inside of the PKT ecosystem. TokenStrike is designed for micro-transactions, so tokens must be issued and exchanged with zero cost and without gas fees (gas fees for the exchange of ERC-20 tokens is unacceptable). TokenStrike tokens can be exchanged in a fully untrusted Lightning Network HTLC transaction. This is a scalable solution that fosters unlimited marketplace potential, including a decentralized bandwidth market, and sets PKT apart from every other layer 1 blockchain in the world. Edge Points will tokenize their bandwidth using TokenStrike and sell tokenized bandwidth to Cloud ISPs to broker connectivity to real customers. This collectively will interface with PKT VPN and evolve to facilitate software defined networking and content delivery across the internet.","title":"TokenStrike"},{"location":"dev/tokenstrike/#tokenstrike","text":"TokenStrike is a unique protocol for the issuance and exchange of tokens and NFTs inside of the PKT ecosystem. TokenStrike is designed for micro-transactions, so tokens must be issued and exchanged with zero cost and without gas fees (gas fees for the exchange of ERC-20 tokens is unacceptable). TokenStrike tokens can be exchanged in a fully untrusted Lightning Network HTLC transaction. This is a scalable solution that fosters unlimited marketplace potential, including a decentralized bandwidth market, and sets PKT apart from every other layer 1 blockchain in the world. Edge Points will tokenize their bandwidth using TokenStrike and sell tokenized bandwidth to Cloud ISPs to broker connectivity to real customers. This collectively will interface with PKT VPN and evolve to facilitate software defined networking and content delivery across the internet.","title":"TokenStrike"},{"location":"dev/wiif-sharing/","text":"PKT Documentation Documentation for the PKT project Wallet setup There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features. Mining PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page. Running a pktd instance You can setup a pktd instance using the instructions on pktd . Help and Community To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"PKT Documentation"},{"location":"dev/wiif-sharing/#pkt-documentation","text":"Documentation for the PKT project","title":"PKT Documentation"},{"location":"dev/wiif-sharing/#wallet-setup","text":"There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.","title":"Wallet setup"},{"location":"dev/wiif-sharing/#mining","text":"PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.","title":"Mining"},{"location":"dev/wiif-sharing/#running-a-pktd-instance","text":"You can setup a pktd instance using the instructions on pktd .","title":"Running a pktd instance"},{"location":"dev/wiif-sharing/#help-and-community","text":"To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"Help and Community"},{"location":"electrum/","text":"PKT electrum Important Electrum is a good lightweight wallet for making and receiving payments, but it lacks scalability and is not appropriate for mining , if you are interested in mining PKT, see pktwallet . First setup MacOS Download the file ending with .dmg from the latest PKT Electrum Releases Open Finder Double-click on your Downloads folder and find and click on electrum-pkt-4.0.2.dmg A new window will open with the PKT Electrum app, click and drag it into your Applications folder Press Command+Space to open your Spotlight Search and type PKT Electrum, when you see the PKT Electrum app, press the Enter key to open it. The first time PKT Electrum is opened, you will get a popup asking you if you want to open it, click open Continue with Setting up your wallet below Windows Download the file ending with .exe from the latest PKT Electrum Releases You will see a popup window telling you the application is not signed by a Microsoft Authorized Developer, always be sure you download PKT Electrum from the original website, do not run any app given to you in a chat, file-sharing or email attachment. Click \"More info\" to show additional options. Click the \"Run anyway\" button to launch PKT Electrum, you won't see this message again. Follow the steps in the setup process. Go to your desktop and you should see a new icon labeled PKT Electrum , click on it. Continue with Setting up your wallet below. Linux Download the file ending with .AppImage from the latest PKT Electrum Releases Click on the downloaded file and PKT Electrum should start up right away. Setting up your wallet Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. First you will be asked if you want to configure the server to connect to, unless you are an advanced user, just click \"next\" Next select your wallet, you give your wallet a name if you wish, or leave it as default_wallet , then click \"next\". You will be prompted to select which type of wallet you are creating, unless you are doing something fancy, you'll want to just click \"next\" Next you will have the option to create a wallet using a secret key from different sources, for the purposes of this tutorial just click next. Next you will be asked if you want to create a \"legacy\" style wallet, this is not needed so just click \"next\" Now PKT Electrum is going to create a seed , it takes the form of 12 words and from it your entire wallet is created If you have these 12 special words, you can recover your PKT even if your computer is lost or damaged If someone else gets access to these 12 words, they can steal all of your PKT It is recommended that you write this on paper and keep in a safe place. After you have written your seed, you will be asked to type it back in, the fast way to do this is by copy/paste to a text pad Now you'll be asked to write it back in, you can copy it from the text pad Make sure you really stored your seed on paper, we do not recommend storing it on any electronic device . Now you will need to pick a passphrase for your wallet This passphrase encrypts your wallet, protecting your PKT even if your computer is stolen Unlike your seed, the passphrase is useless without the wallet file We recommend using https://www.useapassphrase.com/ to pick a strong passphrase for you You can store your passphrase on your phone to have easy access Congratulations, you now have a PKT wallet! It will require about 5 minutes to synchronize with the PKT blockchain, but you can still use it while this is happening. Receiving PKT To receive coins, you need to create a new PKT address Click the \"Receive\" tab Type a description for the purpose of receiving the coins, this will appear in the notification when you get paid Set the expiration, if this is not an invoice , you can choose \"never\" After you click \"Request\", your wallet will create a new address and copy it to your clipboard so you can send it to the person paying you (or transfer money to your new wallet) When PKT gets sent to your new address, you will get a notification. It says \"unconfirmed\" because the transaction has not yet been included in the history of the blockchain. Once your transaction has been included in the blockchain, this icon will change to a clock and then after a few minutes, a checkmark Congratulations, you have received your first PKT Sending PKT To pay PKT to someone else, click on the Send tab and paste the address to be paid Type a description of the payment, this is just for you, it will not be sent to the person you are paying Enter the amount to be paid Click Pay You will be prompted to enter your wallet passphrase in order to decrypt the wallet for one brief moment to send the PKT Every transaction requires a fee for inclusion in the blockchain, this is a very small cost: 132 nPKT is one hundred and thirty two nano-PKT (that means billionths , i.e. 0.000000132 PKT) After you enter your passphrase and click \"send\", you will see a transaction ID , this set of numbers and letters uniquely identifies your transaction and can be used to view it in the block explorer. Just like when receiving, your transaction will appear first as \"unconfirmed\" and then later it will switch to a clock when it has been included in the blockchain. After waiting a few minutes, you will see a clock and then later a checkmark indicating your transaction has been included in the blockchain When people consider a transaction to be \"complete\" depends on the merchant, but in general it should be considered to be ok once it switches from \"unconfirmed\" to the clock icon. Congratulations, you've sent PKT! About Units Each PKT is made up of 1000 milli-PKT, denoted mPKT Each milli-PKT is sub-divided into 1000 micro-PKT, denoted uPKT Each micro-PKT is sub-divided into 1000 nano-PKT, denoted nPKT Advanced usage Recover from seed You can recover a PKT Electrum wallet from the seed you were given when you set it up. To do this follow the same instructions as for any other Electrum wallet: https://bitcoinelectrum.com/restoring-your-standard-wallet-from-seed/ Note that recovery from seed will not work to import addresses from other wallets such as a Gridnode. Multi-signature Setting up multi-signature in PKT Electrum is the same as with Bitcoin Electrum so you can follow this tutorial: https://electrum.readthedocs.io/en/latest/multisig.html How it works PKT Electrum is significantly similar to Bitcoin Electrum. It contacts one of a pool of community operated electrumx servers. Instead of syncing the entire chain it requests information about its addresses from the electrumx server and only downloads enough of the blockchain to verify that the electrumx server is not trying to trick it. In practice this means the wallet needs to check the proof of work and sync the block headers but not the rest of the blocks. Since PKT uses PacketCrypt proof of work, the work verification needs to be different. PacketCrypt headers are fairly large, between 4KB and 16KB, even at only 4KB each they make up 2.1GB of data per year. To maintain security without downloading an unacceptably large amount of data, PKT Electrum downloads only a small number of PacketCrypt proofs near the tip of the chain. If the wallet only downloaded (say) the most recent 100 PacketCrypt proofs, an attacking electrumx server would know exactly how many blocks it needed to mine in order to create a convincing fake chain, PKT Electrum makes this more difficult by using statistical verification. Statistical Verification PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as MIN(100%, K / distance_from_tip) where K is a constant which we set at 20 to make PKT Electrum verify around 200 blocks total. With K = 20 , the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance * block 25 has an 80% chance * block 50 has a 40% chance * block 80 has a 25% chance The distribution of likelyhood of verifying a block is shown by this chart: Running an ElectrumX server If you would like to participate in running your own ElectrumX server to help the PKT Electrum network, you can do so using a simple Docker command. Check out the Docker PKT Electrumx project for more information about how to run an instance.","title":"PKT electrum"},{"location":"electrum/#pkt-electrum","text":"Important Electrum is a good lightweight wallet for making and receiving payments, but it lacks scalability and is not appropriate for mining , if you are interested in mining PKT, see pktwallet .","title":"PKT electrum"},{"location":"electrum/#first-setup","text":"","title":"First setup"},{"location":"electrum/#macos","text":"Download the file ending with .dmg from the latest PKT Electrum Releases Open Finder Double-click on your Downloads folder and find and click on electrum-pkt-4.0.2.dmg A new window will open with the PKT Electrum app, click and drag it into your Applications folder Press Command+Space to open your Spotlight Search and type PKT Electrum, when you see the PKT Electrum app, press the Enter key to open it. The first time PKT Electrum is opened, you will get a popup asking you if you want to open it, click open Continue with Setting up your wallet below","title":"MacOS"},{"location":"electrum/#windows","text":"Download the file ending with .exe from the latest PKT Electrum Releases You will see a popup window telling you the application is not signed by a Microsoft Authorized Developer, always be sure you download PKT Electrum from the original website, do not run any app given to you in a chat, file-sharing or email attachment. Click \"More info\" to show additional options. Click the \"Run anyway\" button to launch PKT Electrum, you won't see this message again. Follow the steps in the setup process. Go to your desktop and you should see a new icon labeled PKT Electrum , click on it. Continue with Setting up your wallet below.","title":"Windows"},{"location":"electrum/#linux","text":"Download the file ending with .AppImage from the latest PKT Electrum Releases Click on the downloaded file and PKT Electrum should start up right away.","title":"Linux"},{"location":"electrum/#setting-up-your-wallet","text":"Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. First you will be asked if you want to configure the server to connect to, unless you are an advanced user, just click \"next\" Next select your wallet, you give your wallet a name if you wish, or leave it as default_wallet , then click \"next\". You will be prompted to select which type of wallet you are creating, unless you are doing something fancy, you'll want to just click \"next\" Next you will have the option to create a wallet using a secret key from different sources, for the purposes of this tutorial just click next. Next you will be asked if you want to create a \"legacy\" style wallet, this is not needed so just click \"next\" Now PKT Electrum is going to create a seed , it takes the form of 12 words and from it your entire wallet is created If you have these 12 special words, you can recover your PKT even if your computer is lost or damaged If someone else gets access to these 12 words, they can steal all of your PKT It is recommended that you write this on paper and keep in a safe place. After you have written your seed, you will be asked to type it back in, the fast way to do this is by copy/paste to a text pad Now you'll be asked to write it back in, you can copy it from the text pad Make sure you really stored your seed on paper, we do not recommend storing it on any electronic device . Now you will need to pick a passphrase for your wallet This passphrase encrypts your wallet, protecting your PKT even if your computer is stolen Unlike your seed, the passphrase is useless without the wallet file We recommend using https://www.useapassphrase.com/ to pick a strong passphrase for you You can store your passphrase on your phone to have easy access Congratulations, you now have a PKT wallet! It will require about 5 minutes to synchronize with the PKT blockchain, but you can still use it while this is happening.","title":"Setting up your wallet"},{"location":"electrum/#receiving-pkt","text":"To receive coins, you need to create a new PKT address Click the \"Receive\" tab Type a description for the purpose of receiving the coins, this will appear in the notification when you get paid Set the expiration, if this is not an invoice , you can choose \"never\" After you click \"Request\", your wallet will create a new address and copy it to your clipboard so you can send it to the person paying you (or transfer money to your new wallet) When PKT gets sent to your new address, you will get a notification. It says \"unconfirmed\" because the transaction has not yet been included in the history of the blockchain. Once your transaction has been included in the blockchain, this icon will change to a clock and then after a few minutes, a checkmark Congratulations, you have received your first PKT","title":"Receiving PKT"},{"location":"electrum/#sending-pkt","text":"To pay PKT to someone else, click on the Send tab and paste the address to be paid Type a description of the payment, this is just for you, it will not be sent to the person you are paying Enter the amount to be paid Click Pay You will be prompted to enter your wallet passphrase in order to decrypt the wallet for one brief moment to send the PKT Every transaction requires a fee for inclusion in the blockchain, this is a very small cost: 132 nPKT is one hundred and thirty two nano-PKT (that means billionths , i.e. 0.000000132 PKT) After you enter your passphrase and click \"send\", you will see a transaction ID , this set of numbers and letters uniquely identifies your transaction and can be used to view it in the block explorer. Just like when receiving, your transaction will appear first as \"unconfirmed\" and then later it will switch to a clock when it has been included in the blockchain. After waiting a few minutes, you will see a clock and then later a checkmark indicating your transaction has been included in the blockchain When people consider a transaction to be \"complete\" depends on the merchant, but in general it should be considered to be ok once it switches from \"unconfirmed\" to the clock icon. Congratulations, you've sent PKT!","title":"Sending PKT"},{"location":"electrum/#about-units","text":"Each PKT is made up of 1000 milli-PKT, denoted mPKT Each milli-PKT is sub-divided into 1000 micro-PKT, denoted uPKT Each micro-PKT is sub-divided into 1000 nano-PKT, denoted nPKT","title":"About Units"},{"location":"electrum/#advanced-usage","text":"","title":"Advanced usage"},{"location":"electrum/#recover-from-seed","text":"You can recover a PKT Electrum wallet from the seed you were given when you set it up. To do this follow the same instructions as for any other Electrum wallet: https://bitcoinelectrum.com/restoring-your-standard-wallet-from-seed/ Note that recovery from seed will not work to import addresses from other wallets such as a Gridnode.","title":"Recover from seed"},{"location":"electrum/#multi-signature","text":"Setting up multi-signature in PKT Electrum is the same as with Bitcoin Electrum so you can follow this tutorial: https://electrum.readthedocs.io/en/latest/multisig.html","title":"Multi-signature"},{"location":"electrum/#how-it-works","text":"PKT Electrum is significantly similar to Bitcoin Electrum. It contacts one of a pool of community operated electrumx servers. Instead of syncing the entire chain it requests information about its addresses from the electrumx server and only downloads enough of the blockchain to verify that the electrumx server is not trying to trick it. In practice this means the wallet needs to check the proof of work and sync the block headers but not the rest of the blocks. Since PKT uses PacketCrypt proof of work, the work verification needs to be different. PacketCrypt headers are fairly large, between 4KB and 16KB, even at only 4KB each they make up 2.1GB of data per year. To maintain security without downloading an unacceptably large amount of data, PKT Electrum downloads only a small number of PacketCrypt proofs near the tip of the chain. If the wallet only downloaded (say) the most recent 100 PacketCrypt proofs, an attacking electrumx server would know exactly how many blocks it needed to mine in order to create a convincing fake chain, PKT Electrum makes this more difficult by using statistical verification.","title":"How it works"},{"location":"electrum/#statistical-verification","text":"PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as MIN(100%, K / distance_from_tip) where K is a constant which we set at 20 to make PKT Electrum verify around 200 blocks total. With K = 20 , the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance * block 25 has an 80% chance * block 50 has a 40% chance * block 80 has a 25% chance The distribution of likelyhood of verifying a block is shown by this chart:","title":"Statistical Verification"},{"location":"electrum/#running-an-electrumx-server","text":"If you would like to participate in running your own ElectrumX server to help the PKT Electrum network, you can do so using a simple Docker command. Check out the Docker PKT Electrumx project for more information about how to run an instance.","title":"Running an ElectrumX server"},{"location":"infra/build-web/","text":"Build a Website in PKT Network How to set up your own self-hosted website on cjdns network The following setup has been tested on a Raspberry Pi 4. Go to https://yunohost.org/en/install Select Raspberry Pi Download the YunoHost image Go to https://www.raspberrypi.com/news/raspberry-pi-imager-imaging-utility/ Download Pi Imager Flash the YunoHost image to your SD card using the Pi Imager Then insert the SD card into your Raspberry Pi and boot it up. Access the YunoHost admin panel by going to https://yunohost.local Start the post-installation process In the Set main-domain select \"I want a domain for local usage / test only\" Complete the post-installation process Once the post-installation process is complete, go to the YunoHost admin panel and log in Select the \"Applications\" tab and click on \"Install\" Search for \"wordpress\" , select it. Scroll down and select \"administrator for this site\" Click on \"Install\" Upon completion go to \"Applications\" and click \"Install\" again Scroll down on \"Install custom app\" and paste the following link: https://github.com/dkoukoul/cjdns_ynh Click on \"Install\" On completion your cjdns ipv6 address will be displayed, copy it.","title":"Build a Website in PKT Network"},{"location":"infra/build-web/#build-a-website-in-pkt-network","text":"","title":"Build a Website in PKT Network"},{"location":"infra/build-web/#how-to-set-up-your-own-self-hosted-website-on-cjdns-network","text":"The following setup has been tested on a Raspberry Pi 4. Go to https://yunohost.org/en/install Select Raspberry Pi Download the YunoHost image Go to https://www.raspberrypi.com/news/raspberry-pi-imager-imaging-utility/ Download Pi Imager Flash the YunoHost image to your SD card using the Pi Imager Then insert the SD card into your Raspberry Pi and boot it up. Access the YunoHost admin panel by going to https://yunohost.local Start the post-installation process In the Set main-domain select \"I want a domain for local usage / test only\" Complete the post-installation process Once the post-installation process is complete, go to the YunoHost admin panel and log in Select the \"Applications\" tab and click on \"Install\" Search for \"wordpress\" , select it. Scroll down and select \"administrator for this site\" Click on \"Install\" Upon completion go to \"Applications\" and click \"Install\" again Scroll down on \"Install custom app\" and paste the following link: https://github.com/dkoukoul/cjdns_ynh Click on \"Install\" On completion your cjdns ipv6 address will be displayed, copy it.","title":"How to set up your own self-hosted website on cjdns network"},{"location":"infra/cjdns-node/","text":"Setup a Cjdns Node This guide will help you set up a cjdns node on a server. Requirements A server running debian based Linux (preferably Ubuntu 22.04) with docker installed Steps Create a data directory where the server configuration will be stored. mkdir vpn_data Get the latest docker image docker pull pkteer/pkt-server Configure the server by running the following command: docker run -it --rm -v $(pwd)/vpn_data:/data pkteer/pkt-server /configure.sh --novpn The configure process will create: * a cjdroute.conf at data/cjdroute.conf * PKT wallet at data/pktwallet/pkt/wallet.db * store the wallet's seed phrase at data/pktwallet/pkt/seed.txt configure.sh can take the following flags: * --no-vpn: To configure the server without setting up the VPN server * --with-pktd: To configure the server with a local PKT daemon * --pktd-passwd= : To set a password for the PKT daemon Alternatively you can edit the config.json file manually. NOTE Make sure to safely store your seed phrase in order to be able to import your wallet on your computer. And delete the seed.txt file after. Run the server by running the following commands: ./vpn_data/start.sh This will start the server and may expose the following ports: * cjdns port set from cjdroute.conf * cjdns admin rpc port set from cjdroute.conf (default 11234) * 8099 for anodevpn server * 5201 for iperf3 * 64764 for pktd","title":"Setup a Cjdns Node"},{"location":"infra/cjdns-node/#setup-a-cjdns-node","text":"This guide will help you set up a cjdns node on a server.","title":"Setup a Cjdns Node"},{"location":"infra/cjdns-node/#requirements","text":"A server running debian based Linux (preferably Ubuntu 22.04) with docker installed","title":"Requirements"},{"location":"infra/cjdns-node/#steps","text":"Create a data directory where the server configuration will be stored. mkdir vpn_data Get the latest docker image docker pull pkteer/pkt-server Configure the server by running the following command: docker run -it --rm -v $(pwd)/vpn_data:/data pkteer/pkt-server /configure.sh --novpn The configure process will create: * a cjdroute.conf at data/cjdroute.conf * PKT wallet at data/pktwallet/pkt/wallet.db * store the wallet's seed phrase at data/pktwallet/pkt/seed.txt configure.sh can take the following flags: * --no-vpn: To configure the server without setting up the VPN server * --with-pktd: To configure the server with a local PKT daemon * --pktd-passwd= : To set a password for the PKT daemon Alternatively you can edit the config.json file manually. NOTE Make sure to safely store your seed phrase in order to be able to import your wallet on your computer. And delete the seed.txt file after. Run the server by running the following commands: ./vpn_data/start.sh This will start the server and may expose the following ports: * cjdns port set from cjdroute.conf * cjdns admin rpc port set from cjdroute.conf (default 11234) * 8099 for anodevpn server * 5201 for iperf3 * 64764 for pktd","title":"Steps"},{"location":"infra/cjdns-web/","text":"Accessing your cjdns website For anyone to access your cjdns site they need to be on the cjdns network, either by running cjdns on their device or by connecting to one of the VPN exits that allow access to cjdns network. Go to a browser and paste the ipv6 address after http and inside square brackets like this: http://[your-cjdns_ipv6_address]/blog NOTE Make sure to remove any leading 0 from each section of the ipv6 address. for example if your cjdns ipv6 is ending with ... :0ad2 it should be ... :ad2 in the browser. Set up a domain for your site First you will need to own a domain name for example \"pkt.net\". Select one of the VPN exits that have a running SNI proxy and copy their IPv4 address. Go to your domain registrar and set up the following DNS records: A record: pkt.net -> [VPN server IPv4 address] AAAA record: h.pkt.net -> [your-cjdns_ipv6_address] For example If the VPN server's IPv4 address is 51.79.51.242 your domain is pkt.net and your cjdns IPv6 address where your site is running is vfc04:8212:c1fa:94ad:e554:7bac:1264:0ad2 your A record should be: * A record: `pkt.net -> 51.79.51.242` and your AAAA record should be: * AAAA record: `h.pkt.net -> fc04:8212:c1fa:94ad:e554:7bac:1264:ad2` Register domain with VPN server Request the VPN server operator to add your domain to their SNI proxy by editing the following command replacing it with your domain and cjdns ipv6 address and the VPN server's IPv4 address: curl -X POST --H \"Content-Type: application/json\" -d '{\"domain\":\"domain.com\",\"cjdnsIpv6\":\"your_cjdns_ipv6_address\"} http://[VPN server IPv4 address]:8099/api/0.4/server/domain/add/ Set up the domain in yunohost Log in into your yunohost admin panel. Go to \"Domains\" and click on \"Add domain\" Click on \" I want to add a domain I own, or a subdomain\" add your domain and click on \"Add\" Select your newly added domain. Go to tab \"Certificates\" Click on \"Ignore diagnosis checks\" and then you can request a certificate for your domain by going clicking \"Install Let's Encrypt certificate\".","title":"Accessing your cjdns website"},{"location":"infra/cjdns-web/#accessing-your-cjdns-website","text":"For anyone to access your cjdns site they need to be on the cjdns network, either by running cjdns on their device or by connecting to one of the VPN exits that allow access to cjdns network. Go to a browser and paste the ipv6 address after http and inside square brackets like this: http://[your-cjdns_ipv6_address]/blog NOTE Make sure to remove any leading 0 from each section of the ipv6 address. for example if your cjdns ipv6 is ending with ... :0ad2 it should be ... :ad2 in the browser.","title":"Accessing your cjdns website"},{"location":"infra/cjdns-web/#set-up-a-domain-for-your-site","text":"First you will need to own a domain name for example \"pkt.net\". Select one of the VPN exits that have a running SNI proxy and copy their IPv4 address. Go to your domain registrar and set up the following DNS records: A record: pkt.net -> [VPN server IPv4 address] AAAA record: h.pkt.net -> [your-cjdns_ipv6_address] For example If the VPN server's IPv4 address is 51.79.51.242 your domain is pkt.net and your cjdns IPv6 address where your site is running is vfc04:8212:c1fa:94ad:e554:7bac:1264:0ad2 your A record should be: * A record: `pkt.net -> 51.79.51.242` and your AAAA record should be: * AAAA record: `h.pkt.net -> fc04:8212:c1fa:94ad:e554:7bac:1264:ad2`","title":"Set up a domain for your site"},{"location":"infra/cjdns-web/#register-domain-with-vpn-server","text":"Request the VPN server operator to add your domain to their SNI proxy by editing the following command replacing it with your domain and cjdns ipv6 address and the VPN server's IPv4 address: curl -X POST --H \"Content-Type: application/json\" -d '{\"domain\":\"domain.com\",\"cjdnsIpv6\":\"your_cjdns_ipv6_address\"} http://[VPN server IPv4 address]:8099/api/0.4/server/domain/add/","title":"Register domain with VPN server"},{"location":"infra/cjdns-web/#set-up-the-domain-in-yunohost","text":"Log in into your yunohost admin panel. Go to \"Domains\" and click on \"Add domain\" Click on \" I want to add a domain I own, or a subdomain\" add your domain and click on \"Add\" Select your newly added domain. Go to tab \"Certificates\" Click on \"Ignore diagnosis checks\" and then you can request a certificate for your domain by going clicking \"Install Let's Encrypt certificate\".","title":"Set up the domain in yunohost"},{"location":"infra/domain-node/","text":"Setup a Domain Node When you own a PKT vanity domain, it enables sovereignty for PKT websites. More information on how to set up a Domain Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Domain Node"},{"location":"infra/domain-node/#setup-a-domain-node","text":"When you own a PKT vanity domain, it enables sovereignty for PKT websites. More information on how to set up a Domain Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Domain Node"},{"location":"infra/exit-node/","text":"Setup a VPN Exit Node This guide will help you set up a CJDNS node with PKT wallet and the following services: You can follow the steps to set up the server or read more about the process and services involved. AnodeVPN server IKEv2 Ipsec VPN server OpenVPN server SNI proxy Requirements A server running debian based Linux (preferably Ubuntu 22.04) Install docker https://docs.docker.com/engine/install/ubuntu/ * Install jq sudo apt-get install jq Steps Create a data directory where the server configuration will be stored. console mkdir vpn_data Configure the server by running the following command: console docker run -it --rm -v $(pwd)/vpn_data:/data pkteer/pkt-server /configure.sh Configure various service by running the following command: console ./vpn_data/setup.sh The script will prompt you to set up various flags and values needed for setting up the services the first time. Run the server by running the following commands: console ./vpn_data/start-vpn.sh NOTE It can take a few minutes on the first run for the server to set up all the services. Monitoring the server You can view the progress of the server by running: docker logs -f pkt-server You can also check the status of all services by running: ./vpn_data/status.sh or using the AnodeVPN API: http://[server]:8099/api/0.4/server/status/ Understanding the process Configuration The configure.sh script is designed to set up and configure the server environment. Below is a detailed explanation of its functionality: Initialization and Default Values: The script initializes several flags and variables with default values: no_vpn_flag : Indicates whether VPN should be disabled (default: false). cjdns_flag : Indicates whether CJDNS should be enabled (default: true). with_pktd_flag : Indicates whether PKTD should be enabled (default: false). pktd_passwd : Stores the PKTD password (default: empty). pktd_user : Stores the PKTD username (default: \"x\"). Configuration File Handling: The script checks if the configuration file /data/config.json exists. If it does, it reads the existing configuration; otherwise, it copies a template configuration from /server/config.json to /data/config .json. Configuration Synchronization: If the configuration file exists, the script ensures that all fields from the template configuration are present in the existing configuration. Missing fields are added with their default values from the template. Flag Parsing: The script parses command-line arguments to set various flags: --no-vpn : Disables VPN. --with-pktd : Enables PKTD. --pktd-passwd= : Sets the PKTD password. Configuration Modification: Based on the parsed flags, the script modifies the configuration: Sets the VPN exit status based on no_vpn_flag . Enables or disables PKTD based on with_pktd_flag . Generates a random PKTD password if none is provided. Updates the PKTD username and password in the configuration. PKT Wallet Initialization: Starts the PKT Wallet daemon and checks if a wallet already exists. If not, it creates a new wallet and unlocks it. VPN Server Configuration: Retrieves the PKT Wallet secret for the VPN server and ensures the cjdroute.conf configuration file is valid. If the file does not exist, it generates a new one and seeds it with the retrieved secret. Security Configuration: Modifies the cjdroute.conf file to set specific security parameters. Script Deployment: Finally it copies several utility scripts from the server directory to the data directory for further use. Initialization The init.sh starts everytime the docker container is launched and is responsible for setting up and initializing various services and configurations on the server. Server Configuration Check : It first checks if the server has already been configured by looking if cjdroute.conf exists. If the file is not found, the script exits. User Creation : It creates two users, cjdns and speedtest. They are used for running the cjdns and speed-test (iperf3) services, respectively. Configuration Updates : It reads the config.json configuration file and updates several configuration settings related to different services. PKT Wallet Initialization : It starts the PKT Wallet service and checks if a wallet already exists. If the wallet exists, it attempts to unlock it. If the unlock request times out, it restarts the wallet service. Cjdns Service : If cjdns is enabled, it sets up the necessary environment and starts the cjdns service. It also configures network settings and firewall rules to allow cjdns to function properly. PKTD Service : If PKTD is enabled, it constructs and runs the command to start the PKTD service with the appropriate configuration. Network Interface Check : It waits for tun0 network interface that is expected to be created by cjdroute to become available and then sets up firewall rules for network traffic. NFTables Initialization : It initializes NFTables, which is a framework for packet filtering and network address translation. VPN Server : If the VPN server is enabled, it starts the VPN server and sets up the pricing for the VPN service. Speed Test Service : It sets up the environment for running speed tests and starts the necessary services. Cjdns Peers : It adds peers for the cjdns network, the peers used are set in /server/cjdnspeers.json file. IKEv2 and OpenVPN : If IKEv2 or OpenVPN are enabled, it runs the respective configuration scripts to set up these VPN services. Node Exporter : It starts the Node Exporter service for Prometheus monitoring. SNI Proxy : If SNI Proxy is enabled, it starts the SNI Proxy service. Cron Job for Payments : It adds a cron job to handle payments on a weekly basis. Watchdog Service : If cjdns is enabled, it starts a watchdog service to monitor and maintain the cjdns service the AnodeVPN server and other services depending on the configuration of the server. Keep-Alive : Finally, it keeps the container running indefinitely by tailing /dev/null . Monitoring with watchdog The watchdog.sh is monitoring the cjdroute service and if it stops it will restart it, when the cjdroute is restarted the AnodeVPN server is also restarted. It will also check for the pluto service which is the IKEv2 Ipsec VPN server and if it stops it will restart it. Similarly for the openvpn service. Finally the watchdog also checks the validity of vpnclients created by the AnodeVPN server and if their time has expired it will remove them. Checking the status You can check the status of the services at any time either by running ```console vpn_data/status.sh ``` or by using the AnodeVPN API: ```console http://[server]:8099/api/0.4/server/status/ ``` Next to each service you will see the process id if that service is running, otherwise it will be 0 . e.g. { \"hostname\": \"kraut2.pkteer.com\", \"pktwallet\": 67, \"cjdns\": 82, \"anodeserver\": 114, \"ikev2\": 4012, \"openvpn\": 4135, \"watchdog\": 4116, \"date_time\": \"2024-07-17 10:08:19\" } Understanding the services and files Launching the server The vpn_data/start-vpn.sh and vpn_data/start.sh scripts are designed to set up and run a VPN server using Docker. Here's a step-by-step explanation of what the script does: Environment Setup : It checks for the presence of necessary commands (jq, dirname, and docker). If any of these commands are missing, the script exits with an error message. Directory Navigation : It changes the working directory to the location of the script. Cjdns Port Extraction : It reads the cjdroute.conf file to extract the port number used by the cjdjns service. If the port number is not found in the expected format, it attempts to extract it using an alternative method. Configuration Reading : It reads the config.json file to get the region and city information. If either the region or city is not specified, the script exits with an error message. Cjdns RPC Port Setup : If the cjdns RPC (Remote Procedure Call) is enabled, it extracts the RPC port from the cjdroute.conf file and updates the configuration to expose the RPC port. Docker Container Execution : It runs a Docker container with various configurations: Sets the timezone based on the region and city defined in vpn_data/config.json . Configures logging, network capabilities, and device access. Sets system control parameters for IPv6 and IPv4 forwarding. Maps several ports for different services: reads the CJDNS port from the cjdroute.conf file and maps it to the host. 5201 port for the speed-test (iperf3) service. 64764 to the host for pktd service. 443 for the SNI Proxy service. 80 for the SNI Proxy service. 500 for the IKEv2 Ipsec VPN server (pluto service). 4500 for the IKEv2 Ipsec VPN server (pluto service). 943 for the OpenVPN server. 1194 for the OpenVPN server. Mounts necessary directories for data persistency and configuration files. /etc/openvpn to vpn_data/openvpn. /server/vpnclients to vpn_data/vpnclients. /data to vpn_data where the configuration files are stored, cjdroute.conf and config.json and others. Optionally maps the CJDNS RPC port if it is enabled. Runs the container in detached mode with elevated privileges. The script ensures that all necessary configurations are in place and starts the VPN server within a Docker container, making it ready for use. Cjdns Cjdns is running on the server using a generated cjdroute.conf file. The cjdroute.conf file is generated by the configure script It is being launched by the init script which is run on the server start. For persistency the file is stored in the vpn_data directory and used by the cjdns service. You can manually edit the file to add more cjdns peers. Note Changing other parts of the configuration manually may end up breaking the service. Wathdog is configured to keep cjdns running all the time. If the service stops, the watchdog will restart it. If cjdroute is for some reason stuck or frozen you can kill it by running docker exec -it pkt-server killall cjdroute and the watchdog will restart it. AnodeVPN Server The server is running the AnodeVPN server to authorize clients and offer API access to the VPN services such as: Add domain to SNI proxy http://[server]:8099/api/0.4/server/domain/add/ console json { \"domain\": \"example.com\", \"cjdnsIpv6\": \"fc00:0000:0000:0000:0000:0000:0000:0001\" } Remove domain from SNI proxy http://[server]:8099/api/0.4/server/domain/remove/ console json { \"domain\": \"example.com\", \"cjdnsIpv6\": \"fc00:0000:0000:0000:0000:0000:0000:0001\" } Request new PKT address http://[server]:8099/api/0.4/server/premium/address/ console json {} Request new client VPN certificates http://[server]:8099/api/0.4/server/vpnaccess/ console json { \"address\": \"pkt1....\" } For more details see the AnodeVPN IKEv2 Ipsec VPN Server The IKEv2 Ipsec VPN server is running on the server and is used to provide VPN services to clients with access to cjdns network. For setting up the server the init script will launch the vpn_configure.sh if the ikev2:enabled flag is set to true, which will set up the server. We also use the ikev2.sh script to add/remove clients through the AnodeVPN API. The files generated are copied in server/vpnclients directory which is mapped to vpn_data/vpnclients/ on the docker host. For more details look into the setup-ipsec-vpn documentation for configuring the server, managing clients and troubleshooting. NOTE Unfortunately although IKEv2 clients can connect to the server from a Windows client and get VPN access, the clients are not able to access the CJDNS network. This is a known issue and we are working on a solution, for this reason we have added the OpenVPN server as an alternative for Windows users. OpenVPN Server The openvpn is initialized by the init script if the openvpn.enabled flag is set to true in config.json and is used to provide VPN services to clients with access to cjdns network. The server is configured using the openvpn_configure.sh which is used to generate the certificates needed. Then for adding new clients the createOpenVpnClient.sh script is used by the AnodeVPN Server API to generate the client certificates and keys. The files are stored in the vpn_data/vpnclients/ directory and can be used to connect to the server. NOTE The OpenVPN server is running on the server and is used to provide VPN services to clients with access to cjdns network. This was added on top of the IKEv2 for Windows users to be able to access the cjdns network, but it can be used by any OpenVPN client on any platform. SNI Proxy Proxies incoming HTTP and TLS connections based on the hostname contained in the initial request of the TCP session. This enables websites that are hosted on CJDNS network to become available via HTTPS name-based virtual hosting. The SNI proxy will start if the sniproxy.enabled flag is set to true in the config.json file. The sniproxy is using the sniproxy.conf file to route the requests to the correct server. The server contains the default configuration for the sniproxy and is being edited by the adddomain.sh and removedomain.sh scripts which are used by the AnodeVPN API to add and remove domains respectively from the proxy. For troubleshooting you can view the sniproxy logs. The access log is stored in vpn_data/sniproxy-access.log and the error log is stored in vpn_data/sniproxy-error.log .","title":"Setup a VPN Exit Node"},{"location":"infra/exit-node/#setup-a-vpn-exit-node","text":"This guide will help you set up a CJDNS node with PKT wallet and the following services: You can follow the steps to set up the server or read more about the process and services involved. AnodeVPN server IKEv2 Ipsec VPN server OpenVPN server SNI proxy Requirements A server running debian based Linux (preferably Ubuntu 22.04) Install docker https://docs.docker.com/engine/install/ubuntu/ * Install jq sudo apt-get install jq","title":"Setup a VPN Exit Node"},{"location":"infra/exit-node/#steps","text":"Create a data directory where the server configuration will be stored. console mkdir vpn_data Configure the server by running the following command: console docker run -it --rm -v $(pwd)/vpn_data:/data pkteer/pkt-server /configure.sh Configure various service by running the following command: console ./vpn_data/setup.sh The script will prompt you to set up various flags and values needed for setting up the services the first time. Run the server by running the following commands: console ./vpn_data/start-vpn.sh NOTE It can take a few minutes on the first run for the server to set up all the services.","title":"Steps"},{"location":"infra/exit-node/#monitoring-the-server","text":"You can view the progress of the server by running: docker logs -f pkt-server You can also check the status of all services by running: ./vpn_data/status.sh or using the AnodeVPN API: http://[server]:8099/api/0.4/server/status/","title":"Monitoring the server"},{"location":"infra/exit-node/#understanding-the-process","text":"","title":"Understanding the process"},{"location":"infra/exit-node/#configuration","text":"The configure.sh script is designed to set up and configure the server environment. Below is a detailed explanation of its functionality:","title":"Configuration"},{"location":"infra/exit-node/#initialization-and-default-values","text":"The script initializes several flags and variables with default values: no_vpn_flag : Indicates whether VPN should be disabled (default: false). cjdns_flag : Indicates whether CJDNS should be enabled (default: true). with_pktd_flag : Indicates whether PKTD should be enabled (default: false). pktd_passwd : Stores the PKTD password (default: empty). pktd_user : Stores the PKTD username (default: \"x\").","title":"Initialization and Default Values:"},{"location":"infra/exit-node/#configuration-file-handling","text":"The script checks if the configuration file /data/config.json exists. If it does, it reads the existing configuration; otherwise, it copies a template configuration from /server/config.json to /data/config .json.","title":"Configuration File Handling:"},{"location":"infra/exit-node/#configuration-synchronization","text":"If the configuration file exists, the script ensures that all fields from the template configuration are present in the existing configuration. Missing fields are added with their default values from the template.","title":"Configuration Synchronization:"},{"location":"infra/exit-node/#flag-parsing","text":"The script parses command-line arguments to set various flags: --no-vpn : Disables VPN. --with-pktd : Enables PKTD. --pktd-passwd= : Sets the PKTD password.","title":"Flag Parsing:"},{"location":"infra/exit-node/#configuration-modification","text":"Based on the parsed flags, the script modifies the configuration: Sets the VPN exit status based on no_vpn_flag . Enables or disables PKTD based on with_pktd_flag . Generates a random PKTD password if none is provided. Updates the PKTD username and password in the configuration.","title":"Configuration Modification:"},{"location":"infra/exit-node/#pkt-wallet-initialization","text":"Starts the PKT Wallet daemon and checks if a wallet already exists. If not, it creates a new wallet and unlocks it.","title":"PKT Wallet Initialization:"},{"location":"infra/exit-node/#vpn-server-configuration","text":"Retrieves the PKT Wallet secret for the VPN server and ensures the cjdroute.conf configuration file is valid. If the file does not exist, it generates a new one and seeds it with the retrieved secret.","title":"VPN Server Configuration:"},{"location":"infra/exit-node/#security-configuration","text":"Modifies the cjdroute.conf file to set specific security parameters.","title":"Security Configuration:"},{"location":"infra/exit-node/#script-deployment","text":"Finally it copies several utility scripts from the server directory to the data directory for further use.","title":"Script Deployment:"},{"location":"infra/exit-node/#initialization","text":"The init.sh starts everytime the docker container is launched and is responsible for setting up and initializing various services and configurations on the server. Server Configuration Check : It first checks if the server has already been configured by looking if cjdroute.conf exists. If the file is not found, the script exits. User Creation : It creates two users, cjdns and speedtest. They are used for running the cjdns and speed-test (iperf3) services, respectively. Configuration Updates : It reads the config.json configuration file and updates several configuration settings related to different services. PKT Wallet Initialization : It starts the PKT Wallet service and checks if a wallet already exists. If the wallet exists, it attempts to unlock it. If the unlock request times out, it restarts the wallet service. Cjdns Service : If cjdns is enabled, it sets up the necessary environment and starts the cjdns service. It also configures network settings and firewall rules to allow cjdns to function properly. PKTD Service : If PKTD is enabled, it constructs and runs the command to start the PKTD service with the appropriate configuration. Network Interface Check : It waits for tun0 network interface that is expected to be created by cjdroute to become available and then sets up firewall rules for network traffic. NFTables Initialization : It initializes NFTables, which is a framework for packet filtering and network address translation. VPN Server : If the VPN server is enabled, it starts the VPN server and sets up the pricing for the VPN service. Speed Test Service : It sets up the environment for running speed tests and starts the necessary services. Cjdns Peers : It adds peers for the cjdns network, the peers used are set in /server/cjdnspeers.json file. IKEv2 and OpenVPN : If IKEv2 or OpenVPN are enabled, it runs the respective configuration scripts to set up these VPN services. Node Exporter : It starts the Node Exporter service for Prometheus monitoring. SNI Proxy : If SNI Proxy is enabled, it starts the SNI Proxy service. Cron Job for Payments : It adds a cron job to handle payments on a weekly basis. Watchdog Service : If cjdns is enabled, it starts a watchdog service to monitor and maintain the cjdns service the AnodeVPN server and other services depending on the configuration of the server. Keep-Alive : Finally, it keeps the container running indefinitely by tailing /dev/null .","title":"Initialization"},{"location":"infra/exit-node/#monitoring-with-watchdog","text":"The watchdog.sh is monitoring the cjdroute service and if it stops it will restart it, when the cjdroute is restarted the AnodeVPN server is also restarted. It will also check for the pluto service which is the IKEv2 Ipsec VPN server and if it stops it will restart it. Similarly for the openvpn service. Finally the watchdog also checks the validity of vpnclients created by the AnodeVPN server and if their time has expired it will remove them.","title":"Monitoring with watchdog"},{"location":"infra/exit-node/#checking-the-status","text":"You can check the status of the services at any time either by running ```console vpn_data/status.sh ``` or by using the AnodeVPN API: ```console http://[server]:8099/api/0.4/server/status/ ``` Next to each service you will see the process id if that service is running, otherwise it will be 0 . e.g. { \"hostname\": \"kraut2.pkteer.com\", \"pktwallet\": 67, \"cjdns\": 82, \"anodeserver\": 114, \"ikev2\": 4012, \"openvpn\": 4135, \"watchdog\": 4116, \"date_time\": \"2024-07-17 10:08:19\" }","title":"Checking the status"},{"location":"infra/exit-node/#understanding-the-services-and-files","text":"","title":"Understanding the services and files"},{"location":"infra/exit-node/#launching-the-server","text":"The vpn_data/start-vpn.sh and vpn_data/start.sh scripts are designed to set up and run a VPN server using Docker. Here's a step-by-step explanation of what the script does: Environment Setup : It checks for the presence of necessary commands (jq, dirname, and docker). If any of these commands are missing, the script exits with an error message. Directory Navigation : It changes the working directory to the location of the script. Cjdns Port Extraction : It reads the cjdroute.conf file to extract the port number used by the cjdjns service. If the port number is not found in the expected format, it attempts to extract it using an alternative method. Configuration Reading : It reads the config.json file to get the region and city information. If either the region or city is not specified, the script exits with an error message. Cjdns RPC Port Setup : If the cjdns RPC (Remote Procedure Call) is enabled, it extracts the RPC port from the cjdroute.conf file and updates the configuration to expose the RPC port. Docker Container Execution : It runs a Docker container with various configurations: Sets the timezone based on the region and city defined in vpn_data/config.json . Configures logging, network capabilities, and device access. Sets system control parameters for IPv6 and IPv4 forwarding. Maps several ports for different services: reads the CJDNS port from the cjdroute.conf file and maps it to the host. 5201 port for the speed-test (iperf3) service. 64764 to the host for pktd service. 443 for the SNI Proxy service. 80 for the SNI Proxy service. 500 for the IKEv2 Ipsec VPN server (pluto service). 4500 for the IKEv2 Ipsec VPN server (pluto service). 943 for the OpenVPN server. 1194 for the OpenVPN server. Mounts necessary directories for data persistency and configuration files. /etc/openvpn to vpn_data/openvpn. /server/vpnclients to vpn_data/vpnclients. /data to vpn_data where the configuration files are stored, cjdroute.conf and config.json and others. Optionally maps the CJDNS RPC port if it is enabled. Runs the container in detached mode with elevated privileges. The script ensures that all necessary configurations are in place and starts the VPN server within a Docker container, making it ready for use.","title":"Launching the server"},{"location":"infra/exit-node/#cjdns","text":"Cjdns is running on the server using a generated cjdroute.conf file. The cjdroute.conf file is generated by the configure script It is being launched by the init script which is run on the server start. For persistency the file is stored in the vpn_data directory and used by the cjdns service. You can manually edit the file to add more cjdns peers. Note Changing other parts of the configuration manually may end up breaking the service. Wathdog is configured to keep cjdns running all the time. If the service stops, the watchdog will restart it. If cjdroute is for some reason stuck or frozen you can kill it by running docker exec -it pkt-server killall cjdroute and the watchdog will restart it.","title":"Cjdns"},{"location":"infra/exit-node/#anodevpn-server","text":"The server is running the AnodeVPN server to authorize clients and offer API access to the VPN services such as: Add domain to SNI proxy http://[server]:8099/api/0.4/server/domain/add/ console json { \"domain\": \"example.com\", \"cjdnsIpv6\": \"fc00:0000:0000:0000:0000:0000:0000:0001\" } Remove domain from SNI proxy http://[server]:8099/api/0.4/server/domain/remove/ console json { \"domain\": \"example.com\", \"cjdnsIpv6\": \"fc00:0000:0000:0000:0000:0000:0000:0001\" } Request new PKT address http://[server]:8099/api/0.4/server/premium/address/ console json {} Request new client VPN certificates http://[server]:8099/api/0.4/server/vpnaccess/ console json { \"address\": \"pkt1....\" } For more details see the AnodeVPN","title":"AnodeVPN Server"},{"location":"infra/exit-node/#ikev2-ipsec-vpn-server","text":"The IKEv2 Ipsec VPN server is running on the server and is used to provide VPN services to clients with access to cjdns network. For setting up the server the init script will launch the vpn_configure.sh if the ikev2:enabled flag is set to true, which will set up the server. We also use the ikev2.sh script to add/remove clients through the AnodeVPN API. The files generated are copied in server/vpnclients directory which is mapped to vpn_data/vpnclients/ on the docker host. For more details look into the setup-ipsec-vpn documentation for configuring the server, managing clients and troubleshooting. NOTE Unfortunately although IKEv2 clients can connect to the server from a Windows client and get VPN access, the clients are not able to access the CJDNS network. This is a known issue and we are working on a solution, for this reason we have added the OpenVPN server as an alternative for Windows users.","title":"IKEv2 Ipsec VPN Server"},{"location":"infra/exit-node/#openvpn-server","text":"The openvpn is initialized by the init script if the openvpn.enabled flag is set to true in config.json and is used to provide VPN services to clients with access to cjdns network. The server is configured using the openvpn_configure.sh which is used to generate the certificates needed. Then for adding new clients the createOpenVpnClient.sh script is used by the AnodeVPN Server API to generate the client certificates and keys. The files are stored in the vpn_data/vpnclients/ directory and can be used to connect to the server. NOTE The OpenVPN server is running on the server and is used to provide VPN services to clients with access to cjdns network. This was added on top of the IKEv2 for Windows users to be able to access the cjdns network, but it can be used by any OpenVPN client on any platform.","title":"OpenVPN Server"},{"location":"infra/exit-node/#sni-proxy","text":"Proxies incoming HTTP and TLS connections based on the hostname contained in the initial request of the TCP session. This enables websites that are hosted on CJDNS network to become available via HTTPS name-based virtual hosting. The SNI proxy will start if the sniproxy.enabled flag is set to true in the config.json file. The sniproxy is using the sniproxy.conf file to route the requests to the correct server. The server contains the default configuration for the sniproxy and is being edited by the adddomain.sh and removedomain.sh scripts which are used by the AnodeVPN API to add and remove domains respectively from the proxy. For troubleshooting you can view the sniproxy logs. The access log is stored in vpn_data/sniproxy-access.log and the error log is stored in vpn_data/sniproxy-error.log .","title":"SNI Proxy"},{"location":"infra/infrastructure/","text":"Infrastructure Introduction This strategic technology upgrade of PKT on Base coincides with the launch of a novel Stake-to-Earn protocol. This offers participants significant daily PKT rewards for staking PKT. Coming October 30, 2024 is Infrastructure Day, when users will be required to pair each stake with an infrastructure node to continue earning staking rewards. There are 5 different node types, ranging in operational complexity, with different infrastructure requirements and yields. Instead of mining, PKT holders can stake their tokens and pair with infrastructure nodes to earn yields. To incentivize operators to make long term commitments to run infrastructure for the network, there are yield bonus multipliers based on staking duration. Infrastructure Yields Starting on Infrastructure Day, October 30, 2024, each stake will be required to pair with at least one PKT Network infrastructure node in order to continue earning yields. Operators will be able to assign yield credits to each PKT infrastructure node. Instead of all yield credits competing for one bucket of yields, there will be one bucket for each of the 5 types of infrastructure in the PKT network. One lockup can assign yield credits to multiple units of infrastructure, but one unit of infrastructure can only be assigned yield credits from one lockup. Cjdns Nodes 40% of all yields will go to cjdns nodes which have an open port and public peering credentials, so anyone can connect. Operators can assign up to $5,000 worth of yield credits per cjdns node, with each yield credit being valued at 1 PKT Yields will still be allocated based on yield credits, so if the PKT price goes up, older cjdns nodes will be \u201cgrandfathered\u201d in and be able to hold more yield credits than newer ones, and thus yield better. If the PKT price goes down, node operators will be able to increase their assigned yield credits if they so choose. Every cjdns node will be tested each week, and if the node is found to be in a non-functional state, the node will lose yields for that week. If a node fails 4 weeks in a row, it will be removed from the roster and when it comes back online it will be capped at $5,000 worth of yield credits based on the value at the time it comes back. In order to incentivize geographical distribution of nodes, cjdns nodes will get a bonus if they are on IP address blocks, or ISPs that have few other cjdns nodes, as follows: Effective yield credits are equal to real assigned yield credits TIMES: One over (\u201cdivided by\u201d) the number of cjdns nodes running on your IPv4 address, plus Note Running multiple cjdns nodes on the same device is not efficient . One over the number of cjdns nodes running in your IPv4 address block, plus Note What is an IP address block? An address block is a group of IP addresses which all belong to one ISP, and which internet core routers treat as a single unit, you can see the public address block of your public IP address by going here: https://bgp.he.net/ One over the number of cjdns nodes running in your ISP, plus Note For our purposes, your \u201cISP\u201d is the AS Number which controls your public IP address. To incentivise high reliability cjdns nodes, your effective yield credits will be multiplied by the square of your node\u2019s uptime. So if your cjdns node is only online 50% of the time, you will only get 25% of the yields that you would with it being online 100% of the time. At 80% uptime you get 64% yields, at 90% uptime you get 81% yields. In addition, you will get 5 more effective yield credits for every 100 (real) yield credits which are assigned to cjdns nodes as a result of you introducing people to the project with your affiliate code. These are not affected by your node\u2019s uptime, it just has to be online enough to pass the weekly test. These rules are complex, but there is a simulator and you can type in any IP address and see the effective yield credits and simulated yield for a cjdns node running on that address.","title":"Infrastructure"},{"location":"infra/infrastructure/#infrastructure","text":"","title":"Infrastructure"},{"location":"infra/infrastructure/#introduction","text":"This strategic technology upgrade of PKT on Base coincides with the launch of a novel Stake-to-Earn protocol. This offers participants significant daily PKT rewards for staking PKT. Coming October 30, 2024 is Infrastructure Day, when users will be required to pair each stake with an infrastructure node to continue earning staking rewards. There are 5 different node types, ranging in operational complexity, with different infrastructure requirements and yields. Instead of mining, PKT holders can stake their tokens and pair with infrastructure nodes to earn yields. To incentivize operators to make long term commitments to run infrastructure for the network, there are yield bonus multipliers based on staking duration.","title":"Introduction"},{"location":"infra/infrastructure/#infrastructure-yields","text":"Starting on Infrastructure Day, October 30, 2024, each stake will be required to pair with at least one PKT Network infrastructure node in order to continue earning yields. Operators will be able to assign yield credits to each PKT infrastructure node. Instead of all yield credits competing for one bucket of yields, there will be one bucket for each of the 5 types of infrastructure in the PKT network. One lockup can assign yield credits to multiple units of infrastructure, but one unit of infrastructure can only be assigned yield credits from one lockup.","title":"Infrastructure Yields"},{"location":"infra/infrastructure/#cjdns-nodes","text":"40% of all yields will go to cjdns nodes which have an open port and public peering credentials, so anyone can connect. Operators can assign up to $5,000 worth of yield credits per cjdns node, with each yield credit being valued at 1 PKT Yields will still be allocated based on yield credits, so if the PKT price goes up, older cjdns nodes will be \u201cgrandfathered\u201d in and be able to hold more yield credits than newer ones, and thus yield better. If the PKT price goes down, node operators will be able to increase their assigned yield credits if they so choose. Every cjdns node will be tested each week, and if the node is found to be in a non-functional state, the node will lose yields for that week. If a node fails 4 weeks in a row, it will be removed from the roster and when it comes back online it will be capped at $5,000 worth of yield credits based on the value at the time it comes back. In order to incentivize geographical distribution of nodes, cjdns nodes will get a bonus if they are on IP address blocks, or ISPs that have few other cjdns nodes, as follows: Effective yield credits are equal to real assigned yield credits TIMES: One over (\u201cdivided by\u201d) the number of cjdns nodes running on your IPv4 address, plus Note Running multiple cjdns nodes on the same device is not efficient . One over the number of cjdns nodes running in your IPv4 address block, plus Note What is an IP address block? An address block is a group of IP addresses which all belong to one ISP, and which internet core routers treat as a single unit, you can see the public address block of your public IP address by going here: https://bgp.he.net/ One over the number of cjdns nodes running in your ISP, plus Note For our purposes, your \u201cISP\u201d is the AS Number which controls your public IP address. To incentivise high reliability cjdns nodes, your effective yield credits will be multiplied by the square of your node\u2019s uptime. So if your cjdns node is only online 50% of the time, you will only get 25% of the yields that you would with it being online 100% of the time. At 80% uptime you get 64% yields, at 90% uptime you get 81% yields. In addition, you will get 5 more effective yield credits for every 100 (real) yield credits which are assigned to cjdns nodes as a result of you introducing people to the project with your affiliate code. These are not affected by your node\u2019s uptime, it just has to be online enough to pass the weekly test. These rules are complex, but there is a simulator and you can type in any IP address and see the effective yield credits and simulated yield for a cjdns node running on that address.","title":"Cjdns Nodes"},{"location":"infra/nameserver/","text":"Setup a Nameserver Node PKT is developing a DNS (Domain Name System) that leverages the PKT Network to map domain names to cjdns IP addresses. More information on how to set up a Nameserver Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Nameserver Node"},{"location":"infra/nameserver/#setup-a-nameserver-node","text":"PKT is developing a DNS (Domain Name System) that leverages the PKT Network to map domain names to cjdns IP addresses. More information on how to set up a Nameserver Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Nameserver Node"},{"location":"infra/route-server/","text":"Setup a Route Server Node The route server is used to route traffic on the PKT network. More information on how to set up a Route Server Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Route Server Node"},{"location":"infra/route-server/#setup-a-route-server-node","text":"The route server is used to route traffic on the PKT network. More information on how to set up a Route Server Node will be available prior to Infrastructure Day on October 30, 2024.","title":"Setup a Route Server Node"},{"location":"infra/vpn-exit/","text":"VPN Exit 30% of all yields will go to VPN exits which provide internet access to people in the network. You will be able to assign up to $5,000 worth of yield credits per VPN exit. Allocation based on yield credits, grandfather rule, and weekly testing is the same as cjdns nodes. Geographical distribution bonuses and uptime multiplier are exactly the same as for a cjdns node In case of doubt, a cjdns node and a VPN exit are considered distinct entities, even if running on the same IP address, so configuring a device as both a cjdns node and a VPN exit will allow you to assign and yield off of $10,000 worth of yield credits. VPN exits have no affiliate code credits. Domains Nodes 15% of all yields will go to the holders of PKT domains. A PKT domain must be pkt. , for example pkt.com or pkt.us There is no limit on how many yield credits can be assigned to one domain, but there is a severe constraint on pkt domains because there is only one possible pkt domain per top level domain . Every week, domains are tested to verify that they are resolving to registered and functioning Nameservers. If a domain fails the test then it will not yield until the following week. If a domain has a DNSSEC DS record (required if the domain owner also operates a Nameserver) then the signed updated zone file must be available at all times. In order to encourage jurisdictional diversity of domains, domains will get a yield bonus if they are registered with different registrars, different TLD operators, and in different countries. Your effective yield credits equal your real assigned yield credits TIMES: One, plus One over the number of pkt domains registered with your REGISTRAR (registrars are companies such as Godaddy and Namecheap), plus One over the number of pkt domains registered with the same DOMAIN AUTHORITY. For example, .com and .net are both operated by VeriSign Global Registry Services, plus One over the number of pkt domains with the same domicile country Note If the registrar and the domain authority are in the same country, this is the domicile country. If they are different, then the domicile county is the WORSE yielding out of the two. Nameserver 10% of all yields go to operators of Nameservers. There is no limit to the number of yield credits that can be assigned to one nameserver, but you must have a pkt domain in order to run one. Every nameserver must serve the entire PKT decentralized zone for every registered domain, this means if FAST.PKT has been claimed on the PKT blockchain, and community members have registered PKT.US and PKT.COM, a nameserver must correctly resolve FAST.PKT.US and FAST.PKT.COM to the entry made by the owner of FAST.PKT. Every nameserver must publish, no less than hourly, a DNSSEC signed zone file for their pkt domain such that other nameservers can correctly serve it as DNSSEC. Every nameserver must pull from all other nameservers the DNSSEC signed zone files for their relevant pkt domains and serve them as well. Geographical distribution bonuses are exactly the same as for a cjdns node, however there are no uptime multipliers, ANY observed downtime for a nameserver will cause loss of all yields for that week. Route Servers 5% of all yields go to the operators of Route Servers There is no limit to the number of yield credits that can be assigned to one route server, but you must have a nameserver (and thus a pkt domain) in order to run one. Every route server must be correctly and continuously operational and up to date. Any significant downtime or misbehavior of a route server will result in loss of yields for that week.","title":"VPN Exit"},{"location":"infra/vpn-exit/#vpn-exit","text":"30% of all yields will go to VPN exits which provide internet access to people in the network. You will be able to assign up to $5,000 worth of yield credits per VPN exit. Allocation based on yield credits, grandfather rule, and weekly testing is the same as cjdns nodes. Geographical distribution bonuses and uptime multiplier are exactly the same as for a cjdns node In case of doubt, a cjdns node and a VPN exit are considered distinct entities, even if running on the same IP address, so configuring a device as both a cjdns node and a VPN exit will allow you to assign and yield off of $10,000 worth of yield credits. VPN exits have no affiliate code credits.","title":"VPN Exit"},{"location":"infra/vpn-exit/#domains-nodes","text":"15% of all yields will go to the holders of PKT domains. A PKT domain must be pkt. , for example pkt.com or pkt.us There is no limit on how many yield credits can be assigned to one domain, but there is a severe constraint on pkt domains because there is only one possible pkt domain per top level domain . Every week, domains are tested to verify that they are resolving to registered and functioning Nameservers. If a domain fails the test then it will not yield until the following week. If a domain has a DNSSEC DS record (required if the domain owner also operates a Nameserver) then the signed updated zone file must be available at all times. In order to encourage jurisdictional diversity of domains, domains will get a yield bonus if they are registered with different registrars, different TLD operators, and in different countries. Your effective yield credits equal your real assigned yield credits TIMES: One, plus One over the number of pkt domains registered with your REGISTRAR (registrars are companies such as Godaddy and Namecheap), plus One over the number of pkt domains registered with the same DOMAIN AUTHORITY. For example, .com and .net are both operated by VeriSign Global Registry Services, plus One over the number of pkt domains with the same domicile country Note If the registrar and the domain authority are in the same country, this is the domicile country. If they are different, then the domicile county is the WORSE yielding out of the two.","title":"Domains Nodes"},{"location":"infra/vpn-exit/#nameserver","text":"10% of all yields go to operators of Nameservers. There is no limit to the number of yield credits that can be assigned to one nameserver, but you must have a pkt domain in order to run one. Every nameserver must serve the entire PKT decentralized zone for every registered domain, this means if FAST.PKT has been claimed on the PKT blockchain, and community members have registered PKT.US and PKT.COM, a nameserver must correctly resolve FAST.PKT.US and FAST.PKT.COM to the entry made by the owner of FAST.PKT. Every nameserver must publish, no less than hourly, a DNSSEC signed zone file for their pkt domain such that other nameservers can correctly serve it as DNSSEC. Every nameserver must pull from all other nameservers the DNSSEC signed zone files for their relevant pkt domains and serve them as well. Geographical distribution bonuses are exactly the same as for a cjdns node, however there are no uptime multipliers, ANY observed downtime for a nameserver will cause loss of all yields for that week.","title":"Nameserver"},{"location":"infra/vpn-exit/#route-servers","text":"5% of all yields go to the operators of Route Servers There is no limit to the number of yield credits that can be assigned to one route server, but you must have a nameserver (and thus a pkt domain) in order to run one. Every route server must be correctly and continuously operational and up to date. Any significant downtime or misbehavior of a route server will result in loss of yields for that week.","title":"Route Servers"},{"location":"infra/vpn/","text":"PKT VPN PKT is a VPN powered network, with privacy and security built-in. There is continuous development of low cost VPN services and hosting. PKT is a VPN-powered network with privacy and security as a cornerstone of its infrastructure. This network is designed with built-in features that ensure all data transmitted is secure and private, leveraging the robust capabilities of VPN technology. The community is continuously developing VPN solutions, aiming to democratize access to secure internet connections. These initiatives are crucial in enabling reliable, low-cost VPN access.","title":"PKT VPN"},{"location":"infra/vpn/#pkt-vpn","text":"PKT is a VPN powered network, with privacy and security built-in. There is continuous development of low cost VPN services and hosting. PKT is a VPN-powered network with privacy and security as a cornerstone of its infrastructure. This network is designed with built-in features that ensure all data transmitted is secure and private, leveraging the robust capabilities of VPN technology. The community is continuously developing VPN solutions, aiming to democratize access to secure internet connections. These initiatives are crucial in enabling reliable, low-cost VPN access.","title":"PKT VPN"},{"location":"learn/network-steward/","text":"What is the Network Steward? Introducing the Network Steward The Network Steward is a mechanism built into the PKT blockchain to ensure there is continuous funding to build out the project roadmap. Since PKT is completely decentralized, with no central company, foundation or investors behind the project, the Network Steward is able to provide perpetual funding for development. As part of the consensus rules of the PKT blockchain, the publicly visible Network Steward wallet address receives 20% of every newly mined block. 100% of the funds are mandated to be paid out in the form of grants towards funding the Network Steward\u2019s areas of interest, including open-source technology development of the PKT Network. Unlike a pre-mine or founder's fee, the recipient of the Network Steward payout can be changed by a PoS vote. All coins that are not allocated within 129,600 blocks (~3 months) are automatically burned. More than 13% of the mined coins have been burned through 2022. You can check out the status of the burned coins and PoS vote to re-elect the Network Steward page on the block explorer page [here]. https://explorer.pkt.cash/address pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2 Who is the Network Steward? This Network Steward address is a multi-signature group that requires 3 out of 5 signatures in order to make a payment. The current Network Stewards* are: Cjd \u2014 cjdns original author Arceliar \u2014 Yggdrasil original author Benhylau \u2014 Contributor at Toronto Mesh NeilAlexander \u2014 Yggdrasil release manager Backupbrain \u2014 Creator of NetNinja VPN device All of the participants have agreed not to enter into any relationships which would affect their ability to act impartially on behalf of the PKT project. How does the Network Steward Operate? The persons in custody of the Network Steward wallet periodically meet to award grants in accordance with a strict criteria and mandate. The current mandate is that funds are to be used for: Financing the development of open source software, technology documentation and education resources for the PKT Network and community. Lobbying for an improved regulator environment for small network operators and more generally, to promote internet freedom, privacy, and decentralized internet access. Purchasing property such as proprietary software or radio frequency spectrum rights in order to put these things in the commons. It is the belief of the PKT blockchain founding developers that any unaccountable authority, no matter how benevolent, will eventually fall victim to corruption, inefficiency or simple failure to innovate. Because of this, the PKT blockchain has an impeachment solution whereby every holder of PKT is able to cast a vote to impeach the Network Steward so a new Network Steward can take its place. Impeachment is not an insignificant event. For it to occur, it requires more than a 50% of the total PKT ever mined to \u201cVoteFor\u201d impeachment. If impeachment does occur, what follows is an automatic vote count and a change to the Network Steward address. How are Grants Awarded? Grants are awarded based on a funding criteria that is outlined on the Network Steward Github [here]. You start by socializing what you want to do with the community (try PKT.Chat, Discord or Telegram). When you have rough consensus, you move that conversation to a formal proposal. There are currently two ways to propose a project to the PKT Network Steward. If your project is large and has the benefit of accountants to be able to verify that the money has been spent appropriately, you can make a proposal directly to the Network Steward through its github [here]. Click [here] to submit a proposal Click [here] to download the submission template The Network Steward opens calls with a specified budget from time to time. Anyone can apply during these open calls. The Network Steward meets several times per year to review submitted projects. The minutes of these meetings are published in the github repository, along with the ongoing project statuses. Every transaction made by the Network Steward can be seen in the block explorer and is referred to in the Network Steward's github repository explaining the project that was funded. To make a proposal, you must create a pull request to the github repository and name it according to the naming convention defined in the repository readme. This adds a new project markdown file, as per the project template. Getting a proposal accepted is much like getting a pull request merged into a project. If you want to propose a smaller project and have the accounting and official reporting managed for you, you can propose to the User Operated Internet fund [here], which is funded by the Network Steward and administered by NLnet. NLnet is a well respected public benefit organization that is experienced at managing technology development projects. Network Steward Voting How voting works A vote consists of one two parts, VoteFor and VoteAgainst. VoteAgainst is a vote for impeachment, while VoteFor is a vote for who should become network steward in the event of an impeachment. A network steward is represented as a transaction output script rather than a script encoded key. An easy way to get the script for a given address is to pay some money to it and then explore the raw transaction and copy the output. Exploring a coinbase transaction we can see the output being paid to the network steward https://explorer.pkt.cash/address/ and the script for this output is 0020d5c1005c0d4012d3ae2672319e7f9eb15a57516aeefabbbc062265f67e308f2 If we double-check by querying pktd to find out what is the network steward, we will see that it shows the script that was paid to. So if we wanted, for instance, to change the network steward to https://explorer.pkt.cash/address/pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX, we would want to vote for the corresponding script 76a9147d9df4279212fd7def4c47abf2d5f3a6c6eaf4ae88ac and of course we probably want to vote against the current network steward as well. How to vote Voting is done by configuring your wallet to vote, whenever you spend money, your wallet will include a vote in every future payment of PKT which is made. If you want to speed up the voting process, you can configure your wallet to vote and then transfer all of your PKT to another wallet, in order to be sure it will all be voting. To configure your wallet to vote for https://explorer.pkt.cash/address/pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX and against https://explorer.pkt.cash/address, you would use the following workflow:","title":"What is the Network Steward?"},{"location":"learn/network-steward/#what-is-the-network-steward","text":"","title":"What is the Network Steward?"},{"location":"learn/network-steward/#introducing-the-network-steward","text":"The Network Steward is a mechanism built into the PKT blockchain to ensure there is continuous funding to build out the project roadmap. Since PKT is completely decentralized, with no central company, foundation or investors behind the project, the Network Steward is able to provide perpetual funding for development. As part of the consensus rules of the PKT blockchain, the publicly visible Network Steward wallet address receives 20% of every newly mined block. 100% of the funds are mandated to be paid out in the form of grants towards funding the Network Steward\u2019s areas of interest, including open-source technology development of the PKT Network. Unlike a pre-mine or founder's fee, the recipient of the Network Steward payout can be changed by a PoS vote. All coins that are not allocated within 129,600 blocks (~3 months) are automatically burned. More than 13% of the mined coins have been burned through 2022. You can check out the status of the burned coins and PoS vote to re-elect the Network Steward page on the block explorer page [here]. https://explorer.pkt.cash/address pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2","title":"Introducing the Network Steward"},{"location":"learn/network-steward/#who-is-the-network-steward","text":"This Network Steward address is a multi-signature group that requires 3 out of 5 signatures in order to make a payment. The current Network Stewards* are: Cjd \u2014 cjdns original author Arceliar \u2014 Yggdrasil original author Benhylau \u2014 Contributor at Toronto Mesh NeilAlexander \u2014 Yggdrasil release manager Backupbrain \u2014 Creator of NetNinja VPN device All of the participants have agreed not to enter into any relationships which would affect their ability to act impartially on behalf of the PKT project.","title":"Who is the Network Steward?"},{"location":"learn/network-steward/#how-does-the-network-steward-operate","text":"The persons in custody of the Network Steward wallet periodically meet to award grants in accordance with a strict criteria and mandate. The current mandate is that funds are to be used for: Financing the development of open source software, technology documentation and education resources for the PKT Network and community. Lobbying for an improved regulator environment for small network operators and more generally, to promote internet freedom, privacy, and decentralized internet access. Purchasing property such as proprietary software or radio frequency spectrum rights in order to put these things in the commons. It is the belief of the PKT blockchain founding developers that any unaccountable authority, no matter how benevolent, will eventually fall victim to corruption, inefficiency or simple failure to innovate. Because of this, the PKT blockchain has an impeachment solution whereby every holder of PKT is able to cast a vote to impeach the Network Steward so a new Network Steward can take its place. Impeachment is not an insignificant event. For it to occur, it requires more than a 50% of the total PKT ever mined to \u201cVoteFor\u201d impeachment. If impeachment does occur, what follows is an automatic vote count and a change to the Network Steward address.","title":"How does the Network Steward Operate?"},{"location":"learn/network-steward/#how-are-grants-awarded","text":"Grants are awarded based on a funding criteria that is outlined on the Network Steward Github [here]. You start by socializing what you want to do with the community (try PKT.Chat, Discord or Telegram). When you have rough consensus, you move that conversation to a formal proposal. There are currently two ways to propose a project to the PKT Network Steward. If your project is large and has the benefit of accountants to be able to verify that the money has been spent appropriately, you can make a proposal directly to the Network Steward through its github [here]. Click [here] to submit a proposal Click [here] to download the submission template The Network Steward opens calls with a specified budget from time to time. Anyone can apply during these open calls. The Network Steward meets several times per year to review submitted projects. The minutes of these meetings are published in the github repository, along with the ongoing project statuses. Every transaction made by the Network Steward can be seen in the block explorer and is referred to in the Network Steward's github repository explaining the project that was funded. To make a proposal, you must create a pull request to the github repository and name it according to the naming convention defined in the repository readme. This adds a new project markdown file, as per the project template. Getting a proposal accepted is much like getting a pull request merged into a project. If you want to propose a smaller project and have the accounting and official reporting managed for you, you can propose to the User Operated Internet fund [here], which is funded by the Network Steward and administered by NLnet. NLnet is a well respected public benefit organization that is experienced at managing technology development projects.","title":"How are Grants Awarded?"},{"location":"learn/network-steward/#network-steward-voting","text":"","title":"Network Steward Voting"},{"location":"learn/network-steward/#how-voting-works","text":"A vote consists of one two parts, VoteFor and VoteAgainst. VoteAgainst is a vote for impeachment, while VoteFor is a vote for who should become network steward in the event of an impeachment. A network steward is represented as a transaction output script rather than a script encoded key. An easy way to get the script for a given address is to pay some money to it and then explore the raw transaction and copy the output. Exploring a coinbase transaction we can see the output being paid to the network steward https://explorer.pkt.cash/address/ and the script for this output is 0020d5c1005c0d4012d3ae2672319e7f9eb15a57516aeefabbbc062265f67e308f2 If we double-check by querying pktd to find out what is the network steward, we will see that it shows the script that was paid to. So if we wanted, for instance, to change the network steward to https://explorer.pkt.cash/address/pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX, we would want to vote for the corresponding script 76a9147d9df4279212fd7def4c47abf2d5f3a6c6eaf4ae88ac and of course we probably want to vote against the current network steward as well.","title":"How voting works"},{"location":"learn/network-steward/#how-to-vote","text":"Voting is done by configuring your wallet to vote, whenever you spend money, your wallet will include a vote in every future payment of PKT which is made. If you want to speed up the voting process, you can configure your wallet to vote and then transfer all of your PKT to another wallet, in order to be sure it will all be voting. To configure your wallet to vote for https://explorer.pkt.cash/address/pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX and against https://explorer.pkt.cash/address, you would use the following workflow:","title":"How to vote"},{"location":"learn/packetcrypt/","text":"What is PacketCrypt? PacketCrypt is the world\u2019s first bandwidth-hard proof of work. It is the software that miners install to mine PKT Cash and which constructs the unique foundation of the PKT Blockchain. The PacketCrypt protocol is designed to reward miners in PKT Cash for transmitting data around the world. This incentivizes and requires high CPU encryption plus maximum bandwidth throughput to optimize yields. Miners are required to become hyper aware of and motivated to increase their bandwidth upload and download throughput to efficiently communicate with nodes across the network. PKT mining favors increased bandwidth over CPU power, rewarding people that connect high speed bandwidth infrastructure to the network. PacketCrypt utilizes 2 distinct stages: announcement mining and block mining. Any internet connected device can become an announcement miner and mine PKT Cash by installing and running the PacketCrypt software. Announcement miners running PacketCrypt upload small, difficult to compress (1KB) messages called announcements to block miners. Block miners, otherwise known as PKT mining pools, must maximize the number of announcements they collect for each block. To accomplish this, PKT mining pools can get a discount on the difficulty of the work they must do by coordinating with community announcement miners and fairly paying announcement miners in PKT Cash to continuously supply them with fresh announcements. Optimal mining results are achieved through this cooperation between miners. The result is a fully decentralized network topography that is powered by the people. These various announcement miners and PKT mining pools represent the core infrastructure of the PKT Network, along with its integrated VPN and wifi sharing capabilities. To learn more about PacketCrypt check out the introduction to PKT Mining [here].","title":"What is PacketCrypt?"},{"location":"learn/packetcrypt/#what-is-packetcrypt","text":"PacketCrypt is the world\u2019s first bandwidth-hard proof of work. It is the software that miners install to mine PKT Cash and which constructs the unique foundation of the PKT Blockchain. The PacketCrypt protocol is designed to reward miners in PKT Cash for transmitting data around the world. This incentivizes and requires high CPU encryption plus maximum bandwidth throughput to optimize yields. Miners are required to become hyper aware of and motivated to increase their bandwidth upload and download throughput to efficiently communicate with nodes across the network. PKT mining favors increased bandwidth over CPU power, rewarding people that connect high speed bandwidth infrastructure to the network. PacketCrypt utilizes 2 distinct stages: announcement mining and block mining. Any internet connected device can become an announcement miner and mine PKT Cash by installing and running the PacketCrypt software. Announcement miners running PacketCrypt upload small, difficult to compress (1KB) messages called announcements to block miners. Block miners, otherwise known as PKT mining pools, must maximize the number of announcements they collect for each block. To accomplish this, PKT mining pools can get a discount on the difficulty of the work they must do by coordinating with community announcement miners and fairly paying announcement miners in PKT Cash to continuously supply them with fresh announcements. Optimal mining results are achieved through this cooperation between miners. The result is a fully decentralized network topography that is powered by the people. These various announcement miners and PKT mining pools represent the core infrastructure of the PKT Network, along with its integrated VPN and wifi sharing capabilities. To learn more about PacketCrypt check out the introduction to PKT Mining [here].","title":"What is PacketCrypt?"},{"location":"learn/pkt-cash/","text":"What is PKT Cash? PKT is a native coin that is mined by PKT mining pools and paid to announcement miners when running the PacketCrypt mining algorithm. There is no centralized issuer of PKT Cash, no pre-mine, and no centralized treasury. PKT Cash\u2019s minimum value is the cost to mine the coin, which includes processing power, plus bandwidth. PKT Cash is a Bitcoin fork and true proof of work, so it is a coin, not a token. PKT blocktimes are every 60 seconds, which makes PKT 10x faster than Bitcoin. Currently PKT can handle approximately 70-100 transactions per second. However, PKT Cash is designed for microtransactions with near-zero gas fees. In 2023, PKT Cash will become Lightning Network enabled using the PKT Lightning Daemon (PLD). PLD will enable PKT to process near-infinite transactions per second. Since PKT Cash is generated from a fully decentralized fork of Bitcoin, it is considered to be a commodity, similar to Bitcoin. Additionally, since PKT is a fully decentralized clone of the Bitcoin codebase, the legal and regulatory framing is probably similar.","title":"What is PKT Cash?"},{"location":"learn/pkt-cash/#what-is-pkt-cash","text":"PKT is a native coin that is mined by PKT mining pools and paid to announcement miners when running the PacketCrypt mining algorithm. There is no centralized issuer of PKT Cash, no pre-mine, and no centralized treasury. PKT Cash\u2019s minimum value is the cost to mine the coin, which includes processing power, plus bandwidth. PKT Cash is a Bitcoin fork and true proof of work, so it is a coin, not a token. PKT blocktimes are every 60 seconds, which makes PKT 10x faster than Bitcoin. Currently PKT can handle approximately 70-100 transactions per second. However, PKT Cash is designed for microtransactions with near-zero gas fees. In 2023, PKT Cash will become Lightning Network enabled using the PKT Lightning Daemon (PLD). PLD will enable PKT to process near-infinite transactions per second. Since PKT Cash is generated from a fully decentralized fork of Bitcoin, it is considered to be a commodity, similar to Bitcoin. Additionally, since PKT is a fully decentralized clone of the Bitcoin codebase, the legal and regulatory framing is probably similar.","title":"What is PKT Cash?"},{"location":"learn/pkt-network/","text":"PKT Documentation Documentation for the PKT project Wallet setup There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features. Mining PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page. Running a pktd instance You can setup a pktd instance using the instructions on pktd . Help and Community To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"PKT Documentation"},{"location":"learn/pkt-network/#pkt-documentation","text":"Documentation for the PKT project","title":"PKT Documentation"},{"location":"learn/pkt-network/#wallet-setup","text":"There are several wallets which you can choose from, the easiest to set up are PKT Electrum which has a Graphical UI and supports Windows, Mac and Linux. PKT Wallet which has a Graphical UI and supports MacOS and works great with miners. Pkt.world Wallet which has a Graphical UI for Windows, works with miners and includes a built-in miner. You can also setup PKT Wallet which is command line only but has greater scalability and privacy features.","title":"Wallet setup"},{"location":"learn/pkt-network/#mining","text":"PKT is mined using the PacketCrypt bandwidth hard mining algorithm. You can learn how to mine on the Mining page.","title":"Mining"},{"location":"learn/pkt-network/#running-a-pktd-instance","text":"You can setup a pktd instance using the instructions on pktd .","title":"Running a pktd instance"},{"location":"learn/pkt-network/#help-and-community","text":"To get help with the technologies in the PKT project or to hang out in the community join us on the PKT Chat project chat.","title":"Help and Community"},{"location":"learn/pkt/","text":"What is PKT? PKT is an open source, layer 1 blockchain project and decentralized physical infrastructure (DePIN) mesh network powered by its global community. The project supports open internet access and scaling the decentralized web. The PKT project supports the core vision that basic, censorship-resistant internet access should be globally accessible. Rather than pay centralized companies for internet access, it\u2019s designed so basic access can be free and people can pay providers when they need fast speeds. PKT utilizes the cjdns routing protocol to enable a decentralized, censorship-resistant, high-speed data network. The PKT Network is a completely sovereign part of the internet, which is accessible via VPN. Anyone can build censorship-resistant websites in the PKT Network. These websites can use their IPv6 web URL as a PKT payment address, streamlining peer-to-peer payments in the network. There are many reasons why open internet access is important, but none are more fundamental than lowering the barrier to entry so access to information and connectivity is available to everyone. By participating in the PKT project, and holding the PKT cryptocurrency, you are helping restore the founding ethos of the internet: decentralization. Why does PKT exist? Connectivity is humanity\u2019s source of vitality, information and communication. PKT stands for the belief that internet access is a human entitlement. However, lowering the barrier for internet access is not in the best interest of centralized companies, internet service providers (ISP) and governments. Why? Because these entities are motivated by money and power, and their control is diminished if global internet access is free. Additionally, many corporations and governments don\u2019t support free unlimited internet access due to regional or political censorship ideologies or capitalist priorities. Despite the founding principle for the internet to be decentralized, today, internet access is not. It is for these reasons that PKT is designed to usher in a new paradigm of connectivity. This helps realize a new era, where the physical infrastructure of the internet is powered by the people, and accessibility is open and free. How does PKT Expand Internet Access? The PKT project presents an alternative approach to traditional internet service through mesh networking. First, PKT economically incentivizes individuals who have internet access to set up a PKT miner and contribute computer processing and bandwidth to secure the PKT blockchain. Similar to how Bitcoin miners earn BTC as they mine the Bitcoin, PKT miners earn PKT when they mine PKT. Since PKT mining requires bandwidth, this creates a general demand for bandwidth. Second, individuals with bandwidth can set up a cjdns node. Cjdns is the mesh networking protocol that enables the high speed data infrastructure for the PKT Network. As more people connect, this builds a decentralized, peer-to-peer network. Third, individuals can share mesh network internet access to the PKT Network. This internet access functions similar to a wifi access point. However, all connectivity is end-to-end encrypted. Wifi access point operators can choose to offer free access or paid access. The objective of the PKT Network is to decouple the physical aspect of deploying and maintaining internet infrastructure (such as overhead and undersea cables), from the business and technical aspects of internet service such as billing, network engineering, and support. This way anyone can safely and securely become an internet provider via mesh networking, thus expanding internet access worldwide. The fundamental value of dividing these internet service efforts is to empower everyday people to cover the cost of deploying and maintaining mesh network wifi access points. This ultimately lowers the cost of providing localized internet access and drives competition in the multi-trillion dollar annual internet industry. This can result in PKT\u2019s mission to get the next billion people online. How can PKT Accomplish Its Goals? Community projects can achieve the best results when focused on use cases, utility and community participation. When inspiring community participation, three core reasons people may take action: necessity they believe strongly they are being paid In the mission to extend internet access and expand the decentralized web, PKT economically incentivizes individuals to participate. Additionally, many contributors truly believe in the mission to connect the unconnected. Since PKT is a fully decentralized community project, like Bitcoin, everyone in the community is part of the project team. There is no central authority or centralized infrastructure. However, there are many businesses and contributors in the PKT ecosystem who are developing the [roadmap]. This fosters the decentralized nature of the project. Visit the Ecosystem page [here] to see a (non-exhaustive) list of the major projects and contributors. How does the PKT blockchain work? PKT is the world\u2019s first and only bandwidth-hard proof-of-work blockchain. Anyone with internet access can install the mining software called PacketCrypt and start mining to earn PKT Cash. Just as Bitcoin introduced the dawn of a new era of digital money, PKT is introducing a new paradigm for how people can use their internet resources to expand internet accessibility. Click here to learn more about PacketCrypt. How can I set up a miner? For a tutorial on how to start mining PKT and earn PKT Cash, for this guide: [Intro to PKT Mining].","title":"What is PKT?"},{"location":"learn/pkt/#what-is-pkt","text":"PKT is an open source, layer 1 blockchain project and decentralized physical infrastructure (DePIN) mesh network powered by its global community. The project supports open internet access and scaling the decentralized web. The PKT project supports the core vision that basic, censorship-resistant internet access should be globally accessible. Rather than pay centralized companies for internet access, it\u2019s designed so basic access can be free and people can pay providers when they need fast speeds. PKT utilizes the cjdns routing protocol to enable a decentralized, censorship-resistant, high-speed data network. The PKT Network is a completely sovereign part of the internet, which is accessible via VPN. Anyone can build censorship-resistant websites in the PKT Network. These websites can use their IPv6 web URL as a PKT payment address, streamlining peer-to-peer payments in the network. There are many reasons why open internet access is important, but none are more fundamental than lowering the barrier to entry so access to information and connectivity is available to everyone. By participating in the PKT project, and holding the PKT cryptocurrency, you are helping restore the founding ethos of the internet: decentralization.","title":"What is PKT?"},{"location":"learn/pkt/#why-does-pkt-exist","text":"Connectivity is humanity\u2019s source of vitality, information and communication. PKT stands for the belief that internet access is a human entitlement. However, lowering the barrier for internet access is not in the best interest of centralized companies, internet service providers (ISP) and governments. Why? Because these entities are motivated by money and power, and their control is diminished if global internet access is free. Additionally, many corporations and governments don\u2019t support free unlimited internet access due to regional or political censorship ideologies or capitalist priorities. Despite the founding principle for the internet to be decentralized, today, internet access is not. It is for these reasons that PKT is designed to usher in a new paradigm of connectivity. This helps realize a new era, where the physical infrastructure of the internet is powered by the people, and accessibility is open and free.","title":"Why does PKT exist?"},{"location":"learn/pkt/#how-does-pkt-expand-internet-access","text":"The PKT project presents an alternative approach to traditional internet service through mesh networking. First, PKT economically incentivizes individuals who have internet access to set up a PKT miner and contribute computer processing and bandwidth to secure the PKT blockchain. Similar to how Bitcoin miners earn BTC as they mine the Bitcoin, PKT miners earn PKT when they mine PKT. Since PKT mining requires bandwidth, this creates a general demand for bandwidth. Second, individuals with bandwidth can set up a cjdns node. Cjdns is the mesh networking protocol that enables the high speed data infrastructure for the PKT Network. As more people connect, this builds a decentralized, peer-to-peer network. Third, individuals can share mesh network internet access to the PKT Network. This internet access functions similar to a wifi access point. However, all connectivity is end-to-end encrypted. Wifi access point operators can choose to offer free access or paid access. The objective of the PKT Network is to decouple the physical aspect of deploying and maintaining internet infrastructure (such as overhead and undersea cables), from the business and technical aspects of internet service such as billing, network engineering, and support. This way anyone can safely and securely become an internet provider via mesh networking, thus expanding internet access worldwide. The fundamental value of dividing these internet service efforts is to empower everyday people to cover the cost of deploying and maintaining mesh network wifi access points. This ultimately lowers the cost of providing localized internet access and drives competition in the multi-trillion dollar annual internet industry. This can result in PKT\u2019s mission to get the next billion people online.","title":"How does PKT Expand Internet Access?"},{"location":"learn/pkt/#how-can-pkt-accomplish-its-goals","text":"Community projects can achieve the best results when focused on use cases, utility and community participation. When inspiring community participation, three core reasons people may take action: necessity they believe strongly they are being paid In the mission to extend internet access and expand the decentralized web, PKT economically incentivizes individuals to participate. Additionally, many contributors truly believe in the mission to connect the unconnected. Since PKT is a fully decentralized community project, like Bitcoin, everyone in the community is part of the project team. There is no central authority or centralized infrastructure. However, there are many businesses and contributors in the PKT ecosystem who are developing the [roadmap]. This fosters the decentralized nature of the project. Visit the Ecosystem page [here] to see a (non-exhaustive) list of the major projects and contributors.","title":"How can PKT Accomplish Its Goals?"},{"location":"learn/pkt/#how-does-the-pkt-blockchain-work","text":"PKT is the world\u2019s first and only bandwidth-hard proof-of-work blockchain. Anyone with internet access can install the mining software called PacketCrypt and start mining to earn PKT Cash. Just as Bitcoin introduced the dawn of a new era of digital money, PKT is introducing a new paradigm for how people can use their internet resources to expand internet accessibility. Click here to learn more about PacketCrypt.","title":"How does the PKT blockchain work?"},{"location":"learn/pkt/#how-can-i-set-up-a-miner","text":"For a tutorial on how to start mining PKT and earn PKT Cash, for this guide: [Intro to PKT Mining].","title":"How can I set up a miner?"},{"location":"learn/wpkt/","text":"What is WPKT? WPKT stands for wrapped PKT, thus the \"W\" in WPKT. WPKT exists on Binance Smart Chain blockchain. WPKT can only come into existence when someone sends PKT to the vault address, which converts the PKT into WPKT. As such, WPKT cannot be inflated since it has a 1-to-1 peg with PKT. Since there will only ever be 6 billion PKT in existence, there can never be more WPKT than the total amount of PKT in existence. WPKT is an BEP-20 token and is compatible with all platforms and wallets that accept and transact with the BEP-20 token standard. To learn how to swap PKT to WPK or visa versa, click [here].","title":"What is WPKT?"},{"location":"learn/wpkt/#what-is-wpkt","text":"WPKT stands for wrapped PKT, thus the \"W\" in WPKT. WPKT exists on Binance Smart Chain blockchain. WPKT can only come into existence when someone sends PKT to the vault address, which converts the PKT into WPKT. As such, WPKT cannot be inflated since it has a 1-to-1 peg with PKT. Since there will only ever be 6 billion PKT in existence, there can never be more WPKT than the total amount of PKT in existence. WPKT is an BEP-20 token and is compatible with all platforms and wallets that accept and transact with the BEP-20 token standard. To learn how to swap PKT to WPK or visa versa, click [here].","title":"What is WPKT?"},{"location":"mining/","text":"Mining PacketCrypt is a bandwidth hard proof of work , this means it requires lots of bandwidth to mine. Miners collaborate with one another by sending small messages (called Announcements ) and the sending of these messages requires a large amount of bandwidth . Miners who are working in collaboration with one another are members of a mining pool, therefore all mining of PacketCrypt is done in pools. PacketCrypt mining is split into two distinct stages: Announcement Mining - Using your CPU to create Announcements Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks Block mining is typically done at the mining pool's datacenter, however Announcement mining can be done from anywhere. How to Announcement mine There are a number of options available when it comes to installing the PacketCrpyt announcement miner. Choose whichever best suits your technical ability: 1. Install a Pre-built Binary Pre-built packetcrypt binaries (for linux) or installation packages (for macos) and archives (for windows) can be downloaded from packetcrypt releases page . For windows , download the zip archive suffixed with -windows.zip and extract its content. For macos , download the package suffixed with .pkg and click on its icon in the Finder for installation. For linux , download the binary suffixed with -linux_amd64 and rename it packetcrypt . If you're on Arch linux or Manjaro, you can install the packetcrypt AUR package 2. Deploy a Docker Image There is a PacketCrypt Docker image available, which can be used for announcement mining. To install: Download and install Docker for your operating system. Download the PacketCrypt Docker image: $ docker pull thomasjp0x42/packetcrypt There are also PacketCrypt Docker images built without the portable flag ( --no-portable ) which may increase the performance of the announcement mining while reducing CPU compatibility. One such image (compiled on AMD 5950x) is available at thomasjp0x42/packetcrypt-amd64 . Additionally, for ARM devices such as Raspberry Pi, there is an image available at thomasjp0x42/packetcrypt-arm64 . The arm64 image will also work on Apple silicon such as the M1 and M2 chips. Run the container similar to the commands described in the Begin Announcement Mining section, except replace this part of the command: $ packetcrypt with this command to run PacketCrypt from Docker: $ docker run thomasjp0x42/packetcrypt The final command will be formatted like this: $ docker run thomasjp0x42/packetcrypt ann -p More information can be found at the PacketCrypt DockerHub page 3. Build From Source Building from source will generally offer the best mining performance but requires more technical knowledge than the previous two options. First install rust if you haven't, see: rustup git clone https://github.com/cjdelisle/packetcrypt_rs cd packetcrypt_rs cargo build --release See the PacketCrypt GitHub repository for more detailed instructions. Begin Announcement Mining Important You cannot mine into the electrum wallet , You can only mine into the Command Line Wallet , the Pkt.World Wallet or the Mac GUI Wallet . To begin mining, you will need the address of your wallet and you will need to choose a pool. There are two ways to configure the announcement miner; by using CLI parameters or by using a configuration file: Using the CLI packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] [or for windows] packetcrypt.exe ann -p pool_1 [pool_2 pool_3 pool_4] Using a Configuration File A configuration file must be in JSON format. The file can be loaded from the local filesystem or from a web-accessible location. Any CLI parameters used will overide the corresponding settings in the configuration file. Example config.json: { \"payment_addr\": \" \", \"pools\": [ \"pool_1\", \"pool_2\", \"pool_3\", \"pool_4\" ] } packetcrypt ann -c \"./config.json\" [or] packetcrypt ann -c \"https://example.com/config.json\" [or for windows] packetcrypt.exe ann -c \"./config.json\" [or] packetcrypt.exe ann -c \"https://example.com/config.json\" Announcement mining can be done into a single pool or multiple pools. When you announcement mine into multiple pools, you will be paid by each pool that you submit announcements to. pool_1 is the pool running the highest difficulty. If you notice problems, you can test listing the pools in a different order. The number of pools you mine into is at your discretion. If a pool is down or malfunctioning you will notice the pool is not mining at [100%] in your mining feed and you can choose to remove the under-performing or malfunctioning pool. How to install a PKT miner on Mac Install the Zulu or CLI PKT Wallet from https://docs.pkt.cash Download the PacketCrypt.pkg for mac Open your Terminal Install Rust by entering in the command: $ curl --proto '=https' --tlsv1.2 -sSf * https://sh.rustup.rs | sh Press 1 to confirm Enter the command: $ sudo install make Enter the command: $ git clone https://github.com/cjdelisle/packetcrypt_rs Enter the command: $ cd packetcrypt_rs Enter the command: $ ~/.cargo/bin/cargo build --release Enter the command: $ ./target/release/packetcrypt ann -p [your PKT Wallet Address] [pool 1] [pool 2] [pool 3] [pool 4] Choosing Pools to mine in You can mine in as many pools as you have the bandwidth to supply. The same data will be uploaded so your CPU is only used once. Currently the pools which are regularly winning blocks include: Pkteer: http://pool.pkteer.com PKTPool: http://pool.pktpool.io PktWorld: http://pool.pkt.world Zetahash (f.k.a. Srizbi): https://stratum.zetahash.com In general the recommendation is to list the pool with highest difficulty in the first position to ensure your announcements will be accepted, as the standardized policy is to accept announcements of a higher difficulty for pools with a lower base difficulty. In some cases the rewards might vary depending on the pool order regardless of difficulty, subject to custom policies implemented by the respective pools. (Check the relevant channels on Discord for current pool statuses) You should test your daily earnings on each pool to see which one is best. Your mining revenue depends on how much each pool allocates towards announcement miners as well as how much hardware they are using in-house. The pools are winning different blocks and if you mine to just one pool, you're not getting any payment from the others when they win a block. It's the same with mining to a pool that is not winning any blocks. Limiting System Resource Usage Limiting the system resources available to Packetcrypt may negatively effect your mining power but can be useful to conserve resources for other processess. Limit CPU Usage Announcement mining is a resource intensive process. By default, Packetcrypt will use 100% of the available CPU resources. CPU usage can be limited by assigning a limited number of threads to packetcrypt using the -t CLI parameter or \"threads\" key if using a configuration file. Example of assigning four (4) threads to Packetcrypt: packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] -t 4 or { \"threads\" 4 } Limit Bandwidth Usage Bandwidth usage is directly related to two main factors: 1 - Mining difficulty of the primary pool (the first pool listed in Packetcrypt pool configuration) A lower difficulty means higher bandwidth usage 2 - The number of pools mined Packetcrypt will send the same Announcements to each pool mined Bandwidth usage can therefore be limited by selecting a higher difficulty pool as the primary pool and/or by mining to fewer pools. Block Mining & Running a Pool Because each block miner must use as much bandwidth as all of the announcement miners combined , block mining is typically done at the location of the pool. Even a pool operator who wanted to support external block mining would find that the pool itself would need enough upload bandwidth to match all of the block miners - which would be completely untenable. If you are interested in block mining, contact the pool operator and discuss sending hardware to their location. Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (one or more) - These are high performance nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (one or more) - These nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if Paymaker (1) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners PacketCrypt Data Flow \u2588 Orange: Announcements are sent from the Announcement miners to the Ann Handlers and then to the Block miners \u2588 Blue: Block shares are sent from block miners to Block Handler(s) \u2588 Purple: Winning blocks are submitted by the Block Handler(s) to pktd and the PKT network \u2588 Pink: Block Handlers and Ann Handlers inform Paymaker of work done by announcement and block miners \u2588 Green: Paymaker configures pktd instance to create blocks which pay the people who have been mining \u2588 Brown: Master gets block templates from pktd instance Black dotted line: All nodes request configuration and block templates from Master node More Information and PacketCrypt Pool Code The code and documentation for running a pool is available on the C / nodejs version of the PacketCrypt project, the new Rust version only contains Announcement Miner and Announcement Handlers. Announcement Difficulty PacketCrypt is designed in such a way that a mining pool can double its effective power by: Doubling the total block mining computation effort Doubling the total announcement mining computation effort, or Doubling the amount of bandwidth between announcement miners and the pool The way that a pool operator limits the amount of bandwidth flowing into the pool, to prevent overloading of the network, is by setting what is known as the announcement difficulty . The announcement difficulty for a pool specifies how much work must be done on an announcement in order for the announcement to be accepted and paid out by the pool. Announcement difficulty serves to slow down the announcement miners to protect the pool's network. In general, doubling the announcement difficulty will halve the amount of bandwidth used by the pool and will also halve the pool's overall mining power, with a limit that setting the announcement difficulty lower than 2 does not bring any additional value. To explain why it works like this, we need to examine the PacketCrypt algorithm rules and the in particular how the block mining software decides which announcements to use when attempting to mine a block. Announcement Set Selection PacketCrypt algorithm allows block miners to perform less work if they are able to prove that they had a certain number of \"high value\" announcements in memory at the time of mining, the exact ratio of actual work a block miner must do to the amount of work the PKT blockchain requires is called the power multipler . For a block miner seeking to optimize their power multiplier, every announcement has a particular level of utility value which is based on the amount of work that was done by the announcement miner (announcement difficulty) and how old the announcement is. We call this the effective difficulty . The effective difficulty of an announcement starts off as the actual difficulty of the work done to mine it and then decreases by half every block-period until it is less than 1 and the announcement is no longer usable for mining. The block mining software selects a subset of announcements which which will give it the best power multiplier based on the PacketCrypt algorithm: power_multiplier = min(effective_difficulty) * ann_count ** 2 The min(effective_difficulty) is the effective difficulty of the \"least valuable\" announcement that is being mined with. Lets assume that announcement miners are providing a steady supply of 1000 announcements per block-period and all announcements have an initial announcement difficulty of 128. The block mining software can choose to mine with 1000 announcements at 128 effective difficulty, or with 2000 announcements at 64 effective difficulty, or with 3000 announcements at 32 effective difficulty and so on. The best choice is to use the previous three block periods which provides a power multiplier that is 225% higher than that of using just the most recent 1 period worth of announcements. This curve is the same no matter what difficulty we are starting with. Optimal Difficulty Curve Knowing that the optimal announcement set is all of those announcements mined over the past 3 block periods, we can compute the overall power of a pool as the announcement difficulty is raised. At announcement difficulty 1, announcements cannot be used for more than 1 block, but if we imagine that the announcement mining community can produce 1000 announcements per block at difficulty 1 then we can reason that the power multiplier will be 1000 ** 2 or 1 million. At difficulty 2 we can expect the announcement miners will produce 500 announcements per block period but since 2 block periods can be used, the power multiplier is the same. At difficulty 4, the announcement miners will produce 250 announcements per block period and they will be valid for 3 block periods making the power multiplier 750 ** 2 or 562,500. From here, the power output of the power multiplier of the optimal announcement set halves for each doubling of the announcement difficulty, making the optimal difficulty 2 . FAQ for ANN Miners What does overflow mean? When the ann handler receives an announcement, it puts it into a queue, when the queue fills up it responds overflow immediately. The queue can become long, so you may receive \"operation timed out\" you're still being paid, when you receive \"overflow\" you are not being paid. Unfortunately, you may also receive \"operation timed out\" because the handler is unresponsive, it's not obvious which is the reason from looking at the logs. For example, what you will see in the AnnMiner Logs: 1618394538 INFO annmine.rs:519 467 Ke/s 28.56Mb/s overflow: [0, 0, 3072, 0] uploading: [0, 0, 17632, 0] accept/reject: [26932/0, 0/0, 4856/0, 796/0] - goodrate: [100%, 100%, 61%, 100%] 467 Ke/s 467 kilo-encryptions (thousands of encryptions) per second of mining power. 28.56Mb/s Total upload bandwidth (to all pools - combined) overflow: [0, 0, 3072, 0] Overflowed the internal queue of the ann miner, before it was even able to upload to the pool, one number for each pool you're mining to. 3072 Number of anns which are not uploaded to pool #3. uploading [0, 0, 17632, 0] Number of anns currently in-flight in active http requests, again 3rd pool is a problem, others are doing well (in this example). accept/reject [26932/0, 0/0, 4856/0, 796/0] Anns accepted/rejected by each pool, these numbers are based on the previous 10 seconds, pool #2 is giving a zero accepted which might be an issue, keep watching the next message 10 seconds later for another update. goodrate [100%, 100%, 61%, 100%] Goodrate = number of anns accepted divided by number of anns produced.","title":"Mining"},{"location":"mining/#mining","text":"PacketCrypt is a bandwidth hard proof of work , this means it requires lots of bandwidth to mine. Miners collaborate with one another by sending small messages (called Announcements ) and the sending of these messages requires a large amount of bandwidth . Miners who are working in collaboration with one another are members of a mining pool, therefore all mining of PacketCrypt is done in pools. PacketCrypt mining is split into two distinct stages: Announcement Mining - Using your CPU to create Announcements Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks Block mining is typically done at the mining pool's datacenter, however Announcement mining can be done from anywhere.","title":"Mining"},{"location":"mining/#how-to-announcement-mine","text":"There are a number of options available when it comes to installing the PacketCrpyt announcement miner. Choose whichever best suits your technical ability:","title":"How to Announcement mine"},{"location":"mining/#1-install-a-pre-built-binary","text":"Pre-built packetcrypt binaries (for linux) or installation packages (for macos) and archives (for windows) can be downloaded from packetcrypt releases page . For windows , download the zip archive suffixed with -windows.zip and extract its content. For macos , download the package suffixed with .pkg and click on its icon in the Finder for installation. For linux , download the binary suffixed with -linux_amd64 and rename it packetcrypt . If you're on Arch linux or Manjaro, you can install the packetcrypt AUR package","title":"1. Install a Pre-built Binary"},{"location":"mining/#2-deploy-a-docker-image","text":"There is a PacketCrypt Docker image available, which can be used for announcement mining. To install: Download and install Docker for your operating system. Download the PacketCrypt Docker image: $ docker pull thomasjp0x42/packetcrypt There are also PacketCrypt Docker images built without the portable flag ( --no-portable ) which may increase the performance of the announcement mining while reducing CPU compatibility. One such image (compiled on AMD 5950x) is available at thomasjp0x42/packetcrypt-amd64 . Additionally, for ARM devices such as Raspberry Pi, there is an image available at thomasjp0x42/packetcrypt-arm64 . The arm64 image will also work on Apple silicon such as the M1 and M2 chips. Run the container similar to the commands described in the Begin Announcement Mining section, except replace this part of the command: $ packetcrypt with this command to run PacketCrypt from Docker: $ docker run thomasjp0x42/packetcrypt The final command will be formatted like this: $ docker run thomasjp0x42/packetcrypt ann -p More information can be found at the PacketCrypt DockerHub page","title":"2. Deploy a Docker Image"},{"location":"mining/#3-build-from-source","text":"Building from source will generally offer the best mining performance but requires more technical knowledge than the previous two options. First install rust if you haven't, see: rustup git clone https://github.com/cjdelisle/packetcrypt_rs cd packetcrypt_rs cargo build --release See the PacketCrypt GitHub repository for more detailed instructions.","title":"3. Build From Source"},{"location":"mining/#begin-announcement-mining","text":"Important You cannot mine into the electrum wallet , You can only mine into the Command Line Wallet , the Pkt.World Wallet or the Mac GUI Wallet . To begin mining, you will need the address of your wallet and you will need to choose a pool. There are two ways to configure the announcement miner; by using CLI parameters or by using a configuration file: Using the CLI packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] [or for windows] packetcrypt.exe ann -p pool_1 [pool_2 pool_3 pool_4] Using a Configuration File A configuration file must be in JSON format. The file can be loaded from the local filesystem or from a web-accessible location. Any CLI parameters used will overide the corresponding settings in the configuration file. Example config.json: { \"payment_addr\": \" \", \"pools\": [ \"pool_1\", \"pool_2\", \"pool_3\", \"pool_4\" ] } packetcrypt ann -c \"./config.json\" [or] packetcrypt ann -c \"https://example.com/config.json\" [or for windows] packetcrypt.exe ann -c \"./config.json\" [or] packetcrypt.exe ann -c \"https://example.com/config.json\" Announcement mining can be done into a single pool or multiple pools. When you announcement mine into multiple pools, you will be paid by each pool that you submit announcements to. pool_1 is the pool running the highest difficulty. If you notice problems, you can test listing the pools in a different order. The number of pools you mine into is at your discretion. If a pool is down or malfunctioning you will notice the pool is not mining at [100%] in your mining feed and you can choose to remove the under-performing or malfunctioning pool.","title":"Begin Announcement Mining"},{"location":"mining/#how-to-install-a-pkt-miner-on-mac","text":"Install the Zulu or CLI PKT Wallet from https://docs.pkt.cash Download the PacketCrypt.pkg for mac Open your Terminal Install Rust by entering in the command: $ curl --proto '=https' --tlsv1.2 -sSf * https://sh.rustup.rs | sh Press 1 to confirm Enter the command: $ sudo install make Enter the command: $ git clone https://github.com/cjdelisle/packetcrypt_rs Enter the command: $ cd packetcrypt_rs Enter the command: $ ~/.cargo/bin/cargo build --release Enter the command: $ ./target/release/packetcrypt ann -p [your PKT Wallet Address] [pool 1] [pool 2] [pool 3] [pool 4]","title":"How to install a PKT miner on Mac"},{"location":"mining/#choosing-pools-to-mine-in","text":"You can mine in as many pools as you have the bandwidth to supply. The same data will be uploaded so your CPU is only used once. Currently the pools which are regularly winning blocks include: Pkteer: http://pool.pkteer.com PKTPool: http://pool.pktpool.io PktWorld: http://pool.pkt.world Zetahash (f.k.a. Srizbi): https://stratum.zetahash.com In general the recommendation is to list the pool with highest difficulty in the first position to ensure your announcements will be accepted, as the standardized policy is to accept announcements of a higher difficulty for pools with a lower base difficulty. In some cases the rewards might vary depending on the pool order regardless of difficulty, subject to custom policies implemented by the respective pools. (Check the relevant channels on Discord for current pool statuses) You should test your daily earnings on each pool to see which one is best. Your mining revenue depends on how much each pool allocates towards announcement miners as well as how much hardware they are using in-house. The pools are winning different blocks and if you mine to just one pool, you're not getting any payment from the others when they win a block. It's the same with mining to a pool that is not winning any blocks.","title":"Choosing Pools to mine in"},{"location":"mining/#limiting-system-resource-usage","text":"Limiting the system resources available to Packetcrypt may negatively effect your mining power but can be useful to conserve resources for other processess.","title":"Limiting System Resource Usage"},{"location":"mining/#limit-cpu-usage","text":"Announcement mining is a resource intensive process. By default, Packetcrypt will use 100% of the available CPU resources. CPU usage can be limited by assigning a limited number of threads to packetcrypt using the -t CLI parameter or \"threads\" key if using a configuration file. Example of assigning four (4) threads to Packetcrypt: packetcrypt ann -p pool_1 [pool_2 pool_3 pool_4] -t 4 or { \"threads\" 4 }","title":"Limit CPU Usage"},{"location":"mining/#limit-bandwidth-usage","text":"Bandwidth usage is directly related to two main factors: 1 - Mining difficulty of the primary pool (the first pool listed in Packetcrypt pool configuration) A lower difficulty means higher bandwidth usage 2 - The number of pools mined Packetcrypt will send the same Announcements to each pool mined Bandwidth usage can therefore be limited by selecting a higher difficulty pool as the primary pool and/or by mining to fewer pools.","title":"Limit Bandwidth Usage"},{"location":"mining/#block-mining-running-a-pool","text":"Because each block miner must use as much bandwidth as all of the announcement miners combined , block mining is typically done at the location of the pool. Even a pool operator who wanted to support external block mining would find that the pool itself would need enough upload bandwidth to match all of the block miners - which would be completely untenable. If you are interested in block mining, contact the pool operator and discuss sending hardware to their location. Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (one or more) - These are high performance nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (one or more) - These nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if Paymaker (1) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners","title":"Block Mining & Running a Pool"},{"location":"mining/#packetcrypt-data-flow","text":"\u2588 Orange: Announcements are sent from the Announcement miners to the Ann Handlers and then to the Block miners \u2588 Blue: Block shares are sent from block miners to Block Handler(s) \u2588 Purple: Winning blocks are submitted by the Block Handler(s) to pktd and the PKT network \u2588 Pink: Block Handlers and Ann Handlers inform Paymaker of work done by announcement and block miners \u2588 Green: Paymaker configures pktd instance to create blocks which pay the people who have been mining \u2588 Brown: Master gets block templates from pktd instance Black dotted line: All nodes request configuration and block templates from Master node","title":"PacketCrypt Data Flow"},{"location":"mining/#more-information-and-packetcrypt-pool-code","text":"The code and documentation for running a pool is available on the C / nodejs version of the PacketCrypt project, the new Rust version only contains Announcement Miner and Announcement Handlers.","title":"More Information and PacketCrypt Pool Code"},{"location":"mining/#announcement-difficulty","text":"PacketCrypt is designed in such a way that a mining pool can double its effective power by: Doubling the total block mining computation effort Doubling the total announcement mining computation effort, or Doubling the amount of bandwidth between announcement miners and the pool The way that a pool operator limits the amount of bandwidth flowing into the pool, to prevent overloading of the network, is by setting what is known as the announcement difficulty . The announcement difficulty for a pool specifies how much work must be done on an announcement in order for the announcement to be accepted and paid out by the pool. Announcement difficulty serves to slow down the announcement miners to protect the pool's network. In general, doubling the announcement difficulty will halve the amount of bandwidth used by the pool and will also halve the pool's overall mining power, with a limit that setting the announcement difficulty lower than 2 does not bring any additional value. To explain why it works like this, we need to examine the PacketCrypt algorithm rules and the in particular how the block mining software decides which announcements to use when attempting to mine a block.","title":"Announcement Difficulty"},{"location":"mining/#announcement-set-selection","text":"PacketCrypt algorithm allows block miners to perform less work if they are able to prove that they had a certain number of \"high value\" announcements in memory at the time of mining, the exact ratio of actual work a block miner must do to the amount of work the PKT blockchain requires is called the power multipler . For a block miner seeking to optimize their power multiplier, every announcement has a particular level of utility value which is based on the amount of work that was done by the announcement miner (announcement difficulty) and how old the announcement is. We call this the effective difficulty . The effective difficulty of an announcement starts off as the actual difficulty of the work done to mine it and then decreases by half every block-period until it is less than 1 and the announcement is no longer usable for mining. The block mining software selects a subset of announcements which which will give it the best power multiplier based on the PacketCrypt algorithm: power_multiplier = min(effective_difficulty) * ann_count ** 2 The min(effective_difficulty) is the effective difficulty of the \"least valuable\" announcement that is being mined with. Lets assume that announcement miners are providing a steady supply of 1000 announcements per block-period and all announcements have an initial announcement difficulty of 128. The block mining software can choose to mine with 1000 announcements at 128 effective difficulty, or with 2000 announcements at 64 effective difficulty, or with 3000 announcements at 32 effective difficulty and so on. The best choice is to use the previous three block periods which provides a power multiplier that is 225% higher than that of using just the most recent 1 period worth of announcements. This curve is the same no matter what difficulty we are starting with.","title":"Announcement Set Selection"},{"location":"mining/#optimal-difficulty-curve","text":"Knowing that the optimal announcement set is all of those announcements mined over the past 3 block periods, we can compute the overall power of a pool as the announcement difficulty is raised. At announcement difficulty 1, announcements cannot be used for more than 1 block, but if we imagine that the announcement mining community can produce 1000 announcements per block at difficulty 1 then we can reason that the power multiplier will be 1000 ** 2 or 1 million. At difficulty 2 we can expect the announcement miners will produce 500 announcements per block period but since 2 block periods can be used, the power multiplier is the same. At difficulty 4, the announcement miners will produce 250 announcements per block period and they will be valid for 3 block periods making the power multiplier 750 ** 2 or 562,500. From here, the power output of the power multiplier of the optimal announcement set halves for each doubling of the announcement difficulty, making the optimal difficulty 2 .","title":"Optimal Difficulty Curve"},{"location":"mining/#faq-for-ann-miners","text":"","title":"FAQ for ANN Miners"},{"location":"mining/#what-does-overflow-mean","text":"When the ann handler receives an announcement, it puts it into a queue, when the queue fills up it responds overflow immediately. The queue can become long, so you may receive \"operation timed out\" you're still being paid, when you receive \"overflow\" you are not being paid. Unfortunately, you may also receive \"operation timed out\" because the handler is unresponsive, it's not obvious which is the reason from looking at the logs. For example, what you will see in the AnnMiner Logs: 1618394538 INFO annmine.rs:519 467 Ke/s 28.56Mb/s overflow: [0, 0, 3072, 0] uploading: [0, 0, 17632, 0] accept/reject: [26932/0, 0/0, 4856/0, 796/0] - goodrate: [100%, 100%, 61%, 100%] 467 Ke/s 467 kilo-encryptions (thousands of encryptions) per second of mining power. 28.56Mb/s Total upload bandwidth (to all pools - combined) overflow: [0, 0, 3072, 0] Overflowed the internal queue of the ann miner, before it was even able to upload to the pool, one number for each pool you're mining to. 3072 Number of anns which are not uploaded to pool #3. uploading [0, 0, 17632, 0] Number of anns currently in-flight in active http requests, again 3rd pool is a problem, others are doing well (in this example). accept/reject [26932/0, 0/0, 4856/0, 796/0] Anns accepted/rejected by each pool, these numbers are based on the previous 10 seconds, pool #2 is giving a zero accepted which might be an issue, keep watching the next message 10 seconds later for another update. goodrate [100%, 100%, 61%, 100%] Goodrate = number of anns accepted divided by number of anns produced.","title":"What does overflow mean?"},{"location":"mining/pool_setup_guide/","text":"Setting up a Pool Expectations General knowledge of Linux General knowledge of git General knowledge of networking General knowledge of blockchain Access to at least 6 machines running Ubuntu 18.04 LTS or 20.04 LTS , to deploy the following services. Machine 1 : PKT node Machine 2 : Master, Paymaker & Blkhander Machine 3 : AnnHandler Machine 4 : AnnHandler Machine 5 : BlkMiner Machine 6 : BlkMiner Note: It can be done all on a single machine, you just need to pay attention to ports etc. As of June 2022, the network difficulty is high, and given that half of the work is done at pool premises, it's recommended to run at least a dozen BlkMiner machines, with a significant (768GB recommended) ammount of RAM. Block mining & running a pool Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (two or more) - These are nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (two or more) - These high performance nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if they validate the share Paymaker (one) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners General Information Repository Information: The following repositories hold the required programs to run a pool: Repository Tools packetcrypt_rs: https://github.com/cjdelisle/packetcrypt_rs AnnHandler, Blkminer, AnnMiner PacketCrypt: https://github.com/cjdelisle/PacketCrypt/ Master, Paymaker, BlkHandler pktd: https://github.com/pkt-cash/pktd pktd Assumed network Ranges: In this guide we have two separate networks, the public network (198.51.100.0/24), and local network (10.0.16.0/24) to connect AnnHandlers and BlkMiner. Machine Public Network IP Private Network IP Machine 1 198.51.100.1 10.0.16.1 Machine 2 198.51.100.2 10.0.16.2 Machine 3 198.51.100.3 10.0.16.3 Machine 4 198.51.100.4 10.0.16.4 Machine 5 X 10.0.16.5 Machine 6 X 10.0.16.6 Assumed Port Ranges: Service Machine Port/Port Ranges Master Machine 2 8080 Paymaker Machine 2 8081 BlkHandlers Machine 2 8100-8200 AnnHandlers Machine 3 & 4 80 Installation Machine 1 PKTD node: 150GB of storage is required at a minimum to run the pktd node. Recommended size is around 250GB of NVMe storage. Install Golang sudo add-apt-repository ppa:longsleep/golang-backports sudo apt update sudo apt install golang-go Install git sudo apt install git Install the pktd node git clone --branch develop https://github.com/pkt-cash/pktd cd pktd ./do The output should show the following: Everything looks good - use ./bin/pktd to launch Machine 2 Master | Paymaker | BlkHandler: Install the required tools: cd ~ sudo add-apt-repository universe sudo apt install git sudo apt install make sudo apt install npm sudo npm cache clean -f sudo npm install -g n sudo n stable Restart your shell ### Add here how to get latest stable version of node Clone the source code: git clone --branch master https://github.com/cjdelisle/PacketCrypt Build the PacketCrypt code cd PacketCrypt npm install Machine 4 - 6 BlkMiner | AnnHandler | AnnMiner: Install the Required tools: sudo apt install gcc git sudo apt install curl curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh Clone packetcrypt_rs git clone --branch develop https://github.com/cjdelisle/packetcrypt_rs Compile PacketCrypt cd packetcrypt_rs ~/.cargo/bin/cargo build --release --features jemalloc Config of pool.js Information: pool.js is located at: ~/PacketCrypt/pool.example.js You need to edit this file, then run: cp ~/PacketCrypt/pool.example.js ~/PacketCrypt/pool.js config.privateSeed Signing of announcements is rarely used, it breaks people mining into multiple pools, and you should set it to null unless \"you know what you're doing\" This seed is used for deriving keys which will be used for signing announcements. Setting this value to an alphanumeric value e.g oHk8TXpbtRRZGtaYYMnIFAzYMrVh6vA8XzKWWXcKbzCThuFLIJ234bHN5peddQFzR2TtQyo58gcFRP7bKg9BeXZirSqp9gVpjBWp In general, this value should be set to the null, as signing announcements is rarely used, and breaks Announcement mining with multiple pools if you have your pool externally accessable, and should only be set if you have a strong understanding and knowledge of what you are doing. config.privateSeed = null If you aren't bothered by, or don't require your announcements to be signed . config.paymakerHttpPasswd Anyone who has this password can make http posts to the paymaker (claim that shares were won) You should make this random and also firewall the paymaker from the public. The upload will be done using Authorization Basic with a username of \"x\" and this as the password config.paymakerHttpPasswd = 'anyone with this password can post results to the paymaker'; You can put the paymaker behind an http proxy if you wish. config.masterUrl This is used by the paymaker and block handler when running them with pool.js, it is used to resolve where the master is. You can either set this as a locally host or put your master behind a nginx proxy config.masterUrl = 'http://localhost:8080'; or if you have your instance public, and you want to have it be resolvable publically, replace the url with your own. config.masterUrl = 'http://pool.pktpool.io'; config.rpc The username and password set here, should be the same username and password used at the end of this guide for when you configure the pktd service. user: 'x', pass: 'x', config.annHandlers Information: config.annHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. As the AnnHandler will be run on the same machine as the BlkMiner you need to make sure there are no over-lapping port bindings. If you plan to allow external AnnMiners (AnnMiners not on your LAN to mine against your pool, the url's placed in the AnnHandlers list, should be externally resolvable. The address that is advertized for accessing this ann handler (external address) If running locally use: url: 'http://10.0.16.3:8081','http://10.0.16.4:8081' If allowing external annminers use a resolved address such as: url: 'http://ann1.pktpool.io','http://ann2.pktpool.io' Replace the url with your own. config.blkHandlers Information: config.blkHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. BlockHandlers are low-effort high-volume single-threaded workers. What address should be advertized for accessing this BlkHander, again make sure there are no overlapping ports. If you are wanting to support external blockminers, this address should be externally resolvable url: 'http://localhost:8100', This is the port that the blkHandler will bind to. port: 8082, This is the host that the blkHandler will bind to. host: '::', This is how many requests a blkHandler can queue before the handler starts rejecting requests maxConnections: 50, root: config config.master Which port to run the master on port: 8080, What address to bind to, set to localhost if proxying host: '::', Minimum work for an announcement. This number is effectively a bandwidth divisor, every time you double this number you will reduce your bandwidth by a factor of two. annMinWork: Util.annWorkToTarget(128), Average number of shares per block, reducing this number will reduce load on your block handlers, but increasing it will allow payment to be spread more evenly between block miners. This wants to be set to a higher number than one, for the purpose of constantly testing that the block miners are making valid shares. You may have a block miner sitting for hours without a share and then when it wins one, it can become invalid because of misconfiguration shareWorkDivisor: 4, Which versions of announcements we will accept annVersions: [1], Request that ann miners mine announcements that are this many blocks old. Announcements contain a commitment of the most recent block hash but they need 3 blocks to \"mature\" before they can be used The point of this is so that PacketCrypt is about bandwidth, not latency. But there is a risk: If there is a surge then you are going to be starved for announcements When you are starved, you will have few usable anns which causes a slow-down in mining and the announcements which are being submitted are not usable. When you win a few blocks, those announcements become usable and you surge, which causes you to go back into starvation again. This should be set to either: 0 Which means the announcements you are receiving are used instantly 3 Which means you are waiting for the announcements to mature before using them. If running your own AnnMiners, it is advisable to set this to 0, and add the --mineold 3 to some of your AnnMiner startups on the CLI. This helps to keep a balance between keeping your pool as powerful as possible, along with having AnnMiners to help out in the case of a starvation mineOldAnns: 0, config.payMaker How the miners should access the paymaker (external address), replace the url with your own. url: 'pool.pktpool.io', Which port to run the paymaker on port: 8081, What address to bind to, set to localhost if proxying host: '::', Seconds between sending updates to pktd. If this set to zero, the payMaker will accept log uploads but will not send any changes of payout data to pktd. updateCycle: 120, updateCycle: 0 to disable How many seconds backward to keep history in memory historyDepth: 60 * 60 * 24 * 30, Maximum number of simultanious connections to accept before sending 500 errors maxConnections: 200, annCompressor Store data in 1 minute aggregations timespanMs: 1000 * 60, Allow data to be submitted to any of the last 10 aggregations slotsToKeepEvents: 10, What fraction of the payout to pay to block miners (the rest will be paid to ann miners) ( Pay per last N shares ) blockPayoutFraction: 0.5, What percent of the total winnings should be taken for pool management poolFee: 0.40, The address which should be paid the pool fee poolFeeAddress: \"pkt1qyc9dkhca7uc84zn3vlgd0h0fxr3twwn34qgeqe\", This constant will affect how far back into history we pay our announcement miners ( Pay per last N shares ) pplnsAnnConstantX: 0.125, This constant will affect how far back into history we pay our block miners ( Pay per last N shares ) pplnsBlkConstantX: 2, When there are not enough shares to fairly spread out the winnings, pay what is left over to this address. defaultAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\", When something goes wrong, direct pktd to send all coins here, if this is different from the defaultAddress then it is possible to account for and pay out to the miners later when the problem is fixed. errorAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\", Config of pool.toml Information: - pool.example.toml is located at: ~/packetcrypt_rs/pool.example.toml - You need to edit this file, then run: ~/packetcrypt_rs/pool.example.toml ~/packetcrypt_rs/pool.toml Password used by your paymaker to post logs for payment, the same as config.paymakerHttpPasswd paymaker_http_password = \"you'll want this to be a secret\" URL of the pool master, used for getting configuration and work, the same as: Replace the url with your own. master_url = \"http://pool.pktpool.io\" ann_handler.ah* You can have multiple ann_handlers, you can do this by defining each one such as: [ann_handler.ah0] \"parameters\" [ann_handler.ah1] \"parameters\" These can all be in a single file to be used by each annhandler, when starting the annhandlers, you would start them with on each respective machine: packetcrypt ah --config /path/to/config.toml ah0 packetcrypt ah --config /path/to/config.toml ah1 Number of threads to dedicate to the AnnHandler num_workers = 8 Length of the input queue, keeping this low will create back-pressure and prevent miners from posting too many announcements when the server is in fact overloaded input_queue_len = 256 The public url of the annhandler, this should match what is set in your pool.js Replace the url with your own. public_url = \"http://ann1.pktpool.io/submit\" Bind to this port bind_port = \"198.51.100.3:80\" Bind this port to the sprayer component bind_pvt = \"10.0.16.3:6666\" Set sprayer spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 For Machine 3 you should end up with something like this [ann_handler.ah0] block_miner_passwd = \"no one steals my anns\" skip_check_chance = 0 num_workers = 8 input_queue_len = 512 public_url = \"http://ann1.pktpool.io/submit\" bind_pub = \"198.51.100.3:80\" bind_pvt = \"10.0.16.3:6666\" spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 subscribe_to = [] files_to_keep = 512 The same logic should be followed for Machine 4 and other handlers you may have. NOTE: To bind low ports with non-root user run: sudo setcap CAP_NET_BIND_SERVICE=+eip $(which packetcrypt) Running Manually Machine 1 Information: These tasks need to be run in the order they are presented PKTD needs to have downloaded the full chain first, you will know when the node is upto date when height is equal to the current block on the explorer It can take 12+ hours to fully sync to the current block height PKTD --rpcuser and --rpcpass should match the values set in pool.js under config.rpc ./pktd/bin/pktd --rpcuser=XXX --rpcpass=XXX --miningaddr Machine 2 Master node ./pool.js --master Paymaker node ./pool.js --payMaker BlkHandler(s) Launch the BlkHandler nodes, specify --blk0 for the first BlkHandler , --blk1 for the second, and so forth cd PacketCrypt node ./pool.js --blk0 node ./pool.js --blk1 Machine 3 AnnHandler cd packetcrypt_rs ./target/release/packetcrypt ah --config /path/to/pool.toml ah0 Machine 4 AnnHandler cd packetcrypt_rs ./targer/release/packetcrypt ah --config /path/to/pool.toml ah1 Machine 5 and 6 BlkMiner --threads is the number of threads you want to dedicate to the Blkminer, the default is to use all available threads. --paymentaddr is the wallet you want your coins to be mined into, it is advisable to not use the electrum wallet for this. --memorysizemb is how much RAM you are allocating to block mining, Ideally you want to set as much as you can. is the masterUrl of your pool cd packetcrypt_rs ./target/release/packetcrypt blk --paymentaddr --threads 80 --memorysizemb 665000 --handlerpass NoOneStealsMyAnns --subscribe 10.0.16.3:6666 --bind 0.0.0.0:6667 --mcast 239.0.1.1 NGINX Setup (For allowing external AnnMining) Machine 2 Update system and install Nginx sudo apt update sudo apt install nginx Unlink default nginx site unlink /etc/nginx/sites-enabled/default cd /etc/nginx/sites-available Create and edit the reverse-proxy.conf file vim reverse-proxy.conf The config for the services: server { listen 80; listen [::]:80; server_name ; location / { proxy_pass http://localhost:8080/; } } server { listen 80; listen [::]:80; server_name paymaker.pktpool.io; location / { proxy_pass http://localhost:8081/; } } Link new file to sites-enabled ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf Remove default config rm default Check reverse proxy config is correct nginx -t Reload nginx to pick up config changes. sudo systemctl reload nginx","title":"Setting up a Pool"},{"location":"mining/pool_setup_guide/#setting-up-a-pool","text":"","title":"Setting up a Pool"},{"location":"mining/pool_setup_guide/#expectations","text":"General knowledge of Linux General knowledge of git General knowledge of networking General knowledge of blockchain Access to at least 6 machines running Ubuntu 18.04 LTS or 20.04 LTS , to deploy the following services. Machine 1 : PKT node Machine 2 : Master, Paymaker & Blkhander Machine 3 : AnnHandler Machine 4 : AnnHandler Machine 5 : BlkMiner Machine 6 : BlkMiner Note: It can be done all on a single machine, you just need to pay attention to ports etc. As of June 2022, the network difficulty is high, and given that half of the work is done at pool premises, it's recommended to run at least a dozen BlkMiner machines, with a significant (768GB recommended) ammount of RAM.","title":"Expectations"},{"location":"mining/pool_setup_guide/#block-mining-running-a-pool","text":"Starting your own pool requires setting up a number of services: pktd node (one or more) - One pktd instance is required for the Master to function, each of the Block Handlers may optionally use separate pktd nodes. Master (one) - This node coordinates all of the others and provides work files and configuration Ann Handler (two or more) - These are nodes which accept announcements from the announcement miners in the network, they also provide announcements to the block miners. As you scale up the amount of bandwidth in the pool, you will need to add more Ann handlers. Block Miner (two or more) - These high performance nodes download announcements from the announcement handlers and use them in the mining process to mine blocks. Block Handlers (one or more) - These nodes receive \"block shares\" from the block miners and submit blocks if they validate the share Paymaker (one) - This node receives updates from the Ann Handlers and Block Handlers and keeps track of who should be paid. The Paymaker sends configuration to the pktd node which is used by the Master in order to make the pool pay out the announcement and block miners","title":"Block mining & running a pool"},{"location":"mining/pool_setup_guide/#general-information","text":"","title":"General Information"},{"location":"mining/pool_setup_guide/#repository-information","text":"The following repositories hold the required programs to run a pool: Repository Tools packetcrypt_rs: https://github.com/cjdelisle/packetcrypt_rs AnnHandler, Blkminer, AnnMiner PacketCrypt: https://github.com/cjdelisle/PacketCrypt/ Master, Paymaker, BlkHandler pktd: https://github.com/pkt-cash/pktd pktd","title":"Repository Information:"},{"location":"mining/pool_setup_guide/#assumed-network-ranges","text":"In this guide we have two separate networks, the public network (198.51.100.0/24), and local network (10.0.16.0/24) to connect AnnHandlers and BlkMiner. Machine Public Network IP Private Network IP Machine 1 198.51.100.1 10.0.16.1 Machine 2 198.51.100.2 10.0.16.2 Machine 3 198.51.100.3 10.0.16.3 Machine 4 198.51.100.4 10.0.16.4 Machine 5 X 10.0.16.5 Machine 6 X 10.0.16.6","title":"Assumed network Ranges:"},{"location":"mining/pool_setup_guide/#assumed-port-ranges","text":"Service Machine Port/Port Ranges Master Machine 2 8080 Paymaker Machine 2 8081 BlkHandlers Machine 2 8100-8200 AnnHandlers Machine 3 & 4 80","title":"Assumed Port Ranges:"},{"location":"mining/pool_setup_guide/#installation","text":"","title":"Installation"},{"location":"mining/pool_setup_guide/#machine-1","text":"","title":"Machine 1"},{"location":"mining/pool_setup_guide/#pktd-node","text":"150GB of storage is required at a minimum to run the pktd node. Recommended size is around 250GB of NVMe storage. Install Golang sudo add-apt-repository ppa:longsleep/golang-backports sudo apt update sudo apt install golang-go Install git sudo apt install git Install the pktd node git clone --branch develop https://github.com/pkt-cash/pktd cd pktd ./do The output should show the following: Everything looks good - use ./bin/pktd to launch","title":"PKTD node:"},{"location":"mining/pool_setup_guide/#machine-2","text":"","title":"Machine 2"},{"location":"mining/pool_setup_guide/#master-paymaker-blkhandler","text":"Install the required tools: cd ~ sudo add-apt-repository universe sudo apt install git sudo apt install make sudo apt install npm sudo npm cache clean -f sudo npm install -g n sudo n stable Restart your shell ### Add here how to get latest stable version of node Clone the source code: git clone --branch master https://github.com/cjdelisle/PacketCrypt Build the PacketCrypt code cd PacketCrypt npm install","title":"Master | Paymaker | BlkHandler:"},{"location":"mining/pool_setup_guide/#machine-4-6","text":"","title":"Machine 4 - 6"},{"location":"mining/pool_setup_guide/#blkminer-annhandler-annminer","text":"Install the Required tools: sudo apt install gcc git sudo apt install curl curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh Clone packetcrypt_rs git clone --branch develop https://github.com/cjdelisle/packetcrypt_rs Compile PacketCrypt cd packetcrypt_rs ~/.cargo/bin/cargo build --release --features jemalloc","title":"BlkMiner | AnnHandler | AnnMiner:"},{"location":"mining/pool_setup_guide/#config-of-pooljs","text":"Information: pool.js is located at: ~/PacketCrypt/pool.example.js You need to edit this file, then run: cp ~/PacketCrypt/pool.example.js ~/PacketCrypt/pool.js","title":"Config of pool.js"},{"location":"mining/pool_setup_guide/#configprivateseed","text":"Signing of announcements is rarely used, it breaks people mining into multiple pools, and you should set it to null unless \"you know what you're doing\" This seed is used for deriving keys which will be used for signing announcements. Setting this value to an alphanumeric value e.g oHk8TXpbtRRZGtaYYMnIFAzYMrVh6vA8XzKWWXcKbzCThuFLIJ234bHN5peddQFzR2TtQyo58gcFRP7bKg9BeXZirSqp9gVpjBWp In general, this value should be set to the null, as signing announcements is rarely used, and breaks Announcement mining with multiple pools if you have your pool externally accessable, and should only be set if you have a strong understanding and knowledge of what you are doing. config.privateSeed = null If you aren't bothered by, or don't require your announcements to be signed .","title":"config.privateSeed"},{"location":"mining/pool_setup_guide/#configpaymakerhttppasswd","text":"Anyone who has this password can make http posts to the paymaker (claim that shares were won) You should make this random and also firewall the paymaker from the public. The upload will be done using Authorization Basic with a username of \"x\" and this as the password config.paymakerHttpPasswd = 'anyone with this password can post results to the paymaker'; You can put the paymaker behind an http proxy if you wish.","title":"config.paymakerHttpPasswd"},{"location":"mining/pool_setup_guide/#configmasterurl","text":"This is used by the paymaker and block handler when running them with pool.js, it is used to resolve where the master is. You can either set this as a locally host or put your master behind a nginx proxy config.masterUrl = 'http://localhost:8080'; or if you have your instance public, and you want to have it be resolvable publically, replace the url with your own. config.masterUrl = 'http://pool.pktpool.io';","title":"config.masterUrl"},{"location":"mining/pool_setup_guide/#configrpc","text":"The username and password set here, should be the same username and password used at the end of this guide for when you configure the pktd service. user: 'x', pass: 'x',","title":"config.rpc"},{"location":"mining/pool_setup_guide/#configannhandlers","text":"Information: config.annHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. As the AnnHandler will be run on the same machine as the BlkMiner you need to make sure there are no over-lapping port bindings. If you plan to allow external AnnMiners (AnnMiners not on your LAN to mine against your pool, the url's placed in the AnnHandlers list, should be externally resolvable. The address that is advertized for accessing this ann handler (external address) If running locally use: url: 'http://10.0.16.3:8081','http://10.0.16.4:8081' If allowing external annminers use a resolved address such as: url: 'http://ann1.pktpool.io','http://ann2.pktpool.io' Replace the url with your own.","title":"config.annHandlers"},{"location":"mining/pool_setup_guide/#configblkhandlers","text":"Information: config.blkHandlers is a list of json object, with an object for each individual annhandler you would like to run, each ann handler will require it's own individual port. BlockHandlers are low-effort high-volume single-threaded workers. What address should be advertized for accessing this BlkHander, again make sure there are no overlapping ports. If you are wanting to support external blockminers, this address should be externally resolvable url: 'http://localhost:8100', This is the port that the blkHandler will bind to. port: 8082, This is the host that the blkHandler will bind to. host: '::', This is how many requests a blkHandler can queue before the handler starts rejecting requests maxConnections: 50, root: config","title":"config.blkHandlers"},{"location":"mining/pool_setup_guide/#configmaster","text":"Which port to run the master on port: 8080, What address to bind to, set to localhost if proxying host: '::', Minimum work for an announcement. This number is effectively a bandwidth divisor, every time you double this number you will reduce your bandwidth by a factor of two. annMinWork: Util.annWorkToTarget(128), Average number of shares per block, reducing this number will reduce load on your block handlers, but increasing it will allow payment to be spread more evenly between block miners. This wants to be set to a higher number than one, for the purpose of constantly testing that the block miners are making valid shares. You may have a block miner sitting for hours without a share and then when it wins one, it can become invalid because of misconfiguration shareWorkDivisor: 4, Which versions of announcements we will accept annVersions: [1], Request that ann miners mine announcements that are this many blocks old. Announcements contain a commitment of the most recent block hash but they need 3 blocks to \"mature\" before they can be used The point of this is so that PacketCrypt is about bandwidth, not latency. But there is a risk: If there is a surge then you are going to be starved for announcements When you are starved, you will have few usable anns which causes a slow-down in mining and the announcements which are being submitted are not usable. When you win a few blocks, those announcements become usable and you surge, which causes you to go back into starvation again. This should be set to either: 0 Which means the announcements you are receiving are used instantly 3 Which means you are waiting for the announcements to mature before using them. If running your own AnnMiners, it is advisable to set this to 0, and add the --mineold 3 to some of your AnnMiner startups on the CLI. This helps to keep a balance between keeping your pool as powerful as possible, along with having AnnMiners to help out in the case of a starvation mineOldAnns: 0,","title":"config.master"},{"location":"mining/pool_setup_guide/#configpaymaker","text":"How the miners should access the paymaker (external address), replace the url with your own. url: 'pool.pktpool.io', Which port to run the paymaker on port: 8081, What address to bind to, set to localhost if proxying host: '::', Seconds between sending updates to pktd. If this set to zero, the payMaker will accept log uploads but will not send any changes of payout data to pktd. updateCycle: 120, updateCycle: 0 to disable How many seconds backward to keep history in memory historyDepth: 60 * 60 * 24 * 30, Maximum number of simultanious connections to accept before sending 500 errors maxConnections: 200,","title":"config.payMaker"},{"location":"mining/pool_setup_guide/#anncompressor","text":"Store data in 1 minute aggregations timespanMs: 1000 * 60, Allow data to be submitted to any of the last 10 aggregations slotsToKeepEvents: 10, What fraction of the payout to pay to block miners (the rest will be paid to ann miners) ( Pay per last N shares ) blockPayoutFraction: 0.5, What percent of the total winnings should be taken for pool management poolFee: 0.40, The address which should be paid the pool fee poolFeeAddress: \"pkt1qyc9dkhca7uc84zn3vlgd0h0fxr3twwn34qgeqe\", This constant will affect how far back into history we pay our announcement miners ( Pay per last N shares ) pplnsAnnConstantX: 0.125, This constant will affect how far back into history we pay our block miners ( Pay per last N shares ) pplnsBlkConstantX: 2, When there are not enough shares to fairly spread out the winnings, pay what is left over to this address. defaultAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\", When something goes wrong, direct pktd to send all coins here, if this is different from the defaultAddress then it is possible to account for and pay out to the miners later when the problem is fixed. errorAddress: \"pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2\",","title":"annCompressor"},{"location":"mining/pool_setup_guide/#config-of-pooltoml","text":"Information: - pool.example.toml is located at: ~/packetcrypt_rs/pool.example.toml - You need to edit this file, then run: ~/packetcrypt_rs/pool.example.toml ~/packetcrypt_rs/pool.toml Password used by your paymaker to post logs for payment, the same as config.paymakerHttpPasswd paymaker_http_password = \"you'll want this to be a secret\" URL of the pool master, used for getting configuration and work, the same as: Replace the url with your own. master_url = \"http://pool.pktpool.io\"","title":"Config of pool.toml"},{"location":"mining/pool_setup_guide/#ann_handlerah","text":"You can have multiple ann_handlers, you can do this by defining each one such as: [ann_handler.ah0] \"parameters\" [ann_handler.ah1] \"parameters\" These can all be in a single file to be used by each annhandler, when starting the annhandlers, you would start them with on each respective machine: packetcrypt ah --config /path/to/config.toml ah0 packetcrypt ah --config /path/to/config.toml ah1 Number of threads to dedicate to the AnnHandler num_workers = 8 Length of the input queue, keeping this low will create back-pressure and prevent miners from posting too many announcements when the server is in fact overloaded input_queue_len = 256 The public url of the annhandler, this should match what is set in your pool.js Replace the url with your own. public_url = \"http://ann1.pktpool.io/submit\" Bind to this port bind_port = \"198.51.100.3:80\" Bind this port to the sprayer component bind_pvt = \"10.0.16.3:6666\" Set sprayer spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 For Machine 3 you should end up with something like this [ann_handler.ah0] block_miner_passwd = \"no one steals my anns\" skip_check_chance = 0 num_workers = 8 input_queue_len = 512 public_url = \"http://ann1.pktpool.io/submit\" bind_pub = \"198.51.100.3:80\" bind_pvt = \"10.0.16.3:6666\" spray_at = [\"239.0.1.1:6667\"] spray_workers = 8 subscribe_to = [] files_to_keep = 512 The same logic should be followed for Machine 4 and other handlers you may have.","title":"ann_handler.ah*"},{"location":"mining/pool_setup_guide/#note-to-bind-low-ports-with-non-root-user-run","text":"sudo setcap CAP_NET_BIND_SERVICE=+eip $(which packetcrypt)","title":"NOTE: To bind low ports with non-root user run:"},{"location":"mining/pool_setup_guide/#running-manually","text":"","title":"Running Manually"},{"location":"mining/pool_setup_guide/#machine-1_1","text":"Information: These tasks need to be run in the order they are presented PKTD needs to have downloaded the full chain first, you will know when the node is upto date when height is equal to the current block on the explorer It can take 12+ hours to fully sync to the current block height","title":"Machine 1"},{"location":"mining/pool_setup_guide/#pktd","text":"--rpcuser and --rpcpass should match the values set in pool.js under config.rpc ./pktd/bin/pktd --rpcuser=XXX --rpcpass=XXX --miningaddr ","title":"PKTD"},{"location":"mining/pool_setup_guide/#machine-2_1","text":"","title":"Machine 2"},{"location":"mining/pool_setup_guide/#master","text":"node ./pool.js --master","title":"Master"},{"location":"mining/pool_setup_guide/#paymaker","text":"node ./pool.js --payMaker","title":"Paymaker"},{"location":"mining/pool_setup_guide/#blkhandlers","text":"Launch the BlkHandler nodes, specify --blk0 for the first BlkHandler , --blk1 for the second, and so forth cd PacketCrypt node ./pool.js --blk0 node ./pool.js --blk1","title":"BlkHandler(s)"},{"location":"mining/pool_setup_guide/#machine-3","text":"","title":"Machine 3"},{"location":"mining/pool_setup_guide/#annhandler","text":"cd packetcrypt_rs ./target/release/packetcrypt ah --config /path/to/pool.toml ah0","title":"AnnHandler"},{"location":"mining/pool_setup_guide/#machine-4","text":"","title":"Machine 4"},{"location":"mining/pool_setup_guide/#annhandler_1","text":"cd packetcrypt_rs ./targer/release/packetcrypt ah --config /path/to/pool.toml ah1","title":"AnnHandler"},{"location":"mining/pool_setup_guide/#machine-5-and-6","text":"","title":"Machine 5 and 6"},{"location":"mining/pool_setup_guide/#blkminer","text":"--threads is the number of threads you want to dedicate to the Blkminer, the default is to use all available threads. --paymentaddr is the wallet you want your coins to be mined into, it is advisable to not use the electrum wallet for this. --memorysizemb is how much RAM you are allocating to block mining, Ideally you want to set as much as you can. is the masterUrl of your pool cd packetcrypt_rs ./target/release/packetcrypt blk --paymentaddr --threads 80 --memorysizemb 665000 --handlerpass NoOneStealsMyAnns --subscribe 10.0.16.3:6666 --bind 0.0.0.0:6667 --mcast 239.0.1.1","title":"BlkMiner"},{"location":"mining/pool_setup_guide/#nginx-setup-for-allowing-external-annmining","text":"","title":"NGINX Setup (For allowing external AnnMining)"},{"location":"mining/pool_setup_guide/#machine-2_2","text":"Update system and install Nginx sudo apt update sudo apt install nginx Unlink default nginx site unlink /etc/nginx/sites-enabled/default cd /etc/nginx/sites-available Create and edit the reverse-proxy.conf file vim reverse-proxy.conf The config for the services: server { listen 80; listen [::]:80; server_name ; location / { proxy_pass http://localhost:8080/; } } server { listen 80; listen [::]:80; server_name paymaker.pktpool.io; location / { proxy_pass http://localhost:8081/; } } Link new file to sites-enabled ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf Remove default config rm default Check reverse proxy config is correct nginx -t Reload nginx to pick up config changes. sudo systemctl reload nginx","title":"Machine 2"},{"location":"network/open-ecosystem/","text":"An Open Ecosystem The PKT Network fosters an open ecosystem where diverse media platforms, including film, TV, gaming, sports, live streaming, marketplaces, and music, can thrive. This decentralized approach offers platforms and network hub to connect seamlessly with global audiences. This enables content discovery without geographical or regulatory barriers. By leveraging blockchain technology, PKT ensures that all transactions within the network are conducted fairly and transparently. This not only democratizes access to diverse media content but also empowers creators and consumers to interact and transact directly, enhancing the integrity and vibrancy of the digital media landscape. PKT Network is reshaping how media is consumed and monetized worldwide.","title":"An Open Ecosystem"},{"location":"network/open-ecosystem/#an-open-ecosystem","text":"The PKT Network fosters an open ecosystem where diverse media platforms, including film, TV, gaming, sports, live streaming, marketplaces, and music, can thrive. This decentralized approach offers platforms and network hub to connect seamlessly with global audiences. This enables content discovery without geographical or regulatory barriers. By leveraging blockchain technology, PKT ensures that all transactions within the network are conducted fairly and transparently. This not only democratizes access to diverse media content but also empowers creators and consumers to interact and transact directly, enhancing the integrity and vibrancy of the digital media landscape. PKT Network is reshaping how media is consumed and monetized worldwide.","title":"An Open Ecosystem"},{"location":"network/what-is-network/","text":"What is PKT Network? The PKT Network is a decentralized media network. It is built to enable global media distribution with integrated payments, censorship-resistance and no geo-restrictions. The network is powered by the cjdns mesh networking protocol. The PKT Network represents a transformative approach to media distribution, fundamentally redefining how content is shared and monetized across the globe. As a decentralized media network, PKT leverages the robust cjdns mesh networking protocol to facilitate a secure, censorship-resistant platform that is free from geo-restrictions and censorship. This design ensures that creators and audiences can share and consume media content without interference from centralized authorities or limitations imposed by traditional media distribution channels. At the heart of PKT Network's innovation is its DePIN (Decentralized Physical Infrastructure) model. This incentivizes individuals across the world to contribute to the network's infrastructure. This community-driven approach not only decentralizes the control and maintenance of the network but also enhances its resilience and scalability. Contributors are rewarded through PKT\u2019s Stake-to-Earn protocol, where participants lock up their PKT tokens and pair with infrastructure nodes that support network operations. In return, operators are rewarded based on the duration and amount of their stake. This incentivization scheme aligns individual interests with the overall health and growth of the network, promoting long-term commitment and stability. By integrating direct payment functionalities, PKT Network allows media creators to receive compensation directly from their audience, bypassing traditional payment processors and minimizing transaction fees. This integration of decentralized media distribution with seamless payment solutions empowers creators, enriches the user experience, and paves the way for a new era of media consumption that is truly global, open, and unrestricted.","title":"What is PKT Network"},{"location":"network/what-is-network/#what-is-pkt-network","text":"The PKT Network is a decentralized media network. It is built to enable global media distribution with integrated payments, censorship-resistance and no geo-restrictions. The network is powered by the cjdns mesh networking protocol. The PKT Network represents a transformative approach to media distribution, fundamentally redefining how content is shared and monetized across the globe. As a decentralized media network, PKT leverages the robust cjdns mesh networking protocol to facilitate a secure, censorship-resistant platform that is free from geo-restrictions and censorship. This design ensures that creators and audiences can share and consume media content without interference from centralized authorities or limitations imposed by traditional media distribution channels. At the heart of PKT Network's innovation is its DePIN (Decentralized Physical Infrastructure) model. This incentivizes individuals across the world to contribute to the network's infrastructure. This community-driven approach not only decentralizes the control and maintenance of the network but also enhances its resilience and scalability. Contributors are rewarded through PKT\u2019s Stake-to-Earn protocol, where participants lock up their PKT tokens and pair with infrastructure nodes that support network operations. In return, operators are rewarded based on the duration and amount of their stake. This incentivization scheme aligns individual interests with the overall health and growth of the network, promoting long-term commitment and stability. By integrating direct payment functionalities, PKT Network allows media creators to receive compensation directly from their audience, bypassing traditional payment processors and minimizing transaction fees. This integration of decentralized media distribution with seamless payment solutions empowers creators, enriches the user experience, and paves the way for a new era of media consumption that is truly global, open, and unrestricted.","title":"What is PKT Network?"},{"location":"pktd/","text":"Pktd Pktd is the PKT full node blockchain software. It is a fork of btcd, the golang bitcoin instance. Running a full node If you want to run a full node in the PKT network, you can do so by downloading pktd and compiling it on a Linux or Mac server. Follow the process in Installation and the simply type ./bin/pktd and it will start up and begin syncing the chain and helping verify the PKT network. NOTE : Running a full node requires over 40 GB of disk space to store the blockchain and is not necessary for participating in the project. If you just want to make a wallet, see PKT Electrum (gui) or PKTWallet (command line) wallets. Installation Install golang First, you need to install the go programming language, go to the golang website and learn how to install it on your system: https://golang.org/doc/install Install git Next you will need to make sure you have git installed. The first thing to do is check whether you have it installed already: git version If it prints something like git version 2.21.1 you\u2019re in luck and you can continue. If it prints something more like command not found: git then you\u2019ll need to install it. Installation will depend on your system, for debian/ubuntu like systems you will want sudo apt install git and for OSX with homebrew, you\u2019ll want brew install git . Install the components Once you have golang and git fully installed and set up, you can use the following commands to install pktd, pktwallet and pktctl. git clone https://github.com/pkt-cash/pktd cd pktd ./do If you see something like: Everything looks good at the end of typing ./do then you should be ready to start using pktd.","title":"Pktd"},{"location":"pktd/#pktd","text":"Pktd is the PKT full node blockchain software. It is a fork of btcd, the golang bitcoin instance.","title":"Pktd"},{"location":"pktd/#running-a-full-node","text":"If you want to run a full node in the PKT network, you can do so by downloading pktd and compiling it on a Linux or Mac server. Follow the process in Installation and the simply type ./bin/pktd and it will start up and begin syncing the chain and helping verify the PKT network. NOTE : Running a full node requires over 40 GB of disk space to store the blockchain and is not necessary for participating in the project. If you just want to make a wallet, see PKT Electrum (gui) or PKTWallet (command line) wallets.","title":"Running a full node"},{"location":"pktd/#installation","text":"","title":"Installation"},{"location":"pktd/#install-golang","text":"First, you need to install the go programming language, go to the golang website and learn how to install it on your system: https://golang.org/doc/install","title":"Install golang"},{"location":"pktd/#install-git","text":"Next you will need to make sure you have git installed. The first thing to do is check whether you have it installed already: git version If it prints something like git version 2.21.1 you\u2019re in luck and you can continue. If it prints something more like command not found: git then you\u2019ll need to install it. Installation will depend on your system, for debian/ubuntu like systems you will want sudo apt install git and for OSX with homebrew, you\u2019ll want brew install git .","title":"Install git"},{"location":"pktd/#install-the-components","text":"Once you have golang and git fully installed and set up, you can use the following commands to install pktd, pktwallet and pktctl. git clone https://github.com/pkt-cash/pktd cd pktd ./do If you see something like: Everything looks good at the end of typing ./do then you should be ready to start using pktd.","title":"Install the components"},{"location":"pktd/migrating_from_electrum/","text":"Migrating from Electrum to PKTWallet If you have an electrum based wallet which becomes overloaded from too many transactions (e.g. from mining directly into it), then you will need to migrate your keys to a pktwallet instance. Step 1: Setup pktwallet Follow the instructions in pktwallet to get your wallet up and running Step 2: Export your keys In Electrum, click Wallet -> Private Keys -> Export You will be prompted to enter your Electrum wallet password, then a window should appear showing your keys KEEP THESE KEYS SECRET Find an address which you want to migrate and copy the key with that address Do not copy the part which says p2wpkh: , just the letters after it The key will look sometihng like this: ci2TBp2HTWtyMQtizWMuugHxG6lNpInA1bSpLIWzjJS2AI8ObwV5 Step 3: Import key to pktwallet In a terminal window, run pktctl --wallet getbalance to verify that your wallet is working Unlock your wallet using pktctl --wallet walletpassphrase 1000000 Type pktctl --wallet importprivkey You should see the address printed on the screen Importing more keys When you import a key, it starts a rescan of the chain automatically, in order to import more you need to stop pktctl --wallet stopresync to stop Speed things up If you know exactly when an address was paid, you can speed up the import by only rescanning blocks where it might have been paid. For example if you are sure that the address was not paid earlier than block number 600000 you can do the following: pktctl --wallet stopresync pktctl --wallet resync 600000 100000000 Check that it's working It's recommended that you run pktwallet with -d debug flag in order to be able to see the debug logs. When you are resyncing you should see log lines like the following: 1609188780 [DBG] wallet.go:2817 Rescan cycle [620100] 1609188781 [DBG] wallet.go:2817 Rescan cycle [620200] 1609188782 [DBG] wallet.go:2817 Rescan cycle [620300] 1609188783 [DBG] wallet.go:2817 Rescan cycle [620400] The number if the block number which is being scanned. Troubleshooting ErrBirthdayBlockNotSet: birthday block not set Your wallet is not synced yet, wait for it to become synced","title":"Migrating from Electrum to PKTWallet"},{"location":"pktd/migrating_from_electrum/#migrating-from-electrum-to-pktwallet","text":"If you have an electrum based wallet which becomes overloaded from too many transactions (e.g. from mining directly into it), then you will need to migrate your keys to a pktwallet instance.","title":"Migrating from Electrum to PKTWallet"},{"location":"pktd/migrating_from_electrum/#step-1-setup-pktwallet","text":"Follow the instructions in pktwallet to get your wallet up and running","title":"Step 1: Setup pktwallet"},{"location":"pktd/migrating_from_electrum/#step-2-export-your-keys","text":"In Electrum, click Wallet -> Private Keys -> Export You will be prompted to enter your Electrum wallet password, then a window should appear showing your keys KEEP THESE KEYS SECRET Find an address which you want to migrate and copy the key with that address Do not copy the part which says p2wpkh: , just the letters after it The key will look sometihng like this: ci2TBp2HTWtyMQtizWMuugHxG6lNpInA1bSpLIWzjJS2AI8ObwV5","title":"Step 2: Export your keys"},{"location":"pktd/migrating_from_electrum/#step-3-import-key-to-pktwallet","text":"In a terminal window, run pktctl --wallet getbalance to verify that your wallet is working Unlock your wallet using pktctl --wallet walletpassphrase 1000000 Type pktctl --wallet importprivkey You should see the address printed on the screen","title":"Step 3: Import key to pktwallet"},{"location":"pktd/migrating_from_electrum/#importing-more-keys","text":"When you import a key, it starts a rescan of the chain automatically, in order to import more you need to stop pktctl --wallet stopresync to stop","title":"Importing more keys"},{"location":"pktd/migrating_from_electrum/#speed-things-up","text":"If you know exactly when an address was paid, you can speed up the import by only rescanning blocks where it might have been paid. For example if you are sure that the address was not paid earlier than block number 600000 you can do the following: pktctl --wallet stopresync pktctl --wallet resync 600000 100000000","title":"Speed things up"},{"location":"pktd/migrating_from_electrum/#check-that-its-working","text":"It's recommended that you run pktwallet with -d debug flag in order to be able to see the debug logs. When you are resyncing you should see log lines like the following: 1609188780 [DBG] wallet.go:2817 Rescan cycle [620100] 1609188781 [DBG] wallet.go:2817 Rescan cycle [620200] 1609188782 [DBG] wallet.go:2817 Rescan cycle [620300] 1609188783 [DBG] wallet.go:2817 Rescan cycle [620400] The number if the block number which is being scanned.","title":"Check that it's working"},{"location":"pktd/migrating_from_electrum/#troubleshooting","text":"ErrBirthdayBlockNotSet: birthday block not set Your wallet is not synced yet, wait for it to become synced","title":"Troubleshooting"},{"location":"pktd/pktwallet/","text":"pktwallet The command line PKT wallet First Time Installation and Launching Download pktd Microsoft Windows Download the most recent zip archive suffixed with -windows.zip available from pktd releases page For example: pktd-v1.4.0-windows.zip Unarchive the content of the zip file Open the command prompt and navigate to the bin directory in the extracted archive For Example: cd Downloads\\pktd*\\bin Follow the instructions below but In place of ./bin/pktwallet , use pktwallet.exe In place of ./bin/pktctl , use pktctl.exe MacOS and Linux Download one of the most recent packages available for Linux or MacOS from pktd releases page For example, for pktd-v1.4.0 release: For MacOS , after having downloaded pktd-v1.4.0-macos.pkg , install pktwallet and other utilities by clicking on the package icon in the Finder. For Linux , after having downloaded one of the following packages: pktd-v1.4.0-linux.deb (Debian or Ubuntu) pktd-v1.4.0-linux.rpm (Fedora or RedHat) pktd AUR package (Arch linux or Manjaro), install pktwallet and other utilities by clicking on the appropriate package icon or running an installation command Creating a New Wallet To create a new PKT wallet, use the pktwallet --create command: ./bin/pktwallet --create You will be prompted to follow a few steps. Make sure you write your seed words on paper so that you can recover your funds even if your computer is damaged. Do not skip this step. You will thank yourself later. Keep it secret. Keep it safe. Launching pktwallet After creating your wallet, you can launch pktwallet with: ./bin/pktwallet Watch the output from the logs and when you see a log line like this: 1608294386 [INF] headerlogger.go:64 Processed 1 block in the last 24.82s (height 702781, 2020-12-18 13:26:01 +0100 CET) Compare the height number in the log line (e.g. 702781) to the number in the pkt block explorer to see when your wallet is up to date. A complete sync from a new installation can take 12+ hours. During this time, the balance in your wallet will not be accurate and you will be unable to transact. You may, however, proceed with creating an address while syncing, as detailed below. Creating a New PKT Address While pktwallet is running in the background (or in another terminal), use the following command: ./bin/pktctl --wallet getnewaddress You should see a series of numbers and letters beginning with pkt1 . This is your newly created PKT address which you can use for receiving coins. If you need to view it after creation, the address, along with the balance, can be seen in the output from running: ./bin/pktctl --wallet getaddressbalances 1 1 NOTE : Every time you use getnewaddress , the address you receive must be remembered by pktwallet forever. So, only use it when you actually need an address. How to install the PKT World Wallet (Windows only) Download the PKT World Wallet Follow the installation instructions Launch wallet Create a new wallet Enter a wallet passphrase. Make sure to save your passphrase in a safe place. Write down your wallet seed. It is very important to keep your seed in a safe place To generate a new PKT address, click Wallet. Generate new address To begin mining using the PKT World Wallet, click Miner Start Mining How to install a CLI Wallet If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Copy down your seed. If your wallet is destroyed, you can recover it as long as you have this seed and your wallet passphrase. Please keep in mind that anyone who has access to the seed only needs to guess your wallet passphrase to access your funds. Follow the instructions to finalize wallet How to start up CLI Wallet Open terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --wallet (whatever you named your wallet) i.e wallet personal How to create new PKT wallet address Make sure you have the CLI wallet running in a separate terminal window Open Terminal Enter command: $ cd pktd Enter command: $ ~/pktd/bin/pktctl --wallet getnewaddress Save your address in a safe place that is easily accessible How to send PKT from your CLI wallet Make sure you have the CLI wallet running in a separate terminal window Command click on file to open Open terminal Enter command: $ cd pktd Enter Command: $ ~/pktd/pktd/bin/pktctl --wallet sendfrom pkt1xxxxx $$$$ '[\"pkt1xxxxx\"]' xxxxx = PKT address you want to send from and to $$$$ = amount of pkt you want to send How to install a CLI Wallet from Seed If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Command click on file to open Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Enter seed Start up wallet (see instructions above) Open new terminal window Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktctl --wallet getnewaddress repeat until you find receive (each of) your recovered wallet address(es) Enter the command: $ ~/pktd/bin/pktctl --wallet resync This will resync the wallet to the blockchain (takes at least 24 hours) Enter the command: $ ~/pktd/bin/pktctl --wallet getaddressbalances 1 1 this is how you view all your (sub)wallet balances Using Your Wallet pktctl is the program that interfaces with a running pktwallet instance. pktctl functions will not work if pktwallet is not running and accessible. Some functions will be limited until pktwallet is fully synchronized. Some functions require the wallet being unlocked before executing. Getting Your Balance You can check your current PKT balance using pktctl or you can check the balances of each of your addresses if you have more than one. ./bin/pktctl --wallet getbalance or: ./bin/pktctl --wallet getaddressbalances getaddressbalances by itself will not show 0 balance addresses you may have created. To show these addresses, use: ./bin/pktctl --wallet getaddressbalances 1 1 For more explanation of the meaning of the output of getaddressbalances , use: ./bin/pktctl --wallet help getaddressbalances Unlocking Wallet While many functions can be performed while the wallet is locked, other functions first require the wallet to be unlocked, including sending PKT and folding. The passphrase used to unlock the wallet was set when creating the wallet. To unlock your wallet for 120 seconds (this can be changed to your liking), use: ./bin/pktctl --wallet walletpassphrase 120 To keep your wallet unlocked, use: ./bin/pktctl --wallet walletpassphrase 0 If using 0 as in the previous example to keep your wallet indefinitely unlocked, it will stay unlocked until you either restart pktwallet or run: ./bin/pktctl --wallet walletlock NOTE: Special characters (e.g., !, #, & *) in your passphrase may be incorrectly interpreted by your shell. You may need to wrap your passphrase in quotes. ./bin/pktctl --wallet walletpassphrase 'suP3r_S3cReT^P@s5W0Rd!' 120 Sending PKT You can send PKT using the sendtoaddress command, but first you must unlock your wallet for sending, as shown in the previous step. To send cjd a 10 PKT tip: ./bin/pktctl --wallet sendtoaddress pkt1qt8xe7dwpelngtcpsgn5nkj3pwwdm7gf3l4auax 10 Sending PKT from Specific Address pktwallet gives you control over which addresses are used for making a payment. This means you can keep different PKT in your wallet separate, for example separating business transactions from personal transactions. NOTE : PKT is not a \"privacy coin\", so transactions are still shown in the blockchain like with Bitcoin. Unlock wallet: ./bin/pktctl --wallet walletpassphrase 60 Send 10 PKT to \"their address\" from \"your address\": ./bin/pktctl --wallet sendfrom 10 '[\" \"]' Notice the '[\" . This is because the last argument is actually a quoted JSON array . This means you can use multiple addresses as the source of a payment. For example: ./bin/pktctl --wallet sendfrom 10 '[\" \", \" \"]' Windows users require unique formatting for command prompt: pktctl.exe --wallet sendfrom 10 [\\\" \\\"] Sweeping an Address With pktwallet, sending 0 PKT has special significance in that it will send \"as much PKT as possible\". To sweep address into , you can use the following command: ./bin/pktctl --wallet sendfrom 0 '[\" \"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\" \\\"] NOTE : Sweeping an address will send as much PKT as possible , which is not necessarily all PKT in that address. You may need to sweep multiple times before the address is empty. Folding Coins If you are the recipient of many transactions, such as is the case in mining, you may not be able to spend all of them at once. This is similar to someone who is paid in pennies having a difficult time using the pennies to buy a car. To solve this issue, you can consolidate all of the coins which were paid to you by folding . Folding is sweeping an address to itself . Just like in sweeping, you may need to run the command many times before you have completely folded. See FAQs for more detail. For example: ./bin/pktctl --wallet sendfrom 0 '[\"\"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\"\\\"] Alternative GUI Wallets Electrum for PKT (Windows, MacOS, Linux) NOTE: Electrum is not appropriate for mining. Do NOT mine into an electrum wallet! PKT World Wallet (Windows) Zulu Wallet (MacOS) FAQs I have several machines mining, do I need the wallet running on each machine? NO! In fact, the wallet doesn't need to be running at all to mine, but you do need to ensure you have control of the address you are mining to. Should I leave pktwallet running? It is not a requirement to have pktwallet running to mine. However, if you leave it running, it will stay synced. This will save time when performing pktctl functions, such as folding and sending coins. If pktwallet has not been running for some time, it will need time to sync up to the current block from the time it last ran. As a safety precaution, don't forget to lock your wallet if you do keep it running. How often should I fold and why? The purpose of folding is to turn all your small payments (such as from mining) into quickly and easily spendable coins. If you are multi-pool mining and have rewards in every block, you will have roughly 1440 unconsolidated transactions per day - one for each block at a rate of ~ 1 block/min. If you do not fold these transactions, after awhile you'll have a huge amount of transactions to process if you wish to send the sum or portion thereof of these smaller transactions. So, while folding isn't required and will have no impact on mining if you do or do not, you're doing yourself a favor later by keeping the transactions as consolidated as possible. It is typical to fold as much as possible every day or every few days when you think about it, depending on your use case. It can also be scripted. Note that folding is a transaction itself. Depending on how much you have to fold, you may need to run the command many times. You also may need to wait for coins to confirm before folding more. Once the folding command fails or you see a very low number in the outputcount field from running ./bin/pktctl --wallet getaddressbalances 1 1 or on PKT block explorer under Unconsolidated Txns, you have successfully folded the best you can for that point in time.","title":"pktwallet"},{"location":"pktd/pktwallet/#pktwallet","text":"The command line PKT wallet","title":"pktwallet"},{"location":"pktd/pktwallet/#first-time-installation-and-launching","text":"","title":"First Time Installation and Launching"},{"location":"pktd/pktwallet/#download-pktd","text":"","title":"Download pktd"},{"location":"pktd/pktwallet/#microsoft-windows","text":"Download the most recent zip archive suffixed with -windows.zip available from pktd releases page For example: pktd-v1.4.0-windows.zip Unarchive the content of the zip file Open the command prompt and navigate to the bin directory in the extracted archive For Example: cd Downloads\\pktd*\\bin Follow the instructions below but In place of ./bin/pktwallet , use pktwallet.exe In place of ./bin/pktctl , use pktctl.exe","title":"Microsoft Windows"},{"location":"pktd/pktwallet/#macos-and-linux","text":"Download one of the most recent packages available for Linux or MacOS from pktd releases page For example, for pktd-v1.4.0 release: For MacOS , after having downloaded pktd-v1.4.0-macos.pkg , install pktwallet and other utilities by clicking on the package icon in the Finder. For Linux , after having downloaded one of the following packages: pktd-v1.4.0-linux.deb (Debian or Ubuntu) pktd-v1.4.0-linux.rpm (Fedora or RedHat) pktd AUR package (Arch linux or Manjaro), install pktwallet and other utilities by clicking on the appropriate package icon or running an installation command","title":"MacOS and Linux"},{"location":"pktd/pktwallet/#creating-a-new-wallet","text":"To create a new PKT wallet, use the pktwallet --create command: ./bin/pktwallet --create You will be prompted to follow a few steps. Make sure you write your seed words on paper so that you can recover your funds even if your computer is damaged. Do not skip this step. You will thank yourself later. Keep it secret. Keep it safe.","title":"Creating a New Wallet"},{"location":"pktd/pktwallet/#launching-pktwallet","text":"After creating your wallet, you can launch pktwallet with: ./bin/pktwallet Watch the output from the logs and when you see a log line like this: 1608294386 [INF] headerlogger.go:64 Processed 1 block in the last 24.82s (height 702781, 2020-12-18 13:26:01 +0100 CET) Compare the height number in the log line (e.g. 702781) to the number in the pkt block explorer to see when your wallet is up to date. A complete sync from a new installation can take 12+ hours. During this time, the balance in your wallet will not be accurate and you will be unable to transact. You may, however, proceed with creating an address while syncing, as detailed below.","title":"Launching pktwallet"},{"location":"pktd/pktwallet/#creating-a-new-pkt-address","text":"While pktwallet is running in the background (or in another terminal), use the following command: ./bin/pktctl --wallet getnewaddress You should see a series of numbers and letters beginning with pkt1 . This is your newly created PKT address which you can use for receiving coins. If you need to view it after creation, the address, along with the balance, can be seen in the output from running: ./bin/pktctl --wallet getaddressbalances 1 1 NOTE : Every time you use getnewaddress , the address you receive must be remembered by pktwallet forever. So, only use it when you actually need an address.","title":"Creating a New PKT Address"},{"location":"pktd/pktwallet/#how-to-install-the-pkt-world-wallet-windows-only","text":"Download the PKT World Wallet Follow the installation instructions Launch wallet Create a new wallet Enter a wallet passphrase. Make sure to save your passphrase in a safe place. Write down your wallet seed. It is very important to keep your seed in a safe place To generate a new PKT address, click Wallet. Generate new address To begin mining using the PKT World Wallet, click Miner Start Mining","title":"How to install the PKT World Wallet (Windows only)"},{"location":"pktd/pktwallet/#how-to-install-a-cli-wallet","text":"If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Copy down your seed. If your wallet is destroyed, you can recover it as long as you have this seed and your wallet passphrase. Please keep in mind that anyone who has access to the seed only needs to guess your wallet passphrase to access your funds. Follow the instructions to finalize wallet","title":"How to install a CLI Wallet"},{"location":"pktd/pktwallet/#how-to-start-up-cli-wallet","text":"Open terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --wallet (whatever you named your wallet) i.e wallet personal","title":"How to start up CLI Wallet"},{"location":"pktd/pktwallet/#how-to-create-new-pkt-wallet-address","text":"Make sure you have the CLI wallet running in a separate terminal window Open Terminal Enter command: $ cd pktd Enter command: $ ~/pktd/bin/pktctl --wallet getnewaddress Save your address in a safe place that is easily accessible","title":"How to create new PKT wallet address"},{"location":"pktd/pktwallet/#how-to-send-pkt-from-your-cli-wallet","text":"Make sure you have the CLI wallet running in a separate terminal window Command click on file to open Open terminal Enter command: $ cd pktd Enter Command: $ ~/pktd/pktd/bin/pktctl --wallet sendfrom pkt1xxxxx $$$$ '[\"pkt1xxxxx\"]' xxxxx = PKT address you want to send from and to $$$$ = amount of pkt you want to send","title":"How to send PKT from your CLI wallet"},{"location":"pktd/pktwallet/#how-to-install-a-cli-wallet-from-seed","text":"If you already have a wallet created on your computer called wallet.db you will need to create a new wallet by following these steps: Download pktd-v1.5.1-macos.pkg Command click on file to open Run the installation Open Terminal Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktwallet --create --wallet xxxx xxxx is the name of the wallet i.e. wallet personal Make sure to write this down for your notes Enter passphrase or leave empty Make sure to write this down for you notes Do NOT add additional layer of security Enter seed Start up wallet (see instructions above) Open new terminal window Enter the command: $ cd pktd Enter the command: $ ~/pktd/bin/pktctl --wallet getnewaddress repeat until you find receive (each of) your recovered wallet address(es) Enter the command: $ ~/pktd/bin/pktctl --wallet resync This will resync the wallet to the blockchain (takes at least 24 hours) Enter the command: $ ~/pktd/bin/pktctl --wallet getaddressbalances 1 1 this is how you view all your (sub)wallet balances","title":"How to install a CLI Wallet from Seed"},{"location":"pktd/pktwallet/#using-your-wallet","text":"pktctl is the program that interfaces with a running pktwallet instance. pktctl functions will not work if pktwallet is not running and accessible. Some functions will be limited until pktwallet is fully synchronized. Some functions require the wallet being unlocked before executing.","title":"Using Your Wallet"},{"location":"pktd/pktwallet/#getting-your-balance","text":"You can check your current PKT balance using pktctl or you can check the balances of each of your addresses if you have more than one. ./bin/pktctl --wallet getbalance or: ./bin/pktctl --wallet getaddressbalances getaddressbalances by itself will not show 0 balance addresses you may have created. To show these addresses, use: ./bin/pktctl --wallet getaddressbalances 1 1 For more explanation of the meaning of the output of getaddressbalances , use: ./bin/pktctl --wallet help getaddressbalances","title":"Getting Your Balance"},{"location":"pktd/pktwallet/#unlocking-wallet","text":"While many functions can be performed while the wallet is locked, other functions first require the wallet to be unlocked, including sending PKT and folding. The passphrase used to unlock the wallet was set when creating the wallet. To unlock your wallet for 120 seconds (this can be changed to your liking), use: ./bin/pktctl --wallet walletpassphrase 120 To keep your wallet unlocked, use: ./bin/pktctl --wallet walletpassphrase 0 If using 0 as in the previous example to keep your wallet indefinitely unlocked, it will stay unlocked until you either restart pktwallet or run: ./bin/pktctl --wallet walletlock NOTE: Special characters (e.g., !, #, & *) in your passphrase may be incorrectly interpreted by your shell. You may need to wrap your passphrase in quotes. ./bin/pktctl --wallet walletpassphrase 'suP3r_S3cReT^P@s5W0Rd!' 120","title":"Unlocking Wallet"},{"location":"pktd/pktwallet/#sending-pkt","text":"You can send PKT using the sendtoaddress command, but first you must unlock your wallet for sending, as shown in the previous step. To send cjd a 10 PKT tip: ./bin/pktctl --wallet sendtoaddress pkt1qt8xe7dwpelngtcpsgn5nkj3pwwdm7gf3l4auax 10","title":"Sending PKT"},{"location":"pktd/pktwallet/#sending-pkt-from-specific-address","text":"pktwallet gives you control over which addresses are used for making a payment. This means you can keep different PKT in your wallet separate, for example separating business transactions from personal transactions. NOTE : PKT is not a \"privacy coin\", so transactions are still shown in the blockchain like with Bitcoin. Unlock wallet: ./bin/pktctl --wallet walletpassphrase 60 Send 10 PKT to \"their address\" from \"your address\": ./bin/pktctl --wallet sendfrom 10 '[\" \"]' Notice the '[\" . This is because the last argument is actually a quoted JSON array . This means you can use multiple addresses as the source of a payment. For example: ./bin/pktctl --wallet sendfrom 10 '[\" \", \" \"]' Windows users require unique formatting for command prompt: pktctl.exe --wallet sendfrom 10 [\\\" \\\"]","title":"Sending PKT from Specific Address"},{"location":"pktd/pktwallet/#sweeping-an-address","text":"With pktwallet, sending 0 PKT has special significance in that it will send \"as much PKT as possible\". To sweep address into , you can use the following command: ./bin/pktctl --wallet sendfrom 0 '[\" \"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\" \\\"] NOTE : Sweeping an address will send as much PKT as possible , which is not necessarily all PKT in that address. You may need to sweep multiple times before the address is empty.","title":"Sweeping an Address"},{"location":"pktd/pktwallet/#folding-coins","text":"If you are the recipient of many transactions, such as is the case in mining, you may not be able to spend all of them at once. This is similar to someone who is paid in pennies having a difficult time using the pennies to buy a car. To solve this issue, you can consolidate all of the coins which were paid to you by folding . Folding is sweeping an address to itself . Just like in sweeping, you may need to run the command many times before you have completely folded. See FAQs for more detail. For example: ./bin/pktctl --wallet sendfrom 0 '[\"\"]' Windows: pktctl.exe --wallet sendfrom 0 [\\\"\\\"]","title":"Folding Coins"},{"location":"pktd/pktwallet/#alternative-gui-wallets","text":"Electrum for PKT (Windows, MacOS, Linux) NOTE: Electrum is not appropriate for mining. Do NOT mine into an electrum wallet! PKT World Wallet (Windows) Zulu Wallet (MacOS)","title":"Alternative GUI Wallets"},{"location":"pktd/pktwallet/#faqs","text":"","title":"FAQs"},{"location":"pktd/pktwallet/#i-have-several-machines-mining-do-i-need-the-wallet-running-on-each-machine","text":"NO! In fact, the wallet doesn't need to be running at all to mine, but you do need to ensure you have control of the address you are mining to.","title":"I have several machines mining, do I need the wallet running on each machine?"},{"location":"pktd/pktwallet/#should-i-leave-pktwallet-running","text":"It is not a requirement to have pktwallet running to mine. However, if you leave it running, it will stay synced. This will save time when performing pktctl functions, such as folding and sending coins. If pktwallet has not been running for some time, it will need time to sync up to the current block from the time it last ran. As a safety precaution, don't forget to lock your wallet if you do keep it running.","title":"Should I leave pktwallet running?"},{"location":"pktd/pktwallet/#how-often-should-i-fold-and-why","text":"The purpose of folding is to turn all your small payments (such as from mining) into quickly and easily spendable coins. If you are multi-pool mining and have rewards in every block, you will have roughly 1440 unconsolidated transactions per day - one for each block at a rate of ~ 1 block/min. If you do not fold these transactions, after awhile you'll have a huge amount of transactions to process if you wish to send the sum or portion thereof of these smaller transactions. So, while folding isn't required and will have no impact on mining if you do or do not, you're doing yourself a favor later by keeping the transactions as consolidated as possible. It is typical to fold as much as possible every day or every few days when you think about it, depending on your use case. It can also be scripted. Note that folding is a transaction itself. Depending on how much you have to fold, you may need to run the command many times. You also may need to wait for coins to confirm before folding more. Once the folding command fails or you see a very low number in the outputcount field from running ./bin/pktctl --wallet getaddressbalances 1 1 or on PKT block explorer under Unconsolidated Txns, you have successfully folded the best you can for that point in time.","title":"How often should I fold and why?"},{"location":"pktwalletgui/","text":"PKT Wallet MacOS GUI NOTE : The PKT Wallet GUI handles mining income well and is a good wallet for those hoping to hold a copy of the blockchain and to keep ownership of their own keys and passphrases for multiple addresses. First setup MacOS Download pktwallet-(version).dmg Open Finder Double-click on your Downloads folder and find and double-click on pktwallet-(version).dmg to open the disk image A new window will open with the PKT Wallet app, click and drag it into your Applications folder Press Command+Space to open your Spotlight Search and type PKT Wallet, when you see the PKT Wallet app, press the Enter key to open it. The first time PKT Wallet is opened, you will get a popup asking you if you want to open it, click open Continue with Setting up your wallet or Load Existing Wallet From Seed below. Setting up your wallet Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. A video tutorial is available for this method: You will be asked to create a new wallet. Click \"Create Wallet\" Enter passphrase to encrypt your wallet. This passphrase must have upper case and lower case letters and numbers. Retype the passphrase to match and click the \"Enter\" button You will be asked if you want to import an existing seed. Click the \"Continue Without Seed\" button to continue. A 15-word wallet seed will be created for you. Write this seed down. It enables you to open your PKT wallet on another computer or smartphone, for example if your current computer dies. It is advisable to write this on a piece of paper and store it in a safe place. Click \"Open Wallet\" to continue. You will be brought to the main \"Balances\" screen. By default you have no addresses, so you will need to create one. Click the \"Create Address\" button, and then click the \"Generate\" button to generate a new address. The resulting code is the public address which people can pay you at. Click \"Balances\" again to display your balances. By default, accounts with zero PKT will not be displayed unless you click \"Get All Addresses\" Load Existing Wallet From Seed Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. A video tutorial is available for this method: You will be asked to create a new wallet. Click \"Create Wallet\" Enter passphrase to encrypt your wallet. This passphrase must have upper case and lower case letters and numbers. Retype the passphrase to match and click the \"Enter\" button You will be asked if you want to import an existing seed. Type in your wallet seed and any passphrase. Click the \"Continue With Seed\" button to continue. Your 15-word wallet seed will be displayed on the next screen. Write this seed down. It enables you to open your PKT wallet on another computer or smartphone, for example if your current computer dies. It is advisable to write this on a piece of paper and store it in a safe place. If you have a legacy wallet (from versions prior to 1.0.0), you will never be able to retrieve this seed again from the app. Click \"Open Wallet\" to continue. You will be brought to the main \"Balances\" screen. By default you have no addresses, so you will need to create one. Click the \"Create Address\" button, and then click the \"Generate\" button to generate a new address. The resulting code is the public address which people can pay you at. If this wallet previously had a wallet, address is actually an exsting one that has been retrieved, rather than a newly created address. Click \"Balances\" again to display your balances. By default, accounts with zero PKT will not be displayed unless you click \"Get All Addresses\". It may take several hours for the app to sync the blockchain for the first time. During that time, balances will not be available for your addresses. You will have to verify the balance on the address using the PKT Blockchain Explorer Click \"Receive\" and select the wallet you want to inspect Copy and paste the address into the search field of the PKT Blockchain Explorer, then click the \"Search\" icon. Receiving PKT To receive coins, you need to create a new PKT address Click the \"Receive\" tab Type a description for the purpose of receiving the coins, this will appear in the notification when you get paid Set the expiration, if this is not an invoice , you can choose \"never\" After you click \"Request\", your wallet will create a new address and copy it to your clipboard so you can send it to the person paying you (or transfer money to your new wallet) When PKT gets sent to your new address, you will get a notification. It says \"unconfirmed\" because the transaction has not yet been included in the history of the blockchain. Congratulations, you have received your first PKT. It make take some time before the transaction is confirmed by the network and the PKT is formally in your account. Sending PKT To pay PKT to someone else, click on the Send tab and paste the address to be paid Type a description of the payment, this is just for you, it will not be sent to the person you are paying Enter the amount to be paid Click Pay You will be prompted to enter your wallet passphrase in order to decrypt the wallet for one brief moment to send the PKT Every transaction requires a fee for inclusion in the blockchain, this is a very small cost: 132 nPKT is one hundred and thirty two nano-PKT (that means billionths , i.e. 0.000000132 PKT) After you enter your passphrase and click \"send\", you will see a transaction ID , this set of numbers and letters uniquely identifies your transaction and can be used to view it in the block explorer. Just like when receiving, your transaction will appear first as \"unconfirmed\" and then later it will switch to a clock when it has been included in the blockchain. When people consider a transaction to be \"complete\" depends on the merchant, but in after some time the transaction will be confirmed and the PKT be in the recipient's account. Congratulations, you've sent PKT! About Units Each PKT is made up of 1000 milli-PKT, denoted mPKT Each milli-PKT is sub-divided into 1000 micro-PKT, denoted uPKT Each micro-PKT is sub-divided into 1000 nano-PKT, denoted nPKT Statistical Verification PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as MIN(100%, K / distance_from_tip) where K is a constant which we set at 20 to make PKT Electrum verify around 200 blocks total. With K = 20 , the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance * block 25 has an 80% chance * block 50 has a 40% chance * block 80 has a 25% chance The distribution of likelyhood of verifying a block is shown by this chart:","title":"PKT Wallet MacOS GUI"},{"location":"pktwalletgui/#pkt-wallet-macos-gui","text":"NOTE : The PKT Wallet GUI handles mining income well and is a good wallet for those hoping to hold a copy of the blockchain and to keep ownership of their own keys and passphrases for multiple addresses.","title":"PKT Wallet MacOS GUI"},{"location":"pktwalletgui/#first-setup","text":"","title":"First setup"},{"location":"pktwalletgui/#macos","text":"Download pktwallet-(version).dmg Open Finder Double-click on your Downloads folder and find and double-click on pktwallet-(version).dmg to open the disk image A new window will open with the PKT Wallet app, click and drag it into your Applications folder Press Command+Space to open your Spotlight Search and type PKT Wallet, when you see the PKT Wallet app, press the Enter key to open it. The first time PKT Wallet is opened, you will get a popup asking you if you want to open it, click open Continue with Setting up your wallet or Load Existing Wallet From Seed below.","title":"MacOS"},{"location":"pktwalletgui/#setting-up-your-wallet","text":"Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. A video tutorial is available for this method: You will be asked to create a new wallet. Click \"Create Wallet\" Enter passphrase to encrypt your wallet. This passphrase must have upper case and lower case letters and numbers. Retype the passphrase to match and click the \"Enter\" button You will be asked if you want to import an existing seed. Click the \"Continue Without Seed\" button to continue. A 15-word wallet seed will be created for you. Write this seed down. It enables you to open your PKT wallet on another computer or smartphone, for example if your current computer dies. It is advisable to write this on a piece of paper and store it in a safe place. Click \"Open Wallet\" to continue. You will be brought to the main \"Balances\" screen. By default you have no addresses, so you will need to create one. Click the \"Create Address\" button, and then click the \"Generate\" button to generate a new address. The resulting code is the public address which people can pay you at. Click \"Balances\" again to display your balances. By default, accounts with zero PKT will not be displayed unless you click \"Get All Addresses\"","title":"Setting up your wallet"},{"location":"pktwalletgui/#load-existing-wallet-from-seed","text":"Before you can begin using PKT, you need to setup your wallet, this means writing down your secret key and setting passwords so your PKT will stay safe. A video tutorial is available for this method: You will be asked to create a new wallet. Click \"Create Wallet\" Enter passphrase to encrypt your wallet. This passphrase must have upper case and lower case letters and numbers. Retype the passphrase to match and click the \"Enter\" button You will be asked if you want to import an existing seed. Type in your wallet seed and any passphrase. Click the \"Continue With Seed\" button to continue. Your 15-word wallet seed will be displayed on the next screen. Write this seed down. It enables you to open your PKT wallet on another computer or smartphone, for example if your current computer dies. It is advisable to write this on a piece of paper and store it in a safe place. If you have a legacy wallet (from versions prior to 1.0.0), you will never be able to retrieve this seed again from the app. Click \"Open Wallet\" to continue. You will be brought to the main \"Balances\" screen. By default you have no addresses, so you will need to create one. Click the \"Create Address\" button, and then click the \"Generate\" button to generate a new address. The resulting code is the public address which people can pay you at. If this wallet previously had a wallet, address is actually an exsting one that has been retrieved, rather than a newly created address. Click \"Balances\" again to display your balances. By default, accounts with zero PKT will not be displayed unless you click \"Get All Addresses\". It may take several hours for the app to sync the blockchain for the first time. During that time, balances will not be available for your addresses. You will have to verify the balance on the address using the PKT Blockchain Explorer Click \"Receive\" and select the wallet you want to inspect Copy and paste the address into the search field of the PKT Blockchain Explorer, then click the \"Search\" icon.","title":"Load Existing Wallet From Seed"},{"location":"pktwalletgui/#receiving-pkt","text":"To receive coins, you need to create a new PKT address Click the \"Receive\" tab Type a description for the purpose of receiving the coins, this will appear in the notification when you get paid Set the expiration, if this is not an invoice , you can choose \"never\" After you click \"Request\", your wallet will create a new address and copy it to your clipboard so you can send it to the person paying you (or transfer money to your new wallet) When PKT gets sent to your new address, you will get a notification. It says \"unconfirmed\" because the transaction has not yet been included in the history of the blockchain. Congratulations, you have received your first PKT. It make take some time before the transaction is confirmed by the network and the PKT is formally in your account.","title":"Receiving PKT"},{"location":"pktwalletgui/#sending-pkt","text":"To pay PKT to someone else, click on the Send tab and paste the address to be paid Type a description of the payment, this is just for you, it will not be sent to the person you are paying Enter the amount to be paid Click Pay You will be prompted to enter your wallet passphrase in order to decrypt the wallet for one brief moment to send the PKT Every transaction requires a fee for inclusion in the blockchain, this is a very small cost: 132 nPKT is one hundred and thirty two nano-PKT (that means billionths , i.e. 0.000000132 PKT) After you enter your passphrase and click \"send\", you will see a transaction ID , this set of numbers and letters uniquely identifies your transaction and can be used to view it in the block explorer. Just like when receiving, your transaction will appear first as \"unconfirmed\" and then later it will switch to a clock when it has been included in the blockchain. When people consider a transaction to be \"complete\" depends on the merchant, but in after some time the transaction will be confirmed and the PKT be in the recipient's account. Congratulations, you've sent PKT!","title":"Sending PKT"},{"location":"pktwalletgui/#about-units","text":"Each PKT is made up of 1000 milli-PKT, denoted mPKT Each milli-PKT is sub-divided into 1000 micro-PKT, denoted uPKT Each micro-PKT is sub-divided into 1000 nano-PKT, denoted nPKT","title":"About Units"},{"location":"pktwalletgui/#statistical-verification","text":"PKT Electrum makes the job of an attacker hard by asking for an unpredictable random set of PacketCrypt proofs, the chance of any give block being verified is based on the distance between the tip of the chain and that block. The chance is defined as MIN(100%, K / distance_from_tip) where K is a constant which we set at 20 to make PKT Electrum verify around 200 blocks total. With K = 20 , the first 20 blocks have a 100% chance of being verified. * block 21 has a 95% chance * block 25 has an 80% chance * block 50 has a 40% chance * block 80 has a 25% chance The distribution of likelyhood of verifying a block is shown by this chart:","title":"Statistical Verification"},{"location":"stake/community-liquidity/","text":"Community Liquidity The introduction of new incentives for the community to provide liquidity and engage in long-term staking within Uniswap's liquidity pools marks a strategic advancement for the PKT project. By incentivizing token holders to stake PKT/ETH into the Uniswap liquidity pool, this not only stabilizes price and fosters growth, but makes the market more resilient to large trades that could cause price volatility. Participants benefit from rewards for their staking, incentivizing longer-term investment and reducing market fluctuations . This approach enhances the overall ecosystem\u2019s stability and sustained growth is paving the way for increased investor confidence and the long-term success of the project.","title":"Community Liquidity"},{"location":"stake/community-liquidity/#community-liquidity","text":"The introduction of new incentives for the community to provide liquidity and engage in long-term staking within Uniswap's liquidity pools marks a strategic advancement for the PKT project. By incentivizing token holders to stake PKT/ETH into the Uniswap liquidity pool, this not only stabilizes price and fosters growth, but makes the market more resilient to large trades that could cause price volatility. Participants benefit from rewards for their staking, incentivizing longer-term investment and reducing market fluctuations . This approach enhances the overall ecosystem\u2019s stability and sustained growth is paving the way for increased investor confidence and the long-term success of the project.","title":"Community Liquidity"},{"location":"stake/how-to/","text":"How to Stake Staking PKT is easy and safe. Here is a step by step guide: Go to PKT Dashboard and navigate to the staking tab Connect your web3 wallet to the dashboard by clicking Connect Wallet You will need to have some Ethereum on Base in your wallet before you can start staking your PKT. This is required to pay gas fees on the Base blockchain, which uses the Ethereum blockchain Click Add Stake Add the name of your Stake Add the amount of PKT you want to stake Select how long you want to stake your tokens for: If you lockup for 3 months you get a 1.5x yield credits per PKT If you lockup for 6 months then you get 2x yield credits per PKT If you lockup for 12 months then you get 4x yield credits per PKT If someone referred you to PKT and you add their referral code you will get a 1% yield bonus. Also your friend will get a yield bonus Once you confirm your lockup duration, you will see your Total Yield Credits. This is how much PKT you will earn. Click Confirm A pop up window will appear and click confirm You are now staking your PKT Note If you want to earn maximum yields, you can add liquidity to the liquidity pool and then stake your PKT LP Tokens. Learn More","title":"How to stake"},{"location":"stake/how-to/#how-to-stake","text":"Staking PKT is easy and safe. Here is a step by step guide: Go to PKT Dashboard and navigate to the staking tab Connect your web3 wallet to the dashboard by clicking Connect Wallet You will need to have some Ethereum on Base in your wallet before you can start staking your PKT. This is required to pay gas fees on the Base blockchain, which uses the Ethereum blockchain Click Add Stake Add the name of your Stake Add the amount of PKT you want to stake Select how long you want to stake your tokens for: If you lockup for 3 months you get a 1.5x yield credits per PKT If you lockup for 6 months then you get 2x yield credits per PKT If you lockup for 12 months then you get 4x yield credits per PKT If someone referred you to PKT and you add their referral code you will get a 1% yield bonus. Also your friend will get a yield bonus Once you confirm your lockup duration, you will see your Total Yield Credits. This is how much PKT you will earn. Click Confirm A pop up window will appear and click confirm You are now staking your PKT Note If you want to earn maximum yields, you can add liquidity to the liquidity pool and then stake your PKT LP Tokens. Learn More","title":"How to Stake"},{"location":"stake/stake-earn/","text":"Stake-to-Earn PKT introduces an innovative stake-to-earn protocol, designed to reward community members for their long-term commitment to the network. This protocol offers participants the opportunity to lock up their PKT tokens to earn substantial yields and benefit from lucrative yield multipliers. Each 1 PKT is worth 1 Yield Credit. The longer the lockup duration, the higher the multiplier: a 3 month stake yields a 1.5x multiplier, 6 months yields a 2x multiplier, and 12 months yields a 4x multiplier. For instance, staking 1 million PKT for 12 months will result in earnings from 4 million yield credits. This structured incentive system is designed to align individual incentives with the broader goal of enhancing the PKT Network's physical infrastructure.","title":"Stake to earn"},{"location":"stake/stake-earn/#stake-to-earn","text":"PKT introduces an innovative stake-to-earn protocol, designed to reward community members for their long-term commitment to the network. This protocol offers participants the opportunity to lock up their PKT tokens to earn substantial yields and benefit from lucrative yield multipliers. Each 1 PKT is worth 1 Yield Credit. The longer the lockup duration, the higher the multiplier: a 3 month stake yields a 1.5x multiplier, 6 months yields a 2x multiplier, and 12 months yields a 4x multiplier. For instance, staking 1 million PKT for 12 months will result in earnings from 4 million yield credits. This structured incentive system is designed to align individual incentives with the broader goal of enhancing the PKT Network's physical infrastructure.","title":"Stake-to-Earn"},{"location":"stake/stake-lp-tokens/","text":"How to Stake PKT LP Tokens If you want to stake your PKT LP Tokens for maximum (up to 4X) yields go to the pkt.cash dashboard and click on the Staking tab on the menu bar Connect your web3 wallet by clicking Connect Wallet Click Add Stake Add the name of your Stake Add the amount of PKT LP Tokens you want to stake Note You can also stake any extra PKT you have in your wallet that is not part of the LP, which will also earn yields. Learn More Select how long you want to stake your tokens for: If you lockup for more than 1 week, you will get a share of 1m PKT per day bonus paid paid pro rata to all liquidity pool providers\" If you lockup for 3 months you get a 1.5x yield credits per PKT If you lockup for 6 months then you get 2x yield credits per PKT If you lockup for 12 months then you get 4x yield credits per PKT If someone referred you to PKT and you add their referral code you will get a 1% yield bonus. Also your friend will get a yield bonus Once you confirm your lockup duration, you will see your Total Yield Credits. This is how much PKT you will earn. Click Confirm A pop up window will appear and click confirm Now you have staked your PKT LP Tokens","title":"How to stake LP tokens"},{"location":"stake/stake-lp-tokens/#how-to-stake-pkt-lp-tokens","text":"If you want to stake your PKT LP Tokens for maximum (up to 4X) yields go to the pkt.cash dashboard and click on the Staking tab on the menu bar Connect your web3 wallet by clicking Connect Wallet Click Add Stake Add the name of your Stake Add the amount of PKT LP Tokens you want to stake Note You can also stake any extra PKT you have in your wallet that is not part of the LP, which will also earn yields. Learn More Select how long you want to stake your tokens for: If you lockup for more than 1 week, you will get a share of 1m PKT per day bonus paid paid pro rata to all liquidity pool providers\" If you lockup for 3 months you get a 1.5x yield credits per PKT If you lockup for 6 months then you get 2x yield credits per PKT If you lockup for 12 months then you get 4x yield credits per PKT If someone referred you to PKT and you add their referral code you will get a 1% yield bonus. Also your friend will get a yield bonus Once you confirm your lockup duration, you will see your Total Yield Credits. This is how much PKT you will earn. Click Confirm A pop up window will appear and click confirm Now you have staked your PKT LP Tokens","title":"How to Stake PKT LP Tokens"},{"location":"stake/stake-lp/","text":"How to Stake the Liquidity Pool To earn the maximum staking yields, you can add liquidity to the Liquidity Pool and then stake your LP Tokens. Here\u2019s how: Buy equal amounts of PKT and Ethereum on Base. For instructions on how to buy PKT on Base, go here. You can buy Ethereum on Base directly in your web3 wallet. Once you have an equal amount of PKT and Base Ethereum go to the pkt.cash dashboard here . Connect your wallet Click on the Liquidity Pool tab Choose how much Ethereum on Base and PKT you want to add to the liquidity pool Once you submit you will receive PKT LP Tokens directly into your web3 wallet","title":"How to stake LP"},{"location":"stake/stake-lp/#how-to-stake-the-liquidity-pool","text":"To earn the maximum staking yields, you can add liquidity to the Liquidity Pool and then stake your LP Tokens. Here\u2019s how: Buy equal amounts of PKT and Ethereum on Base. For instructions on how to buy PKT on Base, go here. You can buy Ethereum on Base directly in your web3 wallet. Once you have an equal amount of PKT and Base Ethereum go to the pkt.cash dashboard here . Connect your wallet Click on the Liquidity Pool tab Choose how much Ethereum on Base and PKT you want to add to the liquidity pool Once you submit you will receive PKT LP Tokens directly into your web3 wallet","title":"How to Stake the Liquidity Pool"},{"location":"start_mining/announcement-mining/","text":"How to Start Announcement Mining Announcement Mining creates a small (1KB) message that is difficult to compress and proves work was done. Announcements are transmitted to and collected by block miners to form blocks. This simulates the transmission of data across the network. Announcement miners must maximize their CPU processing power and bandwidth upload speed for the highest yields. Announcement mining can be done from nearly any device that has a CPU processor and access to bandwidth. Also include: Multi-pool mining means submitting the exact same announcements to multiple pools. So if you have the bandwidth available it will always benefit you to mine in all of the major pools. Mining PacketCrypt is a bandwidth hard proof of work , this means it requires lots of bandwidth to mine. Miners collaborate with one another by sending small messages (called Announcements ) and the sending of these messages requires a large amount of bandwidth . Miners who are working in collaboration with one another are members of a mining pool, therefore all mining of PacketCrypt is done in pools. PacketCrypt mining is split into two distinct stages: Announcement Mining - Using your CPU to create Announcements Block Mining - Collecting Announcements from Announcement Miners and using them to mine blocks Block mining is typically done at the mining pool's datacenter, however Announcement mining can be done from anywhere. How to Announcement mine There are a number of options available when it comes to installing the PacketCrpyt announcement miner. Choose whichever best suits your technical ability: 1. Install a Pre-built Binary Pre-built packetcrypt binaries (for linux) or installation packages (for macos) and archives (for windows) can be downloaded from packetcrypt releases page . For windows , download the zip archive suffixed with -windows.zip and extract its content. For macos , download the package suffixed with .pkg and click on its icon in the Finder for installation. For linux , download the binary suffixed with -linux_amd64 and rename it packetcrypt . If you're on Arch linux or Manjaro, you can install the packetcrypt AUR package 2. Deploy a Docker Image There is a PacketCrypt Docker image available, which can be used for announcement mining. To install: Download and install Docker for your operating system. Download the PacketCrypt Docker image: $ docker pull thomasjp0x42/packetcrypt There are also PacketCrypt Docker images built without the portable flag ( --no-portable ) which may increase the performance of the announcement mining while reducing CPU compatibility. One such image (compiled on AMD 5950x) is available at thomasjp0x42/packetcrypt-amd64 . Additionally, for ARM devices such as Raspberry Pi, there is an image available at thomasjp0x42/packetcrypt-arm64 . The arm64 image will also work on Apple silicon such as the M1 and M2 chips. Run the container similar to the commands described in the Begin Announcement Mining section, except replace this part of the command: $ packetcrypt with this command to run PacketCrypt from Docker: $ docker run thomasjp0x42/packetcrypt The final command will be formatted like this: $ docker run thomasjp0x42/packetcrypt ann -p