# RFP: Interactive Workflows for Setup and Transaction Signing on the Cosmos Network ## Why Cosmos? The Cosmos Network is an interoperable internet of blockchains. It allows anyone to implement and maintain their own blockchain while providing a medium for transactions between blockchains in the network. This balances the standardization of information exchange, which led to the rise of the web, with the self-determination of decentralization, presenting the opportunity for an explosion of coordination and collaboration the likes of which we haven't seen since the browser unified our collective experience of the internet. ## What are the major puzzle pieces? - The Cosmos Hub is the very first blockchain on the Cosmos Network, and it maintains state of transactions across the network. - The essential pieces enabling the Cosmos Network are Tendermint (the consensus algorithm), IBC (the inter-blockchain protocol, enabling interactions across the network) and Cosmos SDK (tools which enable apps to be built on top of Cosmos). - Gaia is the first implementation of the Cosmos Hub, and is built using the Cosmos SDK. Gaia is comprised of nodes running the Gaia Daemon, which can be interacted with using a CLI. - ATOM is the primary token which can be sent and received within the Cosmos Hub. - Multisig (multisignature) Transactions require signatures from multiple keys to be enacted, and require cooperation from the parties involved. This is essential to the security of crypto transactions. ## What's the problem? **Cosmos represents the best shot we have at a new internet revolution, but adoption currently has a ceiling on it.** To fulfill the vision of a wide-reaching, vibrant internet of blockchains, we need to incentivize technologists who don't yet have crypto expertise to build on top of Cosmos. However, onboarding is hard to troubleshoot if you're not already familiar with Cosmos. A Catch-22! Play is crucial to adoption of new technolgies. Right now there's signficant mental overhead required for would-be creators to experiment with our ecosystem, which causes a dropoff in participation. There are also meaninful context switching costs to going back and forth between your terminal and a web page. Documentation easily falls out-of-sync with the state of the tooling itself, inviting compounding friction. ## We'd love to see your proposals for implementation of the following solution: Build interactive workflows for setup and transaction signing into the CLI itself, similar to the UX of LetsEncrypt's certbot. This will enable developers who do not yet have crypto expertise to sail through setup and get to experimentation faster, while addressing the risk of the functionality getting out sync with the docs right in the tooling itself. Please propose implementations for scripting and interactive command line workflows to address tasks like: - Installation of Go and Gaia - Setting up a Gaia node - Generating new keys - Generating a Cosmos Hub multisig account - Sending tokens - Signing transactions **Inspiration:** [LetsEncrypt](https://letsencrypt.org) and [Certbot](https://certbot.eff.org) **Example behavior:** ``` root@ubuntu-s-1vcpu-1gb-nyc1-01:~# certbot certonly Saving debug log to /var/log/letsencrypt/letsencrypt.log How would you like to authenticate with the ACME CA? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Spin up a temporary webserver (standalone) 2: Place files in webroot directory (webroot) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1 Plugins selected: Authenticator standalone, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): ananoemi@fastmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server. Do you agree? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: n Account registered. Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): 159.65.218.175 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - One or more of the entered domain names was not valid: 159.65.218.175: Requested name 159.65.218.175 is an IP address. The Let's Encrypt certificate authority will not issue certificates for a bare IP address. Would you like to re-enter the names? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: testing.ananoemi.net (Y)es/(N)o: y Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): testing.ananoemi.net Requesting a certificate for testing.ananoemi.net Performing the following challenges: http-01 challenge for testing.ananoemi.net Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/testing.ananoemi.net/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/testing.ananoemi.net/privkey.pem Your certificate will expire on 2021-05-19. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le ``` --- # Iterations to reach the above document: ## First iteration: Freewrite So, let's get oriented... The [Cosmos Hub](https://hub.cosmos.network/main/hub-overview/overview.html) is the first blockchain in the [Cosmos Network](https://cosmos.network). It facilitates token interactions between subsequent blockchains in the network, and keeps track of their state. [Gaia](https://github.com/cosmos/gaia) is the first implementation of the Cosmos Hub, and is built using the [Cosmos SDK](https://github.com/cosmos/cosmos-sdk). [`gaiad`](https://hub.cosmos.network/main/resources/gaiad.html#), short for "Gaia Daemon", is (I believe) the CLI which allows humans to interact with the Cosmos Network, and can be installed by following [these instructions](https://hub.cosmos.network/main/gaia-tutorials/installation.html). --- References in this cycle: - [Cosmos: The Vision (video) ](https://youtu.be/Eb8xkDi_PUg) - [Cosmos Hub](https://hub.cosmos.network/main/hub-overview/overview.html) - [Cosmos Network](https://cosmos.network) - [Gaia](https://github.com/cosmos/gaia) - [Cosmos SDK](https://github.com/cosmos/cosmos-sdk) - [`gaiad`](https://hub.cosmos.network/main/resources/gaiad.html#) - [Install Gaia](https://hub.cosmos.network/main/gaia-tutorials/installation.html) ## Second Iteration: Identify pieces, ask/answer "what is it and what does it do?" **Cosmos Network** - An internet of interoperable blockchains. The Cosmos Network is a project to build a sociotechnical successor to the web. - An interoperable medium to allow blockchain applications to interact, creating an ecosystem of emergent opportunity for coordination and collaboration like we haven't seen since the first days of the web - This gives creators a means of interfacing with other applications while maintaining control of how their implementation & community are stewarded. **Cosmos Hub** - The first blockchain in the Cosmos Network - Facilitates transactions between blockchains in the Cosmos Network and keeps track of their state **ATOM** - The primary token of the Cosmos Hub - Lets you send/receive transactions across the blockchains that make up the Cosmos Network **Multisignature (Multisig)** - Digital signature in which there are multiple keys, with multiple parties required to use keys to sign a transaction - Confirms security of transactions **Multisig account** (needs confirmation) - An account on the Cosmos Network - Enables you to send and receive funds **Cosmos SDK** **IBC Protocol** **Gaia** - Gaia is the first implementation of the Cosmos Hub blockchain, built using the Cosmos SDK - Enables interactions between blockchains in the network, via the IBC protocol **Gaia Daemon (`gaiad`)** - Runs a Gaia node - Allows detection of changes (to your account? within the network?) **Gaia CLI** - Command Line Interface - Enables interactions with the Gaia Daemon and the larger network --- Additional references/notes in this cycle: - [Gaia docs: Generate multisig public keys](https://hub.cosmos.network/main/resources/gaiad.html#generate-multisig-public-keys) - [CyberCongress Multisig Guide](https://cybercongress.ai/docs/go-cyber/multisig_guide/) - [Tendermint.com](https://tendermint.com) - [Cosmos SDK](https://tendermint.com/sdk/) - [IBC Protocol](https://tendermint.com/ibc/) ## Third Iteration - Develop an opinion on "Why Cosmos?" Answering "What is the Cosmos network, and what does it do/get me"? (aka "Why?") Language from intro vid: "globalized, interconnected token economy" "launch their own token economies" - open finance - prediction markets - cross-border payments - healthcare - real estate sovereignty & governance: in single blockchain networks, if there's a bug in the application, nothing can be done without approval of Ethereum platform Cosmos Network breaks out of this, Any kind of blockchain can be connected to Cosmos - Althea: providing peer-to-peer internet - Foam: location data - Anatha: self-fueling UBI - Regen.network: carbon removal marketplace - An interoperability medium for blockchain applications, enabling a massive explosion of technology for end-user coordination and communication which, despite being interoperable, are stewarded by their creators without need for permission from the platform itself (i.e. Ethereum or Cosmos Network). _This is a golden balance of ability to transact outside your application while having freedom to steward your application as your see fit._ --- Additional references/notes in this cycle: - [What is Cosmos?](https://cosmos.network/intro) - [Explore Cosmos Network](https://cosmos.network/ecosystem/apps) - [Althea](https://althea.net/) - [Foam](https://foam.space/) - [Anatha](https://anatha.io/project-anatha) - [Regen Network](https://www.regen.network/) - [Mosaic web browser](https://en.wikipedia.org/wiki/Mosaic_(web_browser)) - Updated "Cosmos Network" section in previous iteration based on notes from this pass. ## Fourth Iteration - Introduce RFP structure - What is the Cosmos Network? Why should you care? - The Cosmos Network is an interoperable internet of blockchains. It allows anyone to implement and maintain their own blockchain while providing a medium for transactions across blockchains in the network. This balances the standardization of information exchange we know from the original web with the self-determination of decentralization, and presents the opportunity for an explosion of coordination and collaboration the likes of which we haven't seen since the browser unified our collective experience of the internet. - What are its main pieces, pertinent to the task at hand? - The Cosmos Hub is the very first blockchain on the Cosmos Network, and it maintains state of transactions across the network. - The essential pieces of the Cosmos Network are Tendermint (the consensus algorithm), IBC (the inter-blockchain protocol, enabling interactions across the network) and Cosmos SDK (tools which enable apps to be built on top of Cosmos). - Gaia is the first implementation of the Cosmos Hub, and is built using the Cosmos SDK. Gaia is comprised of nodes running the Gaia Daemon, which can be interacted with using a CLI. - ATOM is the primary token which can be sent and received within the Cosmos Hub. - Multisig (multisignature) Transactions require signatures from multiple private keys to be enacted, and require cooperation from the parties involved. This is essential to the security of crypto transactions. - What's the problem? - We'd love to see you help implement [X] as a solution. --- Additional references/notes in this cycle: - [Gaia setup](https://hub.cosmos.network/main/resources/gaiad.html) -- it was in this step that I began to interact with this workflow ## Fifth Iteration - Flesh out RFP outline - What is the Cosmos Network? Why should you care? - The Cosmos Network is an interoperable internet of blockchains. It allows anyone to implement and maintain their own blockchain while providing a medium for transactions with other blockchains in the network. This balances the standardization of information exchange we know from the web with the self-determination of decentralization, presenting the opportunity for an explosion of coordination and collaboration the likes of which we haven't seen since the browser unified our collective experience of the internet. - What are its main pieces, pertinent to the task at hand? - The Cosmos Hub is the very first blockchain on the Cosmos Network, and it maintains state of transactions across the network. - The essential pieces enabling the Cosmos Network are Tendermint (the consensus algorithm), IBC (the inter-blockchain protocol, enabling interactions across the network) and Cosmos SDK (tools which enable apps to be built on top of Cosmos). - Gaia is the first implementation of the Cosmos Hub, and is built using the Cosmos SDK. Gaia is comprised of nodes running the Gaia Daemon, which can be interacted with using a CLI. - ATOM is the primary token which can be sent and received within the Cosmos Hub. - Multisig (multisignature) Transactions require signatures from multiple private keys to be enacted, and require cooperation from the parties involved. This is essential to the security of crypto transactions. - What's the problem? - To fulfill the vision of a wide-reaching, vibrant internet of blockchains, technologists who don't yet have crypto expertise need to begin building on top of the Network. However, onboarding for the crucial workflow that results in signing a transaction yields output which is hard to troubleshoot if you're not already familiar with Cosmos. It's a Catch-22! - Documentation easily falls out-of-sync with the state of the tooling itself, inviting compounding on friction. - In short, Cosmos represents the best shot we have at a new internet revolution, but adoption currently has a ceiling on it. - We'd love to see you help implement the following solution. - Build contextualizing, human-readable prompts for each step of this crucial workflow into the CLI itself, similar to the UX of LetsEncrypt. This will enable developers who do not yet have crypto expertise to sail through setup, while addressing the risk of the functionality getting out sync with the docs right in the tooling itself. - Please propose implementations for command line-level user prompts for: - Setting up Gaia - Generating new secp256k1 keys - Generating a Cosmos Hub multisig account - Sending tokens - Signing transactions - Inspiration: LetsEncrypt and Certbot --- Additional references/notes in this cycle: - Got backup for yak shaving `gaiad` setup - It was here that I ran through [keygen](https://hub.cosmos.network/main/resources/gaiad.html#generate-keys) and [multisig creation ](https://hub.cosmos.network/main/resources/gaiad.html#generate-multisig-public-keys) - https://medium.com/argenthq/decentralised-and-seedless-wallet-recovery-5fcf7dddd78d - Landed on the idea for command line workflow prompts - Created a Digital Ocean instance, ran through LetsEncrypt workflow ## Sixth Iteration - Furthering polishing, added LetsEncrypt output - What is the Cosmos Network? Why should you care? - The Cosmos Network is an interoperable internet of blockchains. It allows anyone to implement and maintain their own blockchain while providing a medium for transactions between blockchains in the network. This balances the standardization of information exchange, which led to the rise of the web, with the self-determination of decentralization, presenting the opportunity for an explosion of coordination and collaboration the likes of which we haven't seen since the browser unified our collective experience of the internet. - What are its main pieces, pertinent to the task at hand? - The Cosmos Hub is the very first blockchain on the Cosmos Network, and it maintains state of transactions across the network. - The essential pieces enabling the Cosmos Network are Tendermint (the consensus algorithm), IBC (the inter-blockchain protocol, enabling interactions across the network) and Cosmos SDK (tools which enable apps to be built on top of Cosmos). - Gaia is the first implementation of the Cosmos Hub, and is built using the Cosmos SDK. Gaia is comprised of nodes running the Gaia Daemon, which can be interacted with using a CLI. - ATOM is the primary token which can be sent and received within the Cosmos Hub. - Multisig (multisignature) Transactions require signatures from multiple private keys to be enacted, and require cooperation from the parties involved. This is essential to the security of crypto transactions. - What's the problem? - To fulfill the vision of a wide-reaching, vibrant internet of blockchains, we need technologists who don't yet have crypto expertise to begin building on top of Cosmos. However, onboarding for the crucial workflow that results in signing a transaction yields output which is hard to troubleshoot if you're not already familiar with Cosmos. A Catch-22! - Play is crucial to adoption of new technolgies. Right now there's signficant mental overhead required for would-be creators to experiment with our ecosystem, which causes a dropoff in participation. - There are also meaninful context switching costs to going back and forth between your terminal and a web page. Documentation easily falls out-of-sync with the state of the tooling itself, inviting compounding friction. - In short, Cosmos represents the best shot we have at a new internet revolution, but adoption currently has a ceiling on it. - We'd love to see your implementation proposals for the following solution: - Build interactive workflows for setup and transaction signing into the CLI itself, similar to the UX of LetsEncrypt. This will enable developers who do not yet have crypto expertise to sail through setup and get to experimentation faster, while addressing the risk of the functionality getting out sync with the docs right in the tooling itself. - Please propose implementations for scripting and interactive command line workflows to address tasks like: - Installation of Go and Gaia - Setting up a Gaia node - Generating new keys - Generating a Cosmos Hub multisig account - Sending tokens - Signing transactions - Inspiration: [LetsEncrypt](https://letsencrypt.org) and [Certbot](https://certbot.eff.org) - Example: ``` root@ubuntu-s-1vcpu-1gb-nyc1-01:~# certbot certonly Saving debug log to /var/log/letsencrypt/letsencrypt.log How would you like to authenticate with the ACME CA? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Spin up a temporary webserver (standalone) 2: Place files in webroot directory (webroot) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1 Plugins selected: Authenticator standalone, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): ananoemi@fastmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server. Do you agree? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: n Account registered. Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): 159.65.218.175 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - One or more of the entered domain names was not valid: 159.65.218.175: Requested name 159.65.218.175 is an IP address. The Let's Encrypt certificate authority will not issue certificates for a bare IP address. Would you like to re-enter the names? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: testing.ananoemi.net (Y)es/(N)o: y Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): testing.ananoemi.net Requesting a certificate for testing.ananoemi.net Performing the following challenges: http-01 challenge for testing.ananoemi.net Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/testing.ananoemi.net/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/testing.ananoemi.net/privkey.pem Your certificate will expire on 2021-05-19. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le ``` --- Additional references/notes in this cycle: * n/a ## Seventh Iteration -- Turns bullets into prose, fine tune for impact ## Why Cosmos? The Cosmos Network is an interoperable internet of blockchains. It allows anyone to implement and maintain their own blockchain while providing a medium for transactions between blockchains in the network. This balances the standardization of information exchange, which led to the rise of the web, with the self-determination of decentralization, presenting the opportunity for an explosion of coordination and collaboration the likes of which we haven't seen since the browser unified our collective experience of the internet. ## What are the major puzzle pieces? - The Cosmos Hub is the very first blockchain on the Cosmos Network, and it maintains state of transactions across the network. - The essential pieces enabling the Cosmos Network are Tendermint (the consensus algorithm), IBC (the inter-blockchain protocol, enabling interactions across the network) and Cosmos SDK (tools which enable apps to be built on top of Cosmos). - Gaia is the first implementation of the Cosmos Hub, and is built using the Cosmos SDK. Gaia is comprised of nodes running the Gaia Daemon, which can be interacted with using a CLI. - ATOM is the primary token which can be sent and received within the Cosmos Hub. - Multisig (multisignature) Transactions require signatures from multiple keys to be enacted, and require cooperation from the parties involved. This is essential to the security of crypto transactions. ## What's the problem? **Cosmos represents the best shot we have at a new internet revolution, but adoption currently has a ceiling on it.** To fulfill the vision of a wide-reaching, vibrant internet of blockchains, we need to incentivize technologists who don't yet have crypto expertise to build on top of Cosmos. However, onboarding for the crucial workflow that results in signing a transaction yields output which is hard to troubleshoot if you're not already familiar with Cosmos. A Catch-22! Play is crucial to adoption of new technolgies. Right now there's signficant mental overhead required for would-be creators to experiment with our ecosystem, which causes a dropoff in participation. There are also meaninful context switching costs to going back and forth between your terminal and a web page. Documentation easily falls out-of-sync with the state of the tooling itself, inviting compounding friction. ## We'd love to see your proposals for implementation of the following solution: Build interactive workflows for setup and transaction signing into the CLI itself, similar to the UX of LetsEncrypt's certbot. This will enable developers who do not yet have crypto expertise to sail through setup and get to experimentation faster, while addressing the risk of the functionality getting out sync with the docs right in the tooling itself. Please propose implementations for scripting and interactive command line workflows to address tasks like: - Installation of Go and Gaia - Setting up a Gaia node - Generating new keys - Generating a Cosmos Hub multisig account - Sending tokens - Signing transactions **Inspiration:** [LetsEncrypt](https://letsencrypt.org) and [Certbot](https://certbot.eff.org) **Example behavior:** ``` root@ubuntu-s-1vcpu-1gb-nyc1-01:~# certbot certonly Saving debug log to /var/log/letsencrypt/letsencrypt.log How would you like to authenticate with the ACME CA? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Spin up a temporary webserver (standalone) 2: Place files in webroot directory (webroot) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1 Plugins selected: Authenticator standalone, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): ananoemi@fastmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server. Do you agree? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: n Account registered. Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): 159.65.218.175 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - One or more of the entered domain names was not valid: 159.65.218.175: Requested name 159.65.218.175 is an IP address. The Let's Encrypt certificate authority will not issue certificates for a bare IP address. Would you like to re-enter the names? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: testing.ananoemi.net (Y)es/(N)o: y Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): testing.ananoemi.net Requesting a certificate for testing.ananoemi.net Performing the following challenges: http-01 challenge for testing.ananoemi.net Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/testing.ananoemi.net/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/testing.ananoemi.net/privkey.pem Your certificate will expire on 2021-05-19. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le ``` --- Final note: I approached this prompt in short sprints over multiple days. The output above took me roughly 13 hours, including research and yak shaving. I was extremely fortunate to have the safety and economic leeway to dig into this process, and would not want someone with fewer advantages to be judged based on my work.