Pages:
Author

Topic: [ANN] Puppet Master. Earn (much) more than 110% PPS. - page 3. (Read 10185 times)

legendary
Activity: 1400
Merit: 1000
I owe my soul to the Bitcoin code...
I have been waiting for this announcement for a while. Nice work P4man Cheesy
hero member
Activity: 866
Merit: 1001
Very interesting, I think I will be trying this, with my mod miner quad.
rjk
sr. member
Activity: 448
Merit: 250
1ngldh
Cool, so even those with only one BFL Single have enough hash to be accepted.
hero member
Activity: 518
Merit: 500
Instructions to compile a modified cgminer on linux.

This is only needed if you use GPUs and you want to be sure Puppet Master can not change your GPU settings (clock speeds, fans etc).

If you feel comfortable giving me full access to the API, you can skip this step. If you use FPGAs there is no need to recompile either, since FPGAs dont have voltage or clock settings I could possibly abuse.

Compilation instructions are for 2.4.2, but apply to other versions too, just change the version where appropriate.  Puppet master will work with any cgminer between 2.3.x and 2.4.x

The same changes also work for cgminer for Windows, but when it comes to actually compiling on windows, you are on your own.

Grab and untar cgminer:
Code:
wget http://ck.kolivas.org/apps/cgminer/cgminer-2.4/cgminer-2.4.2.tar.bz2
tar xvjf cgminer-2.4.2.tar.bz2

Grab and unzip amd adl

Code:
mkdir amdtemp
cd amdtemp
wget http://download2-developer.amd.com/amd/GPU/zip/ADL_SDK_3.0.zip
unzip ADL_SDK_3.0.zip
cp include/*.h ~/cgminer-2.4.2/ADL_SDK/

You can remove amdtemp after that. Please make no typing errors here, its easy to wipe your stick Smiley :
Code:
cd ..
rm -rf amdtemp

Now lets make the change to cgminer:
Code:
cd ~/cgminer-2.4.2/
nano api.c

Find this section:

Code:
struct CMDS {
        char *name;
        void (*func)(SOCKETTYPE, char *, bool);
        bool requires_writemode;
} cmds[] = {
        { "version",            apiversion,     false },
        { "config",             minerconfig,    false },
        { "devs",               devstatus,      false },
        { "pools",              poolstatus,     false },
        { "summary",            summary,        false },
        { "gpuenable",          gpuenable,      true },
        { "gpudisable",         gpudisable,     true },
        { "gpurestart",         gpurestart,     true },
        { "gpu",                gpudev,         false },
#ifdef WANT_CPUMINE
        { "cpu",                cpudev,         false },
#endif
        { "gpucount",           gpucount,       false },
        { "cpucount",           cpucount,       false },
        { "switchpool",         switchpool,     true },
        { "addpool",            addpool,        true },
        { "enablepool",         enablepool,     true },
        { "disablepool",        disablepool,    true },
        { "gpuintensity",       gpuintensity,   true },
        { "gpumem",             gpumem,         true },
        { "gpuengine",          gpuengine,      true },
        { "gpufan",             gpufan,         true },
        { "gpuvddc",            gpuvddc,        true },
        { "save",               dosave,         true },
        { "quit",               doquit,         true },


Change from true to false, the following commands:
-switchpool
-addpool
-enablepool
-disablepool

So it looks like this:

Code:
struct CMDS {
        char *name;
        void (*func)(SOCKETTYPE, char *, bool);
        bool requires_writemode;
} cmds[] = {
        { "version",            apiversion,     false },
        { "config",             minerconfig,    false },
        { "devs",               devstatus,      false },
        { "pools",              poolstatus,     false },
        { "summary",            summary,        false },
        { "gpuenable",          gpuenable,      true },
        { "gpudisable",         gpudisable,     true },
        { "gpurestart",         gpurestart,     true },
        { "gpu",                gpudev,         false },
#ifdef WANT_CPUMINE
        { "cpu",                cpudev,         false },
#endif
        { "gpucount",           gpucount,       false },
        { "cpucount",           cpucount,       false },
        { "switchpool",         switchpool,     false},
        { "addpool",            addpool,        false },
        { "enablepool",         enablepool,     false},
        { "disablepool",        disablepool,    false },
        { "gpuintensity",       gpuintensity,   true },
        { "gpumem",             gpumem,         true },
        { "gpuengine",          gpuengine,      true },
        { "gpufan",             gpufan,         true },
        { "gpuvddc",            gpuvddc,        true },
        { "save",               dosave,         true },
        { "quit",               doquit,         true },


Explanation: commands that have "true" here, require privileged (write) access. By changing it to false for these commands, you can run the api in restricted mode (no write access) for me. So I will only have access to the "false" commands.

When done editing, save the file:
Code:
control+x
y
enter

now we can compile

Code:
CFLAGS="-O2 -Wall -march=native" ./configure
make
hero member
Activity: 518
Merit: 500
ASIC mining is almost upon us. For many of us, myself included, that will mean the end of our bitcoin mining careers.  If you have somewhere between 0.5 and 5 GH and you want to max out your GPU or FPGA mining revenue over the few months we still have left, this thread is for you.



Proudly announcing one of bitcoins worst kept secrets:





What is Puppet Master?
Puppet Master is pool hopping done right. No proxy. No bullshit. No crumbs.
Traditional hopping proxies like Project 2, ABC, Project X, Clipse's bonus pool etc are easy to use and allow a miner to earn a little over 100% PPS; but they all suffer from some serious drawbacks: a proxy causes stability and scalability problems, generally high reject rates and it provides no transparency in either generated profits, or where the hashing power is sent to. Current hopping proxies are also paying just crumbs, some even charge you for the privilege, others hold your coins ransom for a week.

Puppet Master does away with all that, and uses no proxy. Instead it relies on cgminer's API. The Puppet Master software runs on my servers and analyzes the blockchain and pools and decides which pool is most optimal, then sends a command to the "puppets", ie miners, to hop there using cgminers built-in API. While this is more complex to configure and manage, the advantages of this approach compared to a proxy are legion:

- Your miners are connected directly to the pools using your own accounts. You are always in control of your payouts, you dont rely on me to send you your coins.
- Total transparency. You see where is being mined, you can see how much it really earns. Hint: its more than 110%.
- You choose were to mine when we have no pool to hop. You can use p2pool, or any PPLNS, PPS or DMG pool of your choosing.  
- No extra stales and rejects.
- No single point of failure. Even if Puppet Master would fail and the service would be disrupted, about the worst that can happen is that your miners stop hopping and instead mine the same pool. They will never idle.
- GPUmax integration.  If you have a GPUmax account and API key, Puppet Master will detect when GPUmax is running public work and at what price, and adjusts the hopping strategy to maximize your profits without compromising your GPUmax rewards. You will only hop as long as expected hopping revenue exceeds your GPUmax revenue, so Puppet Master will seamlessly combine GPUmax and pool hopping rewards, giving you the best of both worlds. Optionally, puppetmaster can also assist you in configuring an optimal GPUmax lease price.
- You get a simple but functional webinterface where you see your miners, hashrate, GPU temperatures, GPUmax status, pool statistics etc.

How much does it earn?
I cant predict the future, so I cant predict exactly how much you will make; Puppet Master users are subject to variance,  but it will certainly earn you more than you earn without puppet master and when averaged over a long enough time, substantially more than the other 110% proxy pools. How much more depends on how much public work GPUmax offers (and at what price), how long it will take for some of the hoppable pools to  switch payout schemes, and just plain luck. I dont give any guarantee, but historically, Puppet Master has generated  ~130% PPS without gpumax public work, and well over 150% during public work. I wont lie, as more pools are (finally) switching to hop proof payout schemes, these numbers are likely to go down, but people saying pool hopping is dead already, are not telling truth, do not know what they are talking about, or dont know how to do it properly Smiley.

How much does it cost?
Hopping proxies earn money on the difference between their actual revenue and what they pay you. As a miner, you cant see how much that difference is, so it may sound better to get a 110% payout than paying a fee (even if that 110% turns out to be 105% after stales and downtime), but the truth is you might be paying 20% or more to the pool op if he knows what he is doing.

Puppet master isnt free either; there is fixed 5% fee, and a sign-up fee/guarantee. The 5% fee is collected automatically by directing your miners to a dedicated worker for 5% of the time. You can monitor this precisely, its completely transparent.  BTW, this 5% may be lowered in the future at my discretion if our profitability is compromised by pools switching to honest payout schemes.

The signup guarantee is 5 BTC per user, but half this amount will be refunded immediately once you start mining with Puppet Master, the other half will be credited in its entirety to your fee balance, so you wont pay any % until you have mined ~50 BTC.

IOW, if you actually use Puppet Master, the sign up cost is zero.

The reason for this guarantee  is just to avoid me wasting a lot of time  with people just signing up to check it out without any intention of ever actually using it.  This fee is not refundable in principle, but I like to think of myself as a reasonable person, so if there is a good reason to, I wont hesitate to decide to refund anyone on a case by case basis.  Should puppet master cease operation, I will also refund any balance you still have. Im not demanding 5BTC to make money, its just to save myself a lot of unnecessary work and time.

What do I need?
For now Im only accepting users with more than  ~0.5GH and up to ~5GH for gpumax users. Less than 500MH is more trouble than its worth, more than 5GH can cause load balancing issues at gpumax particularly when avoiding gpumax passthrough. If you have more than 5GH and do not have a gpumax account, contact me.

You need either a static IP, or a hostname alias provider like no-ip.com. You also need to use cgminer (2.3 or higher), you need full control over your network and firewall and you need to have some basic skills to set up cgminer and port forwarding.  Having a gpumax account will obviously increase your profitability, but is not required.  In fact, if you do not have a gpumax account, puppet master will give your mining revenue a bigger boost than for a gpumax user, who is already earning well over 100%. Well, used to anyway.

Using linux on your miners is recommended, particularly if you want to disable privileged API access, see below.

You need access to my cgminer API, does that mean you can control my GPU settings using  that API?
With the standard cgminer, in theory, yes.  As of cgminer 2.5, this is no longer a concern. api-groups lets you define which commands you give puppetmaster access to, and it only needs pool related commands. Instructions will be provided if you sign up. If you use an older version of cgminer, its possible to recompile with some minor changes to avoid giving api access to commands ppm doesnt need.

FPGA users have nothing to worry about and should just use the standard cgminer. AFAIK, there isnt any cgminer setting I could abuse when you use an FPGA.

Do you guarantee x,y or z.. ?
No. Im running this on a best effort basis. I dont guarantee anything other than whats been said. Not profits, not uptime, not hopping accuracy. However, puppet master is not new; as many of you know, it  has been operating for almost 6 months now, serving ~100GH for a number of users that were invited.  None of those users have come forward to the forums claiming I tried to steal their coins or kill their videocards, in fact, so far none of them have even stopped using it; every single person who has ever tried Puppet Master, is still using it today, so I guess it cant be all that bad Smiley.  You can also thank those users for helping me iron out the bugs, so you dont have to suffer them.

As for reliability, particularly over the last few months Im pretty sure we achieved over 99% uptime as I believe we have had only 2? unplanned outages that lasted more than an hour. And remember, an outage simply means you stop hopping, not that you stop mining.

Arent you a hypocrite, I thought you were against pool hopping?
Im not. I know some people have claimed I was crusading against hoppers, but if you read what I actually wrote you will find nothing of the sort. To illustrate, most of you will know Im not Goat's biggest fan, but if you go read Goat's project 2 thread, you will not see a single post of me criticizing him for doing what he did (well, other than ridiculing his utter failure to execute) for the simple reason that he was open and honest about it. I did rant against proxies that hop with their users hashrate without telling their users, as I did rant against pools that falsify their stats under the false pretense of preventing hopping. But Ive never voiced any criticism about miners doing the mathematically sensible thing.

Why would I use Puppet Master and pay fees instead of using some free hopping program?
If you can set up and use BitHopper, maybe you should. But none of the apps Ive tried are anywhere near as good at hopping as puppet master. Aside from the issues and stales associated with a proxy (even a local one), they are also poorly integrated with GPUmax and for hopping they rely on delayed (/false) pool stats, long poll timing or scraping blockchain.info to guess a blocks origin. While I admire the efforts of the developers and Im sure these apps were awesome once upon a time when you could hop a dozen proportional pools, I found their hopping accuracy tends to vary between poor and appalling. Puppet Master uses its own mechanisms which are vastly more accurate than anything else I am aware off and this accuracy translates directly in to higher profits.

How do I sign up?
Send me a PM or email [email protected]. State your forum name and email,  aggregate hashrate, number of machines and whether or not you have a gpumax account and API key. I will already send you the (optional) instructions on how to recompile cgminer if you want to do that.  

Im provisioning a new server right now, once that is ready and has been tested (ETA less than a week from now), you will get an address where you can deposit the 5 BTC guarantee, after which you will get detailed instructions and templates on how to configure your miners, workers and network in order to use puppet master.  Once you have it configured, and I verified your settings,  you will receive a URL where you can monitor your rigs and you will start earning.

Pages:
Jump to: