-
-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2020 Summer Internship Project: Bitcoin Standup Linux/VPS/Windows Script Improvements #8
Comments
As per our discussion @ChristopherA , I'm "splitting out" the task of "release scripts to work standalone for Windows" into its own designated issue, and claiming "point person" for that deliverable. I feel confident enough poking around existing scripts, and whether I like it or not, some of my grad work has required me to commit in-depth to Windows literacy. I'll still always fall back to Linux when I have a choice, but the wrangling experience will likely prove valuable! |
Linode has block storage which can be attached to a linode. 320GiB costs $32/month and 640GiB costs $64/month ($0.10/GiB per month). Using 640GiB attached to a 4GB RAM VM would cost $84 a month. DigitalOcean also has block storage at a similar price. OVH seems to have cheaper options: VPS/block storage, but I haven't looked into the specifics of the pricing. Also AWS has HDD storage, which may turn out to be cheaper than the previous options, but the unpredictable pricing would be a problem. |
ProposalTasks
Enhancements and Other Services
Questions
Hosting Data
AWS S3 upto 50 TB:
|
Additionally, scope how to incorporate BitcoinFiber for faster sync between nodes and Blockstream Sattelite for hosting multiple networks. |
BTW, to be clear, Blockchain Commons is willing to pay for full hosting. In fact, I'd like to eventually also offer full Esplora (aka Blockstream.info). I just want to allow others to be able to follow us by offering redundant services more cheaply. Another point of interest. Every time someone uses my Bitcoin course and sets up a Linode to give it a try, we get a $10 credit. So I have a bunch of unused credit on Linode. That, and that is is very easy for a new developer to set up a StackScript (as opposed to the much more complicated deployment systems), is why we currently use Linode. However, we don't have to. Ultimately I'd like Blockchain Commons to be able to have 3 redundant hosts around the world. -- Christopher Allen |
Good question. I know that we already use Esplora via Blockstream.info, and it is probably good for us to host an Esplora instance of our own. Maybe a survey of each of these requirements? Also how stable are they? So far our scripts for self-hosting and our devops are an all volunteer group, so we have to consider ongoing support costs. -- Christopher Allen |
Esplora needs 440GB after compaction (~1TB while indexing) and 270GB at 620k block height in |
@ChristopherA I can get on top of this and would like to volunteer to lead on the Standup scripts for Linux. Currently both Linode & Linux Standup scripts are pretty much the same which can be merged and tested.
We need better documentation of our environment variables for better configurability, relevant additions, add flags especially
Until we figure out hosting pre-signed data, I propose to use BTCPay Server's copy. That way we can at least test out the setup. Proposed Milestones
Once, milestone 2 is achieved we can test the script on Linode and host a full node if we have the credits? Tasks
Scope
Question: Do we want to add BTCPay Server to this script? @Fonta1n3 what do you think? |
This should certainly be number 1 priority.
I feel Esplora is too cumbersome for a VPS, can we make it optional?
I personally prefer c-lightning so would like to see that take priority, but beggars can't be choosers ;-)
I am really not sure about adding knots or signet as it would probably just confuse people and I am sure we can add other more useful features instead?
I think that would be great. |
Meaning modify how we create HS for linux accordingly? If so, sure!
Agreed and yes it will be optional. Infact, the way I plan to implement it is only bitcoind will be the base installation, everything else will be optional based on user preference.
I have never worked with c-lightning, and this will be a great motivation for me to learn how to c-lightning. Since, LND is very easy, i will start with that and then also integrate c-lightning option or the other way round. I will look into it.
I only added those since @ChristopherA mentioned it. But, i feel these are low priority and there's a lot to do before that. We can take a call on them at a later date. What other services would you like to be added to the scripts? |
Yes, it is unlikely our typical BitcoinStandup VPS users will want to do Esplora, but I know we will want to do our own as it is needed for some future things like BTCR.
Knots has the lowest priority, but I'd love to be able demonstrate that we can, and get @luke-jr's endorsement. Signet is potential much more useful for us, as I have concerns about FN2 performing well under adversarial conditions or if full nodes are tied up in forks and such. Signet can simulate those, making me feel much more confident about FN2 on mainnet. Fibre could potentially also be very useful once we have more people doing BitcoinStandup, as we can lower latency between associated nodes. It also is a prerequisite for Blockstream Satellite. --Christopher Allen |
I like this idea, will be done! 😁 |
When i installed standup.sh for using FullyNoded2 with my own mainnet node I don't needed perform IBD, so in addition to the first option to install all stuff (including two steps for c-lightning),
I think it is a good idea to give the user different options depending on their situation. Perhaps creating a menu that calls different functions and executes the pre-checks is an ideal approach. Something like this:
Script standup.sh
Waiting your comments. |
@javiervargas Would this require displaying the main menu repeatedly to install each service/item? Here's how i'm thinking to implement the structure: UX
All of these options can be given as arguments to the script for a one liner. Default InstallationAll communication defaults through Tor. Services:
|
@jodobear Not exactly, the menu is in a do while cycle that you can interrupt at any time with ctrl-c. |
Ok, I'm currently deconstructing it, laying down best practices and putting the variables in place. I'll probably push a basic structure by this weekend and we can take it from there |
I've merged the scripts, added help, documentation, checks for each step and installing bitcoin from onion site: It's tested on Debian 10 VM. Everything works and is setup properly. Still need to test on VPS, don't have access at the moment. Please provide feedback if i can do it better or making any mistakes. |
Closing out summer 2020 issues. Thanks to @jodobear for work on the Standup Scripts! |
Currently the linux scripts for Bitcoin Standup Scripts are fairly simple, and establish just a single node.
This script was originally based on the script in Learning Bitcoin from the Command Line as I found it very inexpensive and easy for a novice to install a Bitcoin testnet full-node with tx-index on Linode by simply pasting a single stackscript and waiting a half-day. This node would be free for the first month (and Blockchain Commons gets a $10 credit if they use the referral code), and only $5 - $10 a month thereafter. When I had taught it before with people laptops we had all kinds of problems, and this solved it.
However, for purposes of a Bitcoin mainnet full node, especially one that is not pruned, hosting a VPS using this script is expensive. On Linode a single VPS that can hold a full node is $160 a month, but that includes 32GB RAM and SSD which is overkill. So we should research the cheapest way to host the bitcoin data on various VPS service separate from the VPS itself.
This will also help us in the future as hosting a Lightning Network requires a full node. See Issue #7.
There are other improvements that can be made to the Bitcoin Standup scripts, including:
We also should release scripts to work standalone for Mac (for those who don't want to use the Bitcoin Standup Mac app) and Windows (a big challenge).
Eventually, after thorough testing, these scripts should audited formally by people in the bitcoin-core community.
What other features am I missing?
-- Christopher Allen
The text was updated successfully, but these errors were encountered: