Blinkhash (OP)
Newbie
Offline
Activity: 15
Merit: 33
|
Introduction:It's no secret that mining pools, and the mining process as a whole, have been becoming more and more centralized in recent years. In many coins, a single pool is most often responsible for the majority of the hashrate on the network. 51% attacks notwithstanding, it’s much safer and better for a community to have multiple options when mining. It’s my theory that viable, easy-to-use, open-source software would not only help to solve this issue, but it would provide another way for many less-technical individuals to supplement their income passively while contributing to a project. Anyone should be able to setup and host a mining pool with minimal difficulties. Foundation:For the past two years, I’ve been rebuilding NOMP from the ground up, with an emphasis on scalability, simplicity, and reliability. In some ways, the new source, Foundation, is a complete rewrite, but I kept the bones of the project, while gutting pretty much all of the extra/unnecessary features (coin-switching, UI, CLI, etc). The result addresses many of the issues brought up by users over the years and implements a number of features left out of the original solution, while simultaneously boasting cleaner source code and an expansive testing suite. Some of the main improvements notwithstanding the rewrite itself, bug fixes and those mentioned above include the following: - Segwit/Bech32 compliance
- Updated stratum methods according to documentation
- AsicBoost support
- Reorganized configurations that are more intuitive/cleaner
- Reorganized database schema that is more intuitive/cleaner
- Solo-mining functionality for users
- Merged-mining functionality for users
- PPLNT made the default payout scheme (removed PROP)
- Reorganized/reworked API to improve statistics management
- API caching to cut down on database workload
- Updated Node version from v0.10.x to v15.x+
- Full SSL/TLS support
- CI/coverage/linting pipelines
With all these changes and improvements upon the initial source, Foundation is no doubt one of the most sophisticated open-source mining pool solutions currently available, and one of the few that is still being actively developed. It will always be open-source. You can access it here: https://github.com/blinkhash/foundation-server/Blinkhash:On top of this, while building Foundation, I had the idea for a platform that acted as a central “hub” for mining pools. Perhaps the most difficult part of running a mining pool, for the pool owner, is marketing. Until now, all options for mining pools have come with their own UI. The pool owner is responsible not only for setting up the infrastructure but also hosting the attached website and directing traffic to it. Foundation + Blinkhash removes all of that from the equation. Instead, once Foundation is setup and reachable on a server, all that’s necessary is for a pool owner to create an account on the Blinkhash platform: https://blinkhash.com/. In the “Pools” page of their dashboard will be a button that reads “Link a Mining Pool”. The user just needs to fill out this multi-step form with their pool’s information and the platform will handle the rest. After a few minutes, the pool will be “linked”, active, and reachable to anyone. Some examples of linked pools include the following: Note that at this point, though, development on both Foundation and Blinkhash is still ongoing. While both are completely usable, there are a few pages on the platform that still need to be built out (/mining specifically). Feel free to join the Discord ( https://discord.gg/rNjez6VgNF) to follow development and keep track of everything happening in the Blinkhash ecosystem! TLDR:I rebuilt NOMP from the ground up with an emphasis on scalability, simplicity, and reliability. I’m also in the process of building out a platform that allows users to “link” their pools to leverage a streamlined UI + analytics module ( https://blinkhash.com/mining/11a9b195-8b8b-4f3f-bd5c-f55905933f5c) for free until the payment processor + beta testing is done.
|
|
|
|
Blinkhash (OP)
Newbie
Offline
Activity: 15
Merit: 33
|
|
March 20, 2022, 07:31:27 PM |
|
It's great to see more open source software, especially since there are very few open source mining pool software. But when i checked GitHub page, your only source of fund is only donation, is it true?
So right now, I'm paying out of my pocket to support the project. It's not really an issue, I make good money at my day job and am more than happy to give back to the mining community in any way that I can. I also built the entire platform using serverless architecture that scales based on the # of users, so it's pretty cheap to manage at this point in the project with a smaller user-base. Once I've finished beta testing and built out the payment processor for the platform, however, I plan to implement a monthly subscription fee for users to link their pools. I'm still working out the details, trying to figure out decent price points for each of the four service tiers, but it won't be that expensive. I'm also maybe considering launching a PoW utility token that leverages + demonstrates each of the features that Foundation has to offer (multi-algo + merged-mining), and offers benefits and functionality tied to the platform itself.
|
|
|
|
g-uid
Member
Offline
Activity: 259
Merit: 18
|
|
March 21, 2022, 04:33:15 PM |
|
.. with an emphasis on scalability, simplicity, and reliability ..
This is so interesting. I'm curious to learn more about what is involved so please be patient with me. Would you mind briefly sharing some of the challenges that go into maintaining a pool? For example, what is the nature of the costs and what other variables are involved (users, bandwidth, servers, coin type??) in maintaining a pool that scales? If you could point to a resource or two where I could do some reading that would be great too.
|
|
|
|
Blinkhash (OP)
Newbie
Offline
Activity: 15
Merit: 33
|
|
March 21, 2022, 06:10:31 PM |
|
I see. I'd just like to say that there are several services (depending on your time/skill) that usually offered on open source market such as, 1. Priority/premium customer support. 2. Back end/server setup.
As sources of income? Yeah it could be something that I could setup, but any time spent on those options would be time taken away from developing the platform or source. In the meantime I'm more than happy to just answer any questions on the Discord and pay out of pocket, I don't expect to make any money off of the project at this stage.
|
|
|
|
Blinkhash (OP)
Newbie
Offline
Activity: 15
Merit: 33
|
|
March 21, 2022, 06:24:55 PM |
|
.. with an emphasis on scalability, simplicity, and reliability ..
This is so interesting. I'm curious to learn more about what is involved so please be patient with me. Would you mind briefly sharing some of the challenges that go into maintaining a pool? For example, what is the nature of the costs and what other variables are involved (users, bandwidth, servers, coin type??) in maintaining a pool that scales? If you could point to a resource or two where I could do some reading that would be great too. So just building a pool and getting people to mine on it is pretty simple, the easiest way is to just rent a server and install Foundation or some other pool source on it. Your costs initially will mainly just be those server fees, and you can charge a fee as a developer cut for every block that you find. Depending on your server and number of miners on the pool, this may/may not make you that much, if any money. Regarding challenges, while I think Foundation is pretty easy to setup + manage, it still takes some knowledge to debug any issues. The main point of being a reliable mining pool owner is being able to ensure uptime, as every second that your pool is down, your miners are losing money. If you can't guarantee that, it's very likely that your miners will choose to go elsewhere. Once you get enough miners to where you decide to put more work into the mining pool though, there's a few routes you can go: 1. Multiple stratum servers in different regions 2. Multiple/fallback daemons 3. Get better/dedicated servers The point of each of these is not only to allow your mining pool to be able to handle more miners, but also to improve reach and lower latency. But either way, you'll have to draw those conclusions from your miners and make decisions accordingly.
|
|
|
|
Maus0728
Legendary
Offline
Activity: 2030
Merit: 1582
|
|
March 21, 2022, 11:47:47 PM |
|
Regarding challenges, while I think Foundation is pretty easy to setup + manage, it still takes some knowledge to debug any issues. The main point of being a reliable mining pool owner is being able to ensure uptime, as every second that your pool is down, your miners are losing money. If you can't guarantee that, it's very likely that your miners will choose to go elsewhere.
This is indeed a thing to consider before some company or individual take your software as part of their business. One problem I don't know if they might encounter is security once there are still bugs on the software. So far, your software being open source and easy to use is a huge contribution to the mining community. Also, the reason why some asks for what would be your 'mode of earning' in this contribution is that your software can make tons of money for someone who have enough hardware and money to make an infrastructure of servers. Hence why not at least highlight the fact that donation would help you a lot make this a firm software - it isn't necessary indeed but would adds up some return to your hardwork for 2 years. If you ever aren't alone, I know you and your team will reach far in mining community with this contribution. Keep up the good work. There's a lot of things in mining that has to be innovate.
|
|
|
|
Blinkhash (OP)
Newbie
Offline
Activity: 15
Merit: 33
|
|
March 22, 2022, 01:34:42 AM |
|
This is indeed a thing to consider before some company or individual take your software as part of their business. One problem I don't know if they might encounter is security once there are still bugs on the software. So far, your software being open source and easy to use is a huge contribution to the mining community. Also, the reason why some asks for what would be your 'mode of earning' in this contribution is that your software can make tons of money for someone who have enough hardware and money to make an infrastructure of servers. Hence why not at least highlight the fact that donation would help you a lot make this a firm software - it isn't necessary indeed but would adds up some return to your hardwork for 2 years.
If you ever aren't alone, I know you and your team will reach far in mining community with this contribution. Keep up the good work. There's a lot of things in mining that has to be innovate.
Thanks, really appreciate it! Yep, I definitely agree with your comment on security, especially for enterprise users. I don't necessarily expect a large operation to trust and use Foundation currently though, especially given how new/unproven it is at scale. I'm more targeting smaller miners and individuals looking to get involved with the community, but there'll always be room for growth as the project becomes more established.
|
|
|
|
dkbit98
Legendary
Offline
Activity: 2408
Merit: 7548
|
|
March 22, 2022, 11:44:11 AM |
|
This looks like a very interesting open source project, and everything is offered for free if I understand this correctly. I am not sure what mining pools are you supporting, because website page with that is empty and gives no information. I would prefer to see support for many smaller pools, that would help further decentralization of bitcoin mining pools. Segwit/Bech32 compliance Are there any plans to add support for Taproot addresses? I know they are relative new but more and more wallets are supporting them every day.
|
|
|
|
Blinkhash (OP)
Newbie
Offline
Activity: 15
Merit: 33
|
|
March 22, 2022, 01:10:44 PM |
|
This looks like a very interesting open source project, and everything is offered for free if I understand this correctly. I am not sure what mining pools are you supporting, because website page with that is empty and gives no information. I would prefer to see support for many smaller pools, that would help further decentralization of bitcoin mining pools. Segwit/Bech32 compliance Are there any plans to add support for Taproot addresses? I know they are relative new but more and more wallets are supporting them every day. Thanks! And yep, right now the software will be completely free and open-source. Just the platform will have a subscription model to "link" pools once beta testing concludes. Regarding the mining pools, I am still in the process of building out the page, but you can view a few pools in the meantime if you scroll down on the main site: https://i.imgur.com/BAqMueo.png. The idea for the platform is exactly what you're suggesting also--the goal is absolutely to support and help smaller pools develop. Regarding Taproot addresses, I don't have plans for it currently, but it will most likely be added at some point.
|
|
|
|
SFR10
Legendary
Offline
Activity: 3178
Merit: 3528
Crypto Swap Exchange
|
|
March 22, 2022, 01:33:56 PM |
|
gutting pretty much all of the extra/unnecessary features (coin-switching,
Out of curiosity, why do you think this particular feature is unnecessary? I'm not a back-end coder by any means, but AFAIK, it'd be more profitable for the miners if that feature existed [unless I missed something].
|
|
|
|
Blinkhash (OP)
Newbie
Offline
Activity: 15
Merit: 33
|
|
March 22, 2022, 02:10:26 PM Merited by SFR10 (1), ABCbits (1) |
|
Out of curiosity, why do you think this particular feature is unnecessary? I'm not a back-end coder by any means, but AFAIK, it'd be more profitable for the miners if that feature existed [unless I missed something].
Yeah you're not wrong that it'd be a useful addition, but with the rewrite I tried to focus on more of the fundamental features of the mining pool rather than anything auxiliary. Coin-switching would have to come with connections to exchanges/profit trackers and I didn't want to tie functionality to anything third-party at this point.
|
|
|
|
Maus0728
Legendary
Offline
Activity: 2030
Merit: 1582
|
|
March 22, 2022, 10:32:07 PM |
|
Out of curiosity, why do you think this particular feature is unnecessary? I'm not a back-end coder by any means, but AFAIK, it'd be more profitable for the miners if that feature existed [unless I missed something].
Yeah you're not wrong that it'd be a useful addition, but with the rewrite I tried to focus on more of the fundamental features of the mining pool rather than anything auxiliary. Coin-switching would have to come with connections to exchanges/profit trackers and I didn't want to tie functionality to anything third-party at this point. Good decision making you did there. Your project being open-source and free to everyone in the mining community is already enough whilst having ties with exchanges/profit trackers might just put your free software to be either paid in membership or full, as most of such third party data sources would require payment for your system to gain access to theirs. But are there no open source or free exchanges as well? I don't know if it would be possible having ties with them at your back end. But if it is something that would be a great feature, then I guess it could be a part of the development in the future. Still, such feature also have another problem to arise, what if other devs preferred this or that exchanges/profit trackers? Then I guess your system would really just not implement it right.
|
|
|
|
g-uid
Member
Offline
Activity: 259
Merit: 18
|
|
March 23, 2022, 12:16:00 AM |
|
.. with an emphasis on scalability, simplicity, and reliability ..
This is so interesting. I'm curious to learn more about what is involved so please be patient with me. Would you mind briefly sharing some of the challenges that go into maintaining a pool? For example, what is the nature of the costs and what other variables are involved (users, bandwidth, servers, coin type??) in maintaining a pool that scales? If you could point to a resource or two where I could do some reading that would be great too. So just building a pool and getting people to mine on it is pretty simple, the easiest way is to just rent a server and install Foundation or some other pool source on it. Your costs initially will mainly just be those server fees, and you can charge a fee as a developer cut for every block that you find. Depending on your server and number of miners on the pool, this may/may not make you that much, if any money. Regarding challenges, while I think Foundation is pretty easy to setup + manage, it still takes some knowledge to debug any issues. The main point of being a reliable mining pool owner is being able to ensure uptime, as every second that your pool is down, your miners are losing money. If you can't guarantee that, it's very likely that your miners will choose to go elsewhere. Once you get enough miners to where you decide to put more work into the mining pool though, there's a few routes you can go: 1. Multiple stratum servers in different regions 2. Multiple/fallback daemons 3. Get better/dedicated servers The point of each of these is not only to allow your mining pool to be able to handle more miners, but also to improve reach and lower latency. But either way, you'll have to draw those conclusions from your miners and make decisions accordingly. Thanks for this. I have some follow-up questions: 1. What would the single largest incentive be for a miner to check out a new pool? Is it safe to assume that it's just uptime? 2. Can you speak more on the resources required to support more miners within the context of your system? Is it a function of hash throughput, the number of miners connected for example? How does one scale up if so, is it a matter of throwing more cores/disks/memory at the problem? possible to shed some light on how these resources relate to scaling the pool? Not looking for super meticulous detail, would really appreciate just a ballpark idea.
|
|
|
|
Blinkhash (OP)
Newbie
Offline
Activity: 15
Merit: 33
|
Thanks for this. I have some follow-up questions:
1. What would the single largest incentive be for a miner to check out a new pool? Is it safe to assume that it's just uptime? 2. Can you speak more on the resources required to support more miners within the context of your system? Is it a function of hash throughput, the number of miners connected for example? How does one scale up if so, is it a matter of throwing more cores/disks/memory at the problem? possible to shed some light on how these resources relate to scaling the pool? Not looking for super meticulous detail, would really appreciate just a ballpark idea.
1. So there's a few reasons: - For the blockchain, it's much more stable/safe/secure to spread hashrate around, rather than having a single pool responsible for mining the majority of all blocks. While this large pool would have a monetary incentive to act ethically, they can also act maliciously and hijack the chain (51% attacks). Not only this, if something happens to that pool and it needs to shut down, it's possible that the chain could become stuck or transactions get delayed because the difficulty's been adjusted to a higher value than the rest of the network can handle. - For the miner, it usually comes back to where they can maximize their income. Mining on larger pools comes with more steady payments, as the pool finds blocks more often, but with that comes more competition and miners each get a smaller share of each block found. On the other hand, mining on smaller pools comes with much more infrequent payments, but with much less competition and thus a larger share of each block found. But as mentioned, blocks on smaller pools are found much less often, so it's difficult to determine where the best profits are made. Larger pools will give you a steady income, but smaller pools will make you more in the short-term if they get lucky finding blocks quickly. Beyond this, also, most mining pools usually take a cut themselves from each block found. Smaller pools almost always take less (if any), though, which may be the tipping point for some miners regarding profits. Regarding uptime, though, a lot of miners prefer larger pools because, as mentioned, every second that a pool is down, miners are losing money. Larger pools are better at guaranteeing uptime. 2. So in the previous message I mentioned three things: - Multiple stratum servers in different regions - This is useful because it lowers the latency/distance between your miners and the stratum servers. When your miners find a block candidate, they need to submit it to the server, and this takes longer if they are mining from a longer distance. As such, it gives more time for a different pool/miner to submit a block, which would mean that your miner's block candidate would become an orphan. Beyond this, it would take some of the load off of your main stratum server. - Multiple/fallback daemons - This is useful because it lets multiple daemons handle requests and everything that your pool needs regarding the blockchain. If your daemon goes down, your pool goes down. Multiple/fallback daemons would let you manage this and allow the pool to continue running until you're able to restart the daemon + debug the issue. - Get better/dedicated servers - As you mentioned, this is useful because throwing more "cores/disks/memory" at the problem always does make things better + improve uptime, allowing more miners concurrently on your system. You can balance this + deploying more stratum servers to create a more robust network.
|
|
|
|
|