Bitcoin Forum
November 19, 2024, 02:13:09 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: del  (Read 6796 times)
myself
Guest

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

del
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
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!