Bitcoin Forum
May 05, 2024, 03:35:46 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: 1 2 [All]
  Print  
Author Topic: del  (Read 6722 times)
myself
Guest

del
July 05, 2011, 11:19:19 PM
Last edit: September 09, 2012, 10:43:44 PM by myself
 #1

del
1714923346
Hero Member
*
Offline Offline

Posts: 1714923346

View Profile Personal Message (Offline)

Ignore
1714923346
Reply with quote  #2

1714923346
Report to moderator
1714923346
Hero Member
*
Offline Offline

Posts: 1714923346

View Profile Personal Message (Offline)

Ignore
1714923346
Reply with quote  #2

1714923346
Report to moderator
1714923346
Hero Member
*
Offline Offline

Posts: 1714923346

View Profile Personal Message (Offline)

Ignore
1714923346
Reply with quote  #2

1714923346
Report to moderator
The trust scores you see are subjective; they will change depending on who you have in your trust list.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
mf
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
July 05, 2011, 11:57:58 PM
 #2

Installing all prerequisite modules without being root.

Prerequisites:
* a new user account, here "teensy".
* gcc needs to be installed
* Multipool.pl (to test it works)

First, we fetch "cpanm", best practice Perl module installer:

Code:
teensy:~$ curl -L http://cpanmin.us > cpanm 2>/dev/null
teensy:~$ chmod +x cpanm

We will then install the prerequisites under the current directory's "lib" subdirectory. This is done via the parameter "-l lib" to cpanm:

Code:
teensy:~$ ./cpanm -l lib JSON::RPC::Client
--> Working on JSON::RPC::Client
Fetching http://search.cpan.org/CPAN/authors/id/M/MA/MAKAMAKA/JSON-RPC-0.96.tar.gz ... OK
Configuring JSON-RPC-0.96 ... OK
Building and testing JSON-RPC-0.96 ... OK
Successfully installed JSON-RPC-0.96
1 distribution installed

Finance::Bitcoin is a signed package, we need to make sure we have the right signature or it will hang and cause grief.

Code:
teensy:~$ gpg --recv-keys --keyserver keyserver.ubuntu.com 6A2A7D39
gpg: directory `/home/teensy/.gnupg' created
gpg: new configuration file `/home/teensy/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/teensy/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/teensy/.gnupg/secring.gpg' created
gpg: keyring `/home/teensy/.gnupg/pubring.gpg' created
gpg: requesting key 6A2A7D39 from hkp server keyserver.ubuntu.com
gpg: /home/teensy/.gnupg/trustdb.gpg: trustdb created
gpg: key 6A2A7D39: public key "Toby Inkster <mail@tobyinkster.co.uk>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1

Once the key has been imported, we can install it:

Code:
teensy:~$ ./cpanm -l lib Finance::Bitcoin
--> Working on Finance::Bitcoin
Fetching http://search.cpan.org/CPAN/authors/id/T/TO/TOBYINK/Finance-Bitcoin-0.002.tar.gz ... OK
Configuring Finance-Bitcoin-0.002 ... OK
Building and testing Finance-Bitcoin-0.002 ... OK
Successfully installed Finance-Bitcoin-0.002
1 distribution installed

Last prerequisite:

Code:
teensy:~$ ./cpanm -l lib Math::Integral::Romberg
--> Working on Math::Integral::Romberg
Fetching http://search.cpan.org/CPAN/authors/id/B/BO/BOESCH/Math-Integral-Romberg-0.04.tar.gz ... OK
Configuring Math-Integral-Romberg-0.04 ... OK
Building and testing Math-Integral-Romberg-0.04 ... FAIL
! Installing Math::Integral::Romberg failed. See /home/teensy/.cpanm/build.log for details.

It will fail, at least it did for me.. as it tried to install it under /usr/. Bad boy, no cookie!
Since it's a pure-Perl module, we and it _did_ pass the tests (run cpanm with -v if you don't believe it), just copy the module over to the local lib:

Code:
teensy:~$ cp -Rfv ~/.cpanm/latest-build/Math-Integral-Romberg-0.04/blib/lib/* lib/lib/perl5/
`/home/teensy/.cpanm/latest-build/Math-Integral-Romberg-0.04/blib/lib/Math' -> `lib/lib/perl5/Math'
`/home/teensy/.cpanm/latest-build/Math-Integral-Romberg-0.04/blib/lib/Math/Integral' -> `lib/lib/perl5/Math/Integral'
`/home/teensy/.cpanm/latest-build/Math-Integral-Romberg-0.04/blib/lib/Math/Integral/Romberg.pm' -> `lib/lib/perl5/Math/Integral/Romberg.pm'

We are almost set; we need to know which PERL5LIB to use when launching Multipool.pl.
Check the subdirectories of lib/lib/perl5 for the architecture-specific subdirectory:

Code:
teensy:~$ ls lib/lib/perl5/
Finance  JSON  JSONRPC.pm  Math  x86_64-linux-gnu-thread-multi

In this case, mine is "x86_64-linux-gnu-thread-multi".

The environment var PERL5LIB needs to be set to _both_ lib/lib/perl5 _and_ the architecture-specific path.
Once that's done, we can use "perl -c" to ensure no other dependencies are needed:

Code:
teensy:~$ PERL5LIB="lib/lib/perl5/x86_64-linux-gnu-thread-multi:lib/lib/perl5" perl -c Multipool.pl 
Multipool.pl syntax OK

You can either launch Multipool.pl that way, or amend Multipool.pl to have the correct "use lib" on the line under the line which reads "use strict;":

Code:
use strict;
use lib 'lib/lib/perl5', 'lib/lib/perl5/x86_64-linux-gnu-thread-multi';
Use your architecture-specific subdirectory, of course.

Happy hopping!
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 06, 2011, 02:04:53 AM
 #3

Nice work, myself! I'm a little more confident of setting up a local multipool now. Cheers!

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
Houseonfire
Full Member
***
Offline Offline

Activity: 129
Merit: 100


View Profile
July 06, 2011, 05:41:58 AM
 #4

Incredible post and guide. Very useful to me.

If I wanted to set up a server to run multipool on, and have friends connect to it, would I need a powerful computer to run the MultiPool server on? Because I have a NetTop that I can use that has a duel core processor in it with Nvidia ION video card. It's not all powerful, but it runs things just fine. It's my media server for the house.

Also, couldn't I just set up a DNS using no-ip to have people connect to it through their mining application? Is there a benefit to me or other people to have people connect to the multipool together?

Is there any more info or tips someone can give me for doing anything else?
error
Hero Member
*****
Offline Offline

Activity: 588
Merit: 500



View Profile
July 06, 2011, 07:09:04 AM
 #5

current issues
shares on bitcoin.lc stay for a long time on pending, why ? MP cant read the round information, care about this only if you run MP for other ppl or if you want to see stats if you run this on local alone is not a big issue

Worse, I'm seeing over half the shares submitted to bitcoins.lc rejected.

3KzNGwzRZ6SimWuFAgh4TnXzHpruHMZmV8
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 06, 2011, 07:27:15 AM
 #6

If you want stats, use btc-poolwatch.com Works with any pool that provides an API, all your results in one place. Make a donation to rearwheels if the site helps you.

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 06, 2011, 09:03:04 AM
 #7

Quote
1. bitcoind.conf
Enter your bitcoind username and password here, on a single line, separated by a space.
(assuming bitcoind is running on 127.0.0.1:8332)

any idea where the bitcoind files are on deb? Do I need to get the username and password from bitcoind?

Thanks man.

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
mf
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
July 06, 2011, 09:18:05 AM
 #8

Quote
1. bitcoind.conf
Enter your bitcoind username and password here, on a single line, separated by a space.
(assuming bitcoind is running on 127.0.0.1:8332)
any idea where the bitcoind files are on deb? Do I need to get the username and password from bitcoind?

You need to create a file named bitcoind.conf *in the same directory as Multipool.pl*, containing *in one single line*, *separated by a space* the username and password you need to use to connect to the local bitcoind instance.

Much of the confusion comes from Multipool.pl naming that config file the same name as the one used by bitcoind Sad

Your "real" bitcoind.conf (the one that controls which username and password bitcoind is to accept) is usually found in ~/.bitcoin/bitcoind.conf and the wiki explains how to put info there.

Example:

Code:
$ ls Multipool.pl # we are in the same directory where Multipool.pl is
Multipool.pl
$ cat ~/.bitcoin/bitcoin.conf
server=1
rpcuser=myusername
rpcpassword=mypassword
rpcallowip=192.168.1.*
rpcport=8332
gen=0
$ cat bitcoind.conf
myusername mypassword
$

as you see above, the "local" bitcoind.conf needs to contain the username and password from the "real" bitcoind.conf, separated by a space.
kripz
Full Member
***
Offline Offline

Activity: 182
Merit: 100


View Profile
July 06, 2011, 09:57:35 AM
 #9

Does multipool cashout automatically from the pools it mines from?

 Merged mining, free SMS notifications, PayPal payout and much more.
http://btcstats.net/sig/JZCODg2
kripz
Full Member
***
Offline Offline

Activity: 182
Merit: 100


View Profile
July 06, 2011, 12:25:48 PM
 #10

No i meant, i set multipool to mine from pool 1,2,3,4,5.

How do i get my BTC from the 5 pools to my wallet?

Quote
To pay users, create a "main" account, move funds to it, and run:

This part. Is it automatic?

 Merged mining, free SMS notifications, PayPal payout and much more.
http://btcstats.net/sig/JZCODg2
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 06, 2011, 12:33:04 PM
 #11

Quote
1. bitcoind.conf
Enter your bitcoind username and password here, on a single line, separated by a space.
(assuming bitcoind is running on 127.0.0.1:8332)
any idea where the bitcoind files are on deb? Do I need to get the username and password from bitcoind?

You need to create a file named bitcoind.conf *in the same directory as Multipool.pl*, containing *in one single line*, *separated by a space* the username and password you need to use to connect to the local bitcoind instance.

Much of the confusion comes from Multipool.pl naming that config file the same name as the one used by bitcoind Sad

Your "real" bitcoind.conf (the one that controls which username and password bitcoind is to accept) is usually found in ~/.bitcoin/bitcoind.conf and the wiki explains how to put info there.

Example:

Code:
$ ls Multipool.pl # we are in the same directory where Multipool.pl is
Multipool.pl
$ cat ~/.bitcoin/bitcoin.conf
server=1
rpcuser=myusername
rpcpassword=mypassword
rpcallowip=192.168.1.*
rpcport=8332
gen=0
$ cat bitcoind.conf
myusername mypassword
$

as you see above, the "local" bitcoind.conf needs to contain the username and password from the "real" bitcoind.conf, separated by a space.

Thanks for the info and examples - appreciate it Smiley

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
mf
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
July 06, 2011, 12:35:20 PM
 #12

No i meant, i set multipool to mine from pool 1,2,3,4,5.
How do i get my BTC from the 5 pools to my wallet?
Quote
To pay users, create a "main" account, move funds to it, and run:
This part. Is it automatic?

If you are using Multipool.pl alone, you don't need to: just log in on each of the five pools' websites, and have them pay the balance to your wallet.
That part is only necessary if you run Multipool.pl as a service for other users, too.
error
Hero Member
*****
Offline Offline

Activity: 588
Merit: 500



View Profile
July 06, 2011, 04:16:00 PM
 #13

current issues
shares on bitcoin.lc stay for a long time on pending, why ? MP cant read the round information, care about this only if you run MP for other ppl or if you want to see stats if you run this on local alone is not a big issue

Worse, I'm seeing over half the shares submitted to bitcoins.lc rejected.
did you mean; you see that in your bitcoin.lc account or on local stats page? if you mean on bitcoins.lc account then something is bad on your setup i only have 2 stale shares on bitcoins.lc

Nope, I see this directly at bitcoins.lc web site stats page. Also see them rejected in multipool's log. All the other pools accept most of the shares. There were so many of them, and bitcoins.lc was being chosen often enough, that I had to remove bitcoins.lc entirely or risk losing a lot of hashing power. I have not yet gotten into the spaghetti code to see what, if anything, might be going on...

3KzNGwzRZ6SimWuFAgh4TnXzHpruHMZmV8
mf
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
July 06, 2011, 04:49:46 PM
 #14

Nope, I see this directly at bitcoins.lc web site stats page. Also see them rejected in multipool's log. [...]
I have not yet gotten into the spaghetti code to see what, if anything, might be going on...

I had similar issues; they stem from the fact that Multipool.pl uses the "local" bitcoind to know when there is a new block.
IIRC, it also does not completely clear up the queue on a new block received (as threads have to pick that up).
As such, the following scenarios may develop:
- the miner receives the long poll, and the miner does _not_ clear its queue / request more work => nothing to do with Multipool.pl but I think phoenix did that Sad -- you can verify this by seeing if the rejects are clustered after a long poll.
- your bitcoind sees the block & notifies the miners at the same time as all the pools you're getting work from also see it; all is well as the new work fetched by Multipool.pl is pristine and new.
- your bitcoind sees the block & notifies the miners PRIOR to a specific pool also realising there is a new block: your miners will request Multipool.pl more work, which in turn will straightaway request it from the pool (which would give work for the previous block); the pool finally realises there's a new block; your miners finish working those works and give them back to Multipool.pl which gives them back to the queue: rejected.
- your bitcoind sees the block & notifies the miners AFTER a specific pool realised there is a new block; the miners probably had already asked for "good" work but instead end up dumping work which isn't necessarily stale.

Additionally to that, Multipool.pl's handling of whether a share was already sent or not did not work properly. I merely ripped off that part of the code, saying " I will pass on to the pools whatever my miner gives me ". Reduced rejections a bit, but not enough -- reasons above.

The only way I see to fix the above is to have Multipool.pl have one longpoll connection per pool, and having it invalidate work queue-by-queue depending on whether it received a longpoll "ping" from that queue or not. After all, if the queue has not yet realised there is a new block, shares from the previous block would still be considered valid by them, _and_ they would not give a new block's work unless they know there is a new block.

Multipool.pl's code uses basic sockets and select(), and... threads.. I have been toying with the idea of doing the above using AnyEvent (async IO for Perl), but would only do/finish that for a _personal_ multipool switcher rather than something multiple people would connect to and distribute payments to etc.
I kind of gave up on beating Multipool.pl into submission not for lack of trying but rather as it came to a point where it'd be easier to rewrite most of it rather than trying to fix it. I develop in Perl for a living, so it's not like I can't read the code. There are too many places where I know what the code does, but have no clue as to the reason _why_ it's doing that Smiley

I will likely soon release what I am currently using for my PC, which has only _one_ graphics card. It uses bits of the algorithm from Multipool.pl but rather than getting shares and distributing them to miners, has the _miner itself_ connect to the best/wanted pool. I think there's another thread for another program that does this already for multiple cards as well, but it's a bit overkill for what I needed.

I am not sure if enough people would need a "personal multipool switcher which distributes shares", which is what Multipool.pl does, other than for having its code somewhere in Github so multiple such pool hopper pools can be created by anybody.. to warrant developing a better pool hopper that works that way. After all, if there are two/three pools like that, what is the point? Pointing them at each other?
GriphZero
Newbie
*
Offline Offline

Activity: 20
Merit: 0


View Profile
July 06, 2011, 06:35:33 PM
Last edit: July 07, 2011, 02:08:34 AM by GriphZero
 #15

Nope, I see this directly at bitcoins.lc web site stats page. Also see them rejected in multipool's log. [...]
I have not yet gotten into the spaghetti code to see what, if anything, might be going on...
I had similar issues; they stem from the fact that Multipool.pl uses the "local" bitcoind to know when there is a new block.
IIRC, it also does not completely clear up the queue on a new block received (as threads have to pick that up).

I've been seeing what I believe is the same issue you described, were the software continuously requests gets without any sends going out.  The multipool code eventually classifies me as an "unlawful" user since my send/get ratio gets really bad and it shifts me to just running in solo mode.  I tried setting $lawful = 1, which works as a temporary fix by letting a different pool eventually be selected, but I still need to restart the software periodically.

I've been using the software on a virtual machine for a number of days successfully. "Thanks MultiPool!"  The only changes I really needed to make were setting $production = 0, and changing all the IP addresses to my own.

The only other issue I'm having is with scrapping the rewards data for bitcoin.lc.  I'm trying to work on that code myself.  I'm working on getting wget through the login page and the transactions page, and still need to parse the transaction data.  I'm not experienced with perl, or with scraping data from websites, but am trying to wade through it.

If mf or anyone else has created a bitcoinlc_rewards() function please post it.  If I ever get mine working, I'll do the same.
gno
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
July 06, 2011, 08:23:34 PM
 #16

Thanks to everyone kicking in and making this workable.  I've got it working on my VM now and a couple of my miners are pointing at it and getting work.  No idea if it will make coins since I never made any off multiclone after a weekend but I'll try it and see.

As for what people need or don't need-  the biggest thing I'm looking for is something that will keep my miners from being idle for hours when one or two pools go down.  Being able to "hop" to increase efficiency is a nice secondary benefit.

gno
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
July 07, 2011, 03:07:11 AM
 #17

Is it a problem that I see on the console:

thread 3: reward monitor offline
mf
Newbie
*
Offline Offline

Activity: 24
Merit: 0


View Profile
July 07, 2011, 07:31:49 AM
 #18

thread 3: reward monitor offline

The program once in a while tries to refresh fetching what the current rewards are for the various pools.
Some of the parsers are currently broken, i.e. Eligius (it tries to look them up for /us/ and /eu/).
Every time an error happens there, the thread dies.

You can find out what caused by scrolling back in the log and seeing what error messages there were between when it was last online, and the first time off-line.
Effin' threads.
gno
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
July 07, 2011, 12:02:19 PM
 #19

I changed the eligius rewards func to look at http://eligius.st/~luke-jr/raw/3/blocks/ .  Eligius hasn't hit a block yet so I don't know if it will work or not.  Smiley

organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 07, 2011, 02:01:12 PM
 #20

I changed the eligius rewards func to look at http://eligius.st/~luke-jr/raw/3/blocks/ .  Eligius hasn't hit a block yet so I don't know if it will work or not.  Smiley



can you post the function if it works?

 Cheers!

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
GriphZero
Newbie
*
Offline Offline

Activity: 20
Merit: 0


View Profile
July 07, 2011, 02:40:44 PM
Last edit: July 10, 2011, 02:19:38 AM by GriphZero
 #21

Here are the changes I made to fix eligius.

Changed all references to "eligius-eu", to "eligius".

Changed:
my $url1='http://eligius.st/~luke-jr/raw/'.($pool_name eq "eligius-eu"?"eu":"us").'/blocks/';
  to
my $url1='http://eligius.st/~luke-jr/raw/5/blocks/';

And removed:
eligius_rewards("eligius-eu");

In pool.config set the eligius URL to:
http://eligius.st/~luke-jr/raw/5/blocks/

I also used a new utility function with a constant utility since eligius now uses SMPPS instead of proportional rewards.  It should be the default if all other pools have a lower utility.

These have worked for me.  The website shows what I have earned.

Warning though, they are changing their servers around, so the code may need to be updated with new server names in the near future.

Edit: New url for new server "5".
gno
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
July 07, 2011, 03:07:48 PM
Last edit: July 07, 2011, 06:11:50 PM by gno
 #22

I also used a new utility function with a constant utility since eligius now uses SMPPS instead of proportional rewards.  It should be the default if all other pools have a lower utility.


edit...

so a new function that just returns the same utility all the time? 

What number did you decide on?
Sukrim
Legendary
*
Offline Offline

Activity: 2618
Merit: 1006


View Profile
July 08, 2011, 02:37:27 AM
 #23

Eligius should in theory always be 1.0 (would be only different in the longer run if someone maliciously implements a withholding winning shares attack and has some massive hashrate there). Solo should be ~1.002, as transaction fees are ~0.2% of the 50 BTC currently on average. I guess that's neglectable though and you're probably currently better off with a SMPPS pool.

https://www.coinlend.org <-- automated lending at various exchanges.
https://www.bitfinex.com <-- Trade BTC for other currencies and vice versa.
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 08, 2011, 02:48:41 AM
Last edit: July 08, 2011, 03:03:57 AM by organofcorti
 #24

Here are the changes I made to fix eligius.

Changed all references to "eligius-eu", to "eligius".

Changed:
my $url1='http://eligius.st/~luke-jr/raw/'.($pool_name eq "eligius-eu"?"eu":"us").'/blocks/';
  to
my $url1='http://eligius.st/~luke-jr/raw/3/blocks/';

And removed:
eligius_rewards("eligius-eu");

In pool.config set the eligius URL to:
http://eligius.st/~luke-jr/raw/3/blocks/

I also used a new utility function with a constant utility since eligius now uses SMPPS instead of proportional rewards.  It should be the default if all other pools have a lower utility.

These have worked for me.  The website shows what I have earned.

Warning though, they are changing their servers around, so the code may need to be updated with new server names in the near future.

So you didn't change the regexp to show results on the multipool summary? Ah well - that's what I was after. I really did want to see if eligius doesn't penalise or reward hoppers, there's been so much discussion about it.

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
Sukrim
Legendary
*
Offline Offline

Activity: 2618
Merit: 1006


View Profile
July 08, 2011, 02:53:46 AM
 #25

Just read how their system works. The only "danger" is that after a lot of unlucky rounds users start to go away from the pool and it is left with a dept that will/can not be paid if noone's mining any more.

It would be nice to have an indicator on Eligius' page if the pool currently has earned more or less than expected (and also how much more/less) to be able to counter this threat, if necessary. I think that's about it though. You can hop in and out as much as you like, everyone should get paid fairly (eventually!).

https://www.coinlend.org <-- automated lending at various exchanges.
https://www.bitfinex.com <-- Trade BTC for other currencies and vice versa.
GriphZero
Newbie
*
Offline Offline

Activity: 20
Merit: 0


View Profile
July 08, 2011, 03:30:16 AM
Last edit: July 10, 2011, 02:20:56 AM by GriphZero
 #26

Sukrim gave a good summary.  Generally Eligius should have a a utility of 1.0 (unless they have had a series of long rounds and run out of credits, then they switch to proportional like most other pools.)  Oddly my Multipool stats pages gives them an efficiency of 0.826 based on four non-pending blocks.  It might be because of their server problems and upgrades.  

Eventually readily available pool hopping software like MultiPool should drive all pools to adopt similar scoring strategies to Eligius.  Before this, there was only a limited group of people doing pool hopping at the expense of everyone else.  This kind of software levels the playing field, and pushes the pools to improve their scoring systems.
GriphZero
Newbie
*
Offline Offline

Activity: 20
Merit: 0


View Profile
July 08, 2011, 04:18:37 AM
Last edit: July 08, 2011, 05:37:53 AM by GriphZero
 #27

I believe there is an error in the deepbit_rewards() subroutine, which is miscalculating the epoch, and corrupting the database.  I fixed this by removing "UTC" from that epoch conversion.  The DeepBit web site is using local time, not UTC.  This doesn't fix the corruption that already happened to the database, but should fix things going forward.
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 08, 2011, 05:56:19 AM
 #28

Just read how their system works. The only "danger" is that after a lot of unlucky rounds users start to go away from the pool and it is left with a dept that will/can not be paid if noone's mining any more.

It would be nice to have an indicator on Eligius' page if the pool currently has earned more or less than expected (and also how much more/less) to be able to counter this threat, if necessary. I think that's about it though. You can hop in and out as much as you like, everyone should get paid fairly (eventually!).

I've read from when Luke-Jr started with max PPS, but I like chart porn, and I love it when you actually get a real world indication of an underlying algorithm, finding just how close results are to what theory says they should be. Sometimes there are subtle surprises you wouldn't think of when just running the system through in your mind - results of real world application are the gold standard. And I really want to see how close that is to reality.

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 08, 2011, 11:20:24 AM
 #29

I'm getting "error unable to communicate with bitcoind"

I made sure the config file for bitcoin has the same username and password as bitcoind.conf and it's set up as per the example above. Anyone else had this problem? I can't be the only one to have made whatever dumb misake I made.

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 09, 2011, 04:20:23 AM
 #30

I'm getting "error unable to communicate with bitcoind"

I made sure the config file for bitcoin has the same username and password as bitcoind.conf and it's set up as per the example above. Anyone else had this problem? I can't be the only one to have made whatever dumb misake I made.
check Multipool.PL code around line 35 make sure you have the config OK (bitcoind runs on local port etc etc)

Is this the line you meant?


my $longpoll=$production?"http://(space)multipool(to breake the url).hpc.tw:$longpoll_port/longpoll":"http://127.0.0.1:$longpoll_port/longpoll";

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 09, 2011, 09:03:01 AM
 #31

I checked bitcoin.conf, bitcoind.conf, accounts conf - all correct but I still get the "unable to communicate with bitcoind" and wont run. Is bitcoind for solo? Is there some way just to run it locally without solo so I don't get this error?

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 09, 2011, 10:16:32 AM
 #32

Is bitcoind for solo?
yes(aka running your own pool)
Is there some way just to run it locally without solo so I don't get this error?
you must run solo

Originally Multipool didn't have solo, he only added it to give miners a fallback. Eligius is a better 1.0 fallback now. Why is solo still required? bitcoind is the only thing preventing me from getting this working.

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 09, 2011, 10:50:50 AM
 #33

still no go.

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
GriphZero
Newbie
*
Offline Offline

Activity: 20
Merit: 0


View Profile
July 09, 2011, 02:40:04 PM
Last edit: July 09, 2011, 03:02:14 PM by GriphZero
 #34

still no go.

It is might be a problem between your miner and bitcoind.  Try just mining solo with your miner and see if that works.  Make sure bitcoind is in server mode.
GriphZero
Newbie
*
Offline Offline

Activity: 20
Merit: 0


View Profile
July 09, 2011, 03:01:52 PM
Last edit: July 09, 2011, 09:29:29 PM by GriphZero
 #35

Here is code for a bitcoinslc_rewards() subroutine.  I've been running it for two days on my local multipool to check the functionality.  It seems to get completed shares successfully, but shares don't exactly lineup correctly with the correct completed blocks.  This is somewhat the intended functionality of multipool where it assigns the rewards to the closest block by time.  Unfortunately the times in the database for completed blocks and the times on the Bitcoins.lc website don't line up exactly, so the block numbering is a bit off.  Running it modifies the database with the completed rewards, so be careful, and check it out first without sending multipool work from your miner.  See if you like how the rewards function is working.  If you don't like it, remove the call to bitcoinslc_rewards(), and reload from your previous datafile.

I'm not a perl programmer, and I mainly just copied the code from other rewards subroutines, and received some help from other forum members on the parsing.  Thanks!  If anyone comes up with an improved version, please post it.  Better yet would be if MultiPool himself/herself or someone else could setup a git repository that could be contributed to.

See updated code below. V
GriphZero
Newbie
*
Offline Offline

Activity: 20
Merit: 0


View Profile
July 09, 2011, 09:22:28 PM
 #36

Wouldn't you know it.  Bitcoins.lc just change their authentication, preventing the rewards subroutine from logging in.   The two lines with "_csrf_protect_token" need to change to "_csrf_token" to fix this.  If they change it again,  look at the login page's source and pick out the new token name, from the login section.

Here is the code again with the changes.
Code:
sub bitcoinslc_rewards {
    print "parsing bitcoin.lc rewards\n";
    my $url1='https://www.bitcoins.lc/';
    my $url2='https://www.bitcoins.lc/transactions';
    my $pool=$pools{"bitcoins-lc"};
    $pool->{rounds_time}=shared_clone({}) unless $pool->{rounds_time};

    foreach my $account (values %{$accounts{"bitcoins-lc"}}) {
$_=wget($url1, "--keep-session-cookies --save-cookie bitcoins-lc-cookie.txt");
if (!$_){
    print "error: unable to fetch bitcoins-lc login page $url1\n";
    return;
}
m{.* name="_csrf_token" value="(\w.*)"};
my $token=$1;
my $ok=($token=~/^[a-z0-9]+$/);

if ($ok){
    $_=wget($url1, "'--post-data=_csrf_token=$token&action=login&email=$account->{web_user}&password=$account->{web_pass}&login=Proceed'", "--load-cookies bitcoins-lc-cookie.txt", "--keep-session-cookies --save-cookie bitcoins-lc-cookie2.txt");
    $ok=!!$_;
}
if ($ok){
    $_=wget($url2, "--load-cookies bitcoins-lc-cookie2.txt");
    $ok=!!$_;
}

my @lines;
if ($ok){
    @lines=split/\n/;
    $ok=@lines; # puts the number of lines in $ok
}
if (!$ok){
    print "error: cannot login into/parse stats page for bitcoin-lc using account $account->{name}\n";
    return;
}
@lines = grep { /Your Transactions/ .. /div id="rightcol"/ } @lines;
if (!@lines) {
   print "error: no lines matched between Your Transactions and div id=rightcol; code needs changed!\n";
   return;
}

my @new_rounds;
my $blockid = 0;
my $date;
my $shares = 0;
my $reward = 0;
my $epoch = 0;

foreach (@lines){
    if (/Received Block (\d+)<span> - (.*)<\/span>/) {
$blockid = $1;
$date = $2;
$date =~ s/ (\d\d?) (...) / $2 $1 /;
$epoch=qx(date -d '$date' +%s); chomp $epoch;
    }
    if (/Based upon (\d+) valid shares/) {
$shares = $1;
next if (!$blockid);
    }
    if (/<p class="amount">\+([\d.]+)/) {
$reward = $1;
if ($blockid) {
    #print "Debug: block $blockid, date '$date', epoch '$epoch', shares $shares, amount $reward\n";
    $ok=($blockid=~/^[a-z0-9]+$/ and $reward=~/^\d+\.\d+$/ and $epoch=~/^\d+$/ and $shares=~/^\d+$/);

    if (!$ok){
print "error parsing stats page for bitcoins-lc using account $account->{name}: line=$_\n";
foreach my $round (@new_rounds){
    delete $account->{rounds}->{$round};
}
return;
    }

    my $round=$pool->{rounds_time}->{$epoch};
    if (!$round){
$round=guess_round($epoch, $pool, $epoch);
next if !$round;
$pool->{rounds}->{$round}=shared_clone({time => $epoch, shares => $shares});
$pool->{rounds_time}->{$epoch} = $round;
    }
    if (!$account->{rounds}->{$round}){
$account->{rounds}->{$round}=shared_clone({earned => $reward, shares_web => $shares});
push @new_rounds, $round;
    }    

    # Then reset data
    $blockid = $shares = $reward = $epoch = 0;
    $date = "";
} else {
    next;
}
    }
    last if (/Recent Transactions/);
}
consolidate_rounds($account, @new_rounds);
    }
}
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


View Profile WWW
July 11, 2011, 05:49:07 AM
 #37

There's a lot of great stuff here. In the interests of saving time for everyone, would those of you who have updated code be interested in starting a fresh Multipool fork on github?

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
Disposition
Full Member
***
Offline Offline

Activity: 121
Merit: 100


View Profile
July 21, 2011, 09:20:08 PM
 #38

There's a lot of great stuff here. In the interests of saving time for everyone, would those of you who have updated code be interested in starting a fresh Multipool fork on github?

Yeah.. bitHopper isn't really suiting my needs considering I have a bunch of workers I need to track individually, I'll put a bounty as well as make a fork this weekend.
Pages: 1 2 [All]
  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!