Bitcoin Forum
May 28, 2022, 05:29:50 PM *
News: Bitcoin Pizza bake-off contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: [Feedback Appreciated!] Blinkhash - Making mining pool ownership accessible  (Read 224 times)
Blinkhash
Newbie
*
Offline Offline

Activity: 15
Merit: 32


View Profile
April 28, 2021, 06:43:32 PM
Last edit: July 30, 2021, 04:01:23 PM by Blinkhash
Merited by aliashraf (2), ETFbitcoin (1), vv181 (1)
 #1

(4/28/2021):

About a year ago, I was looking into creating my own mining pool in order to test a tool that I was working on, but after some research, realized that there are actually very few good open-source options out there, with YIIMP and CKPool really being the only viable options. Both still aren't great, with the former having issues with being especially difficult to read/understand (at least for me, I dislike PHP), and the latter being limited solely to Bitcoin. I also stumbled upon NOMP, zone117x's open-source JS solution, but it hadn't been maintained in years and has since fallen into disrepair. Even so, this was the one that interested me the most, as I feel much more comfortable with JS.

On top of this, it's no secret that it's not easy for the layman to create, host, and manage their own mining pool. As such, mining pools and the mining process as a whole has been becoming more and more centralized, especially for smaller altcoins, where a single pool is most often responsible for the majority of the hashrate on the network. Viable, easy-to-use open-source mining pool software with extensive documentation would help to solve this, as it would specifically help to simply the process of setting up a pool to the point where anyone could manage it. This was my goal in starting this project.

So for the past six months or so, I've been working on a complete rewrite/update of NOMP. I decided on start to specifically make this source a lot more barebones--to focus on just the pool functionality. This means no UI, no coinswitching, no MPOS, etc. I would really appreciate some feedback--either on the code itself or the idea as a whole, as well as any features that people would want supported. I'm not going to add back any of the features removed, however. A summary of the changes (https://github.com/blinkhash) thus far is below:

Stratum
  • Cleaned up/rewrote everything
  • Commented everything to improve readability
  • Comprehensive testing suite
  • Update node version from v0.10.x to v12.x+
  • Segwit/Bech32 compliance
  • Added/fixed stratum methods according to docs (https://braiins.com/stratum-v1/docs)
  • Asicboost support (needs testing)
  • Implemented CI/coverage/linting pipelines
  • Miscellaneous bugfixes/etc.

Server
  • Cleaned up/rewrote everything
  • Commented everything to improve readability
  • Comprehensive testing suite
  • Update node version from v0.10.x to v12.x+
  • Reorganized configuration files to be more intuitive/cleaner
  • Reorganized database scheme to be more intuitive/cleaner
  • Added solo-mining functionality for users
  • Made PPLNT the default payout scheme (removed PROP)
  • Added 'partnering' scheme for usage w/ API to promote advertising
  • Reorganized/reworked API entirely
  • Implemented CI/coverage/linting pipelines
  • Miscellaneous bugfixes/etc.

Note: Neither blinkhash-server nor blinkhash-stratum will work as a drag+drop solution for any other open-source project.



(6/17/2021):

Server: https://github.com/blinkhash/blinkhash-server
Stratum: https://github.com/blinkhash/blinkhash-stratum
Hashing: https://github.com/blinkhash/blinkhash-multi-hashing
UTXO: https://github.com/blinkhash/blinkhash-utxo-lib

I just ended up finishing the initial build of the software and officially released it for testing. Here's the links to each of the individual repositories that are in use. Let me know your thoughts! Here's the link to the discord to stay updated on development or ask me any specific questions: https://discord.gg/8xtHZFKJQY. For my next steps, I'm currently working on building out documentation and tutorials on how to implement and work with Blinkhash, as well as a separate repository of coin configurations for users to consult. Following that, I'll develop a dashboard/client for the server itself and include support for Equihash coins.



(7/30/2021):

Finished up the documentation and made a simple landing page for it. Here's the current site, decided to make it from scratch because I couldn't find a template I liked, which is why it took longer: https://blinkhash.com/docs. Working on an idea for the landing page now, which might take a bit longer. The repository for the documentation is here if you're interested: https://github.com/blinkhash/blinkhash-documentation/
1653758990
Hero Member
*
Offline Offline

Posts: 1653758990

View Profile Personal Message (Offline)

Ignore
1653758990
Reply with quote  #2

1653758990
Report to moderator
1653758990
Hero Member
*
Offline Offline

Posts: 1653758990

View Profile Personal Message (Offline)

Ignore
1653758990
Reply with quote  #2

1653758990
Report to moderator
1653758990
Hero Member
*
Offline Offline

Posts: 1653758990

View Profile Personal Message (Offline)

Ignore
1653758990
Reply with quote  #2

1653758990
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1653758990
Hero Member
*
Offline Offline

Posts: 1653758990

View Profile Personal Message (Offline)

Ignore
1653758990
Reply with quote  #2

1653758990
Report to moderator
1653758990
Hero Member
*
Offline Offline

Posts: 1653758990

View Profile Personal Message (Offline)

Ignore
1653758990
Reply with quote  #2

1653758990
Report to moderator
1653758990
Hero Member
*
Offline Offline

Posts: 1653758990

View Profile Personal Message (Offline)

Ignore
1653758990
Reply with quote  #2

1653758990
Report to moderator
DaveF
Legendary
*
Online Online

Activity: 2758
Merit: 3646


100% Deposit Match UP TO €5000!


View Profile WWW
April 30, 2021, 11:26:50 AM
 #2

The biggest issue with NOMP has been the lack of segwit support. I am on mobile at the moment so I can't even look at the code, but I do not see it mentioned.
Also, although I don't have an issue with Redis it seems that more and more people want (and I have no idea why) a SQL database backend.

Either way, good job, glad to see someone is doing something like this.

-Dave

Blinkhash
Newbie
*
Offline Offline

Activity: 15
Merit: 32


View Profile
April 30, 2021, 02:10:22 PM
Last edit: April 30, 2021, 05:10:20 PM by Blinkhash
 #3

The biggest issue with NOMP has been the lack of segwit support. I am on mobile at the moment so I can't even look at the code, but I do not see it mentioned.
Also, although I don't have an issue with Redis it seems that more and more people want (and I have no idea why) a SQL database backend.

Either way, good job, glad to see someone is doing something like this.

-Dave

Thanks for the feedback! Also oops, I did forget to mention it, will add to the post above. The pool is segwit compliant, I leveraged https://github.com/BitGo/BitGoJS/tree/master/modules/utxo-lib to provide support for segwit/bech32 addresses. I still have to test a few things, but I was able to mine a few blocks on the Litecoin testnet a few months ago.

I'll see about including SQL support as an option, shouldn't be difficult to implement.
Blinkhash
Newbie
*
Offline Offline

Activity: 15
Merit: 32


View Profile
June 17, 2021, 08:52:07 PM
Last edit: June 21, 2021, 01:03:09 PM by Blinkhash
Merited by WanderingPhilospher (1)
 #4

Just finished the initial build of the software. Everything seems to work perfectly and I built out the testing suite to catch as many bugs as I could. Feel free to download and do your own testing/build your own mining pools, the repositories are listed below. Let me know in the Discord (https://discord.gg/8xtHZFKJQY) about any bugs that you may experience:

Server: https://github.com/blinkhash/blinkhash-server
Stratum: https://github.com/blinkhash/blinkhash-stratum
Hashing: https://github.com/blinkhash/blinkhash-multi-hashing
UTXO: https://github.com/blinkhash/blinkhash-utxo-lib

Over the next few days/weeks, I'll be writing out expansive documentation for the pool itself and then later throwing together a client in React.JS. Equihash support will come as soon as I'm done with those items.
Blinkhash
Newbie
*
Offline Offline

Activity: 15
Merit: 32


View Profile
June 21, 2021, 01:06:14 PM
Last edit: July 30, 2021, 04:01:46 PM by Blinkhash
 #5

Took a few days to start building out the site for the project's documentation. I couldn't find a template on Github that I liked exactly so decided instead to just build from scratch. Was heavily inspired by Tensorflow's documentation. Here's the current progress (light mode, dark mode, responsive): https://imgur.com/a/3CJJ740.
Blinkhash
Newbie
*
Offline Offline

Activity: 15
Merit: 32


View Profile
July 07, 2021, 08:04:24 PM
Last edit: July 30, 2021, 04:01:58 PM by Blinkhash
 #6

Decided while working on the documentation to build out dev/qa/prod pipelines and launched Jenkins to handle deployments. At this point, everything is running smoothly on Fargate clusters. The current state of the documentation can be found here: https://blinkhash.com/docs/. Shouldn't be too much longer at this point now that the infrastructure is in place.
Blinkhash
Newbie
*
Offline Offline

Activity: 15
Merit: 32


View Profile
July 30, 2021, 04:01:34 PM
Last edit: July 30, 2021, 11:14:42 PM by Blinkhash
 #7

Finished up the documentation and made a simple landing page for it. Here's the current site, decided to make it from scratch because I couldn't find a template I liked, which is why it took longer: https://blinkhash.com/docs. Working on an idea for the landing page now, the repository for the documentation is here if you're interested: https://github.com/blinkhash/blinkhash-documentation/
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!