Pages:
Author

Topic: Modular Python Bitcoin Miner - Official Thread - page 14. (Read 74184 times)

legendary
Activity: 1092
Merit: 1001
I just got this running with Icarus on Windows 7.. nice!
Bitcoin donated.

Is there a proper way to shut down MPBM? I've just been killing the command window as things like ctrl-c ctrl-z don't seem to have any effect.

sr. member
Activity: 410
Merit: 252
Watercooling the world of mining
I am using a modified Ubuntu 11.04 natty.
I recompiled both bitcoind and bitcoin-qt for the plattform.
full member
Activity: 148
Merit: 100
I have finally gotten my ARM board + icarus + x6500 board  running with bitcoin-qt p2pool and MPBM.

I am currently getting somewhere around 13% stales.

How are your experiences regarding optimised values to improve efficiency on p2pool using MPBM ?

do you run bitcoin-qt on your arm device?
what OS are you using? Openwrt?
sr. member
Activity: 410
Merit: 252
Watercooling the world of mining
I have finally gotten my ARM board + icarus + x6500 board  running with bitcoin-qt p2pool and MPBM.

I am currently getting somewhere around 13% stales.

How are your experiences regarding optimised values to improve efficiency on p2pool using MPBM ?
legendary
Activity: 1540
Merit: 1002
I have updated https://github.com/nelisky/Modular-Python-Bitcoin-Miner/tree/ztex with high speed FPGA configuration (which appears to be just as slow from my tests) and multi device hotplug support, though I only tested with my single board. Anyone having multiple ztex boards and wanting to experiment with MPBM, please give this a try and let me know.

I also created a pull request to get this into TheSeven's repo: https://github.com/TheSeven/Modular-Python-Bitcoin-Miner/pull/5
donator
Activity: 362
Merit: 250
I just set up MPBM yesterday and have to say I was impressed.  I will definitely be using this software in the future.  Donation sent, thanks!
legendary
Activity: 3080
Merit: 1080
Awesome nelisky! Thanks for your contribution. Even though I do not have a ztex board I can definitely appreciate your working on support for it.
legendary
Activity: 1540
Merit: 1002

https://github.com/nelisky/Modular-Python-Bitcoin-Miner/tree/ztex

This is a very crude first attempt, many things are still missing, the devices need to be preflashed and the bitstreams must match the firmware. Only one device is supported (it does filter by serial, but then uses only the first device found) and the freq change algorithm from the error rate is much, much simpler than ztex's, and I only implemented the low speed FPGA config so far.

Next step would be multiple device suport but as I only have one currently I'm not going to blindly implement that. I might add to the code base to support more of ztex's original java source goodies ported to python, like the high speed config, but I'll be happy to pass that anyone else wanting to lend a hand.

Have fun (I'm mining on p2pool with my single ztex using this code right now).
member
Activity: 70
Merit: 10
Quote from: ngzhang
i usually get 800-1200ms here.  Grin

You may want to try p2pool. I couldn't tell you if it will help you or not. If you check the p2pool thread someone might be able to tell you more. I am guessing you're in Asia or maybe you're on a sat link.
legendary
Activity: 3080
Merit: 1080
i usually get 800-1200ms here.  Grin
300ms? extremely fast  Tongue

Whoa. I am extremely surprised. That is some pretty bad latency there ngzhang.
hero member
Activity: 592
Merit: 501
We will stand and fight.
i usually get 800-1200ms here.  Grin
300ms? extremely fast  Tongue
legendary
Activity: 3080
Merit: 1080
Quote from: allinvain
Congrats. And thanks for the tip Smiley btc address is: 12c8Yd8P1YpTRdRDMwnvqLbTqEcymnvC67

Coins sent.

Quote from: allinvain
Another tip for you, try using a pool that has the lowest latency/ping time from your location.

It's been running for about 2.5 hours and I have about 300 errors regarding my pool (slushes - bitcoin.cz) in my log.

Ping is about 300ms from here. Most others are not much better to be honest (btcguild is).

Here is an error only log file. Most are time outs, but if you scroll down you'll also see others.

http://pastebin.com/5mrssXkj
 
Edit: I changed getworktimeout to 4 seconds, this seems to have solved the time out errors for now. But do I waste a lot of time this way?


Thanks antirack! Smiley

Hmm, 300ms is pretty bad. How much better is btcguild? For me btcguild is the lowest latency pool. Slush is in the 120ms mark. There is no local pool or regional pool where you're located?
hero member
Activity: 504
Merit: 500
FPGA Mining LLC
Edit: I changed getworktimeout to 4 seconds, this seems to have solved the time out errors for now. But do I waste a lot of time this way?
It shouldn't waste time directly, it only increases the risk of the work buffer not filling fast enough, especially after long polls, if a pool misbehaves. 4 seconds should still be fine though, I use 2 seconds here because that's what pools manage to meet in >99% of the cases for me.

You should probably add a backup pool though, so that your boards won't run idle if slush has problems.
Generally I'd recommend using 2 or 3 pools at the same priority, i.e. balancing your hashing power across them equally. If one of them is acting up, MPBM will automatically move some hashing power away from it, towards a better working pool.
hero member
Activity: 489
Merit: 500
Immersionist
Quote from: allinvain
Congrats. And thanks for the tip Smiley btc address is: 12c8Yd8P1YpTRdRDMwnvqLbTqEcymnvC67

Coins sent.

Quote from: allinvain
Another tip for you, try using a pool that has the lowest latency/ping time from your location.

It's been running for about 2.5 hours and I have about 300 errors regarding my pool (slushes - bitcoin.cz) in my log.

Ping is about 300ms from here. Most others are not much better to be honest (btcguild is).

Here is an error only log file. Most are time outs, but if you scroll down you'll also see others.

http://pastebin.com/5mrssXkj
 
Edit: I changed getworktimeout to 4 seconds, this seems to have solved the time out errors for now. But do I waste a lot of time this way?
legendary
Activity: 3080
Merit: 1080
hero member
Activity: 489
Merit: 500
Immersionist
Did you install the PL303 driver? here: http://www.prolific.com.tw/eng/downloads.asp?id=31

Also you made sure you install the python modules such as serial,jsonrpc,curses. All available in ngzhang's github package:
https://github.com/ngzhang/Icarus

git it now :p



Thanks, we have success!

I had the PL303 driver, but I somehow missed that the modules where available on ngzhang's github.

Just putting the serial directory in the Lib folder didn't work, installing pyserial-2.5 also didn't work. I had to get pyserial-2.6.tar.gz and run 'python setup.py install' on it to get it to work (before that I had all sorts of errors, including syntax errors). Might be because I am using Python 3.2.2.

Post your bitcoin address and I'll send you some coins Smiley

I'll post a screenshot after a few hours. Right now I don't know what to make of all those numbers. So far I have this:

Code:
                                                            Modular Python Bitcoin Miner v0.0.4alpha
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Total speed: 1885.5 MH/s - Buffer: 30/30 (49.94 seconds)

       Pool       │Long│          │  Job   │   Failed   │Accepted│Rejected│Accepted│Stale shares│Share upload│Average│Effi- │Current
       name       │poll│Difficulty│requests│job requests│  jobs  │  jobs  │ shares │ (rejected) │  retries   │MHash/s│ciency│  bias
Slush (bitcoin.cz)│Yes │   0.99998│    1204│   31 (2.6%)│    1018│     125│     503│   23 (4.4%)│    0 (0.0%)│1878.44│ 99.0%│1246210

       Worker       │Accepted│Accepted│Stale shares│Invalid shares│Current│Average│Temperature│Effi- │     Current
        name        │  jobs  │ shares │ (rejected) │ (K not zero) │MHash/s│MHash/s│(degrees C)│ciency│       pool
Icarus board on COM3│     203│      98│    6 (5.8%)│      1 (1.0%)│ 379.65│ 372.56│  Unknown  │ 97.2%│Slush (bitcoin.cz)
Icarus board on COM4│     215│     114│    4 (3.4%)│      0 (0.0%)│ 372.43│ 376.24│  Unknown  │112.0%│Slush (bitcoin.cz)
Icarus board on COM5│     203│     106│    2 (1.9%)│      0 (0.0%)│ 375.02│ 376.84│  Unknown  │104.0%│Slush (bitcoin.cz)
Icarus board on COM6│     205│     102│    6 (5.6%)│      0 (0.0%)│ 379.05│ 376.48│  Unknown  │100.1%│Slush (bitcoin.cz)
Icarus board on COM7│     192│      83│    5 (5.7%)│      0 (0.0%)│ 379.37│ 376.36│  Unknown  │ 81.5%│Slush (bitcoin.cz)
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

legendary
Activity: 3080
Merit: 1080
Did you install the PL303 driver? here: http://www.prolific.com.tw/eng/downloads.asp?id=31

Also you made sure you install the python modules such as serial,jsonrpc,curses. All available in ngzhang's github package:
https://github.com/ngzhang/Icarus

git it now :p

hero member
Activity: 489
Merit: 500
Immersionist
Total Python noob here.

I received 5 Icarus boards yesterday and I am trying to get MPBM to work (I have RG7Miner working fine with Icarus and 1 ZTEX board with the ZTEX Java Miner).

I am on Windows 7 32bit. That's what I did so far.

- Downloaded and installed Python 3.2 (python-3.2.2.msi).
- Extracted TheSeven-Modular-Python-Bitcoin-Miner-4b06f62.zip to C:\mpbm
- Edited config file and enabled Icarus and added my pool
(I have only one entry in there now for my worker with COM3, would I just duplicate the entries for each worker?)
- Installed curses-2.2.win32-py3.2.exe
- Installed pyserial-2.5.win32.exe
- I am not sure if I need JSON-RPC, so I downloaded joshmarshall-jsonrpclib-e3a3cde.zip and put it into the Python/Lib folder.

Do I need to install a libusb or something?

When I try to start the miner I get the following:

Code:
C:\mpbm>python miner.py
Traceback (most recent call last):
  File "miner.py", line 331, in
    exec("import " + configfile + " as config")
  File "", line 1, in
  File "C:\mpbm\config.py", line 13, in
    import worker.theseven.icarus
  File "C:\mpbm\worker\theseven\icarus.py", line 35, in
    import serial
  File "C:\python32\lib\site-packages\serial\__init__.py", line 19, in
    from serialwin32 import *
ImportError: No module named serialwin32

Some coins are waiting for the one helping me to make this to work Wink
hero member
Activity: 504
Merit: 500
FPGA Mining LLC
Hm, looks like deepbit is a bit swamped with requests after a long poll and can't respond to all of those 128 work requests it got from MPBM within 2 seconds. You basically ended up with like 3 seconds of wasted work after the long poll, which seems fine to me for such a huge army of workers.
If the FPGA design supports nonce ranges one day, it might be worth looking into splitting up work across multiple boards while the work fetchers are struggling to keep up after an LP.
Another possibility would be adding an option that keeps multiple LP connections to the pools, so that there's more work to be put in the queue when the LP responses come in. I'll probably add support for that in the v0.1.x series.

is it possible to support nonce ranges by miner software? i mean split the work by the miner, and transparent for the FPGAs.
It isn't, because currently none of the FPGA interfaces support setting a nonce range/start nonce.

understood.
so how many bit in the nonce range is enough? now you know is 32bit wide. (11s@400MH/s)
I think 4 bits (to divide a piece of work into 16 nonceranges) should be sufficient. Couldn't hurt to be able to specify exact start/end nonces though.
hero member
Activity: 592
Merit: 501
We will stand and fight.
Hm, looks like deepbit is a bit swamped with requests after a long poll and can't respond to all of those 128 work requests it got from MPBM within 2 seconds. You basically ended up with like 3 seconds of wasted work after the long poll, which seems fine to me for such a huge army of workers.
If the FPGA design supports nonce ranges one day, it might be worth looking into splitting up work across multiple boards while the work fetchers are struggling to keep up after an LP.
Another possibility would be adding an option that keeps multiple LP connections to the pools, so that there's more work to be put in the queue when the LP responses come in. I'll probably add support for that in the v0.1.x series.

is it possible to support nonce ranges by miner software? i mean split the work by the miner, and transparent for the FPGAs.
It isn't, because currently none of the FPGA interfaces support setting a nonce range/start nonce.

understood.
so how many bit in the nonce range is enough? now you know is 32bit wide. (11s@400MH/s)
Pages:
Jump to: