Author

Topic: [1500 TH] p2pool: Decentralized, DoS-resistant, Hop-Proof pool - page 749. (Read 2591920 times)

legendary
Activity: 2126
Merit: 1001
[p2pcoin - a self contained p2pool node - boots from CD, USB or network]

Definitely true, and valuable work for all miners!
The question is, how many % of the total network is mining on dedicated hardware? The new members surely will simply use their regular, only computer, which happens to have a fat gpu for gaming. I dont expect many of them to boot a linux every time they want to mine, and to not mine when they use their computer for other stuff.

Still, I love the linux-bitcoin-remixes, staying far away from M$ for many years now!

Ente
kjj
legendary
Activity: 1302
Merit: 1026
Oh, I would absolutely love a single package/installer/binary which installs/runs everything to start p2poolmining! And yes, the current approach with python, modules, p2pool, bitcoind, blockchain and sharechain seems too complicated to pack into one block.. So yes, I see your point in a complete redesign. I dont know enough about the inner workings of all that (monolithic? libraries? dynamic linking?) to decide for or against c, python, modular, monolithic etc.

However I would, at this point, prefer to not integrate p2pool into satoshi client. Maybe integrate a bitcoin client/daemon into p2pool, but the default should be two independent programs.
The current events with rc1, rc2, mandatory updates in quick order and many unstable or not working combinations give me a bad feeling about merging the two to a single, standard client..

What would be the way to make a new, better p2pool version? One program which has everything included (graphs, dependencies)? It wouldnt make a big difference if its C or python then. There is that python-to-exe version too, for windows, apparently?

People would still need bitcoind (if you dont integrate that). People still need a miner (if you dont integrate that). People still need the radeon "runtime". It sounds like a gigantic project to deliver an all-in-one download-doubleclick-mine solution..

Ente

Ahem...
legendary
Activity: 2126
Merit: 1001
Oh, I would absolutely love a single package/installer/binary which installs/runs everything to start p2poolmining! And yes, the current approach with python, modules, p2pool, bitcoind, blockchain and sharechain seems too complicated to pack into one block.. So yes, I see your point in a complete redesign. I dont know enough about the inner workings of all that (monolithic? libraries? dynamic linking?) to decide for or against c, python, modular, monolithic etc.

However I would, at this point, prefer to not integrate p2pool into satoshi client. Maybe integrate a bitcoin client/daemon into p2pool, but the default should be two independent programs.
The current events with rc1, rc2, mandatory updates in quick order and many unstable or not working combinations give me a bad feeling about merging the two to a single, standard client..

What would be the way to make a new, better p2pool version? One program which has everything included (graphs, dependencies)? It wouldnt make a big difference if its C or python then. There is that python-to-exe version too, for windows, apparently?

People would still need bitcoind (if you dont integrate that). People still need a miner (if you dont integrate that). People still need the radeon "runtime". It sounds like a gigantic project to deliver an all-in-one download-doubleclick-mine solution..

Ente
sr. member
Activity: 410
Merit: 252
Watercooling the world of mining
Just as info.

I have been running bitcoind  bitcoin-qt  p2pool and multiple miners on different ARM boards.

While the miners and bitcoind and Bitcoin-QT run without problems and little Cpu and modest RAM usage on a 600Mhz ARM
p2pool consumes to much CPU power.

The consumption of CPu power is largely scaling with the amount of shares distributed by the miners connected.
I found a miner with ~ 400Mh/s to be to CPU consuming for a 600Mhz and a 1000Mhz ARM CPU.

If the CPU power isn't sufficient it triggers the effect that it works for a while ~45 min.
Afther that the amount of "Timed out while getting work from p2pool" raises significantly.
Other the whole time the p2pool client starts lagging behind the network's time/share count
and finally ends up going unsync afther ~ 60 min.

I will try on my pandaboard these days.
full member
Activity: 216
Merit: 100
Should we start a bounty to get this recoded in C/C++? Not sure if there is one already, I remember mention of it earlier. Either pure C, or C++ in the same coding style and using the same libs as bitcoind.

You want someone to write twisted in C?
donator
Activity: 532
Merit: 501
We have cookies
Quote
Blocks in shorter chains (or invalid chains) are called "orphan blocks", and while they are stored, they are not used for anything. When a block becomes an orphan block, all of its valid transactions are re-added to the pool of queued transactions and will be included in another block. The 50 BTC reward for the orphan block will be lost, which is why a network-enforced 100-block maturation time for generations exists.
I think it's actually a 120-block mature time, though.
120 is not network-enforced, your client is just too careful :)
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
It's only 2 lines of code (and 2 braces) in init.cpp and 1 line added to the unix makefile to add a whole new module thread onto bitcoind ...
(I do that every time I upgrade my bitcoind - I got sick of editing my changes in every time Tongue)

So hoping for Gavin to do anything is no reason at all to decide for or against doing it.
rjk
sr. member
Activity: 448
Merit: 250
1ngldh
Regarding the pure C implementation to improve efficiency; have you had any problems with the Python implementation underperforming? What kind of cheap hardware are you referring to? I suspect p2pool would run fine on an ARM processor, though I haven't tried. Or are you talking about even slower hardware, like - for example - the Atmel CPU that is in a Bitforce Single (so that it can run without a host computer)?
One example was earlier in this thread, I believe. Someone wanted to use an old P3 with 384mb RAM and probably a similarly old hard drive. It was causing all kinds of issues, maxing out the CPU because it was swapping so much. I dunno if the memory requirement is because of inefficiencies in python or p2pool, or whether the same issue would happen when implemented in C/C++, but I do know that many applications do generally get better all around performance when written in a compiled language, not an interpreted language.
legendary
Activity: 980
Merit: 1008
Should we start a bounty to get this recoded in C/C++? Not sure if there is one already, I remember mention of it earlier. Either pure C, or C++ in the same coding style and using the same libs as bitcoind.
What would be the motivation? As far as I can tell, forrestv's Python implementation works fine. What would be the reason to put in this relatively large amount of work to get the p2pool protocol implemented in another language?
For one thing, having a stable implementation in C++ would make it more appealing to the bitcoind developers to include it all in one binary. Gavin has expressed interest in possible integration, but I am fairly certain it wouldn't be considered unless it was written in the same language as the rest of bitcoind.

In addition, a pure C implementation has the potential to be far more efficient and would run better on cheap hardware, if optimized.


I wasn't aware of Gavin wanting to merge p2pool with bitcoind. That's interesting. Personally, I would say keep them separate. I like the "Write programs that do one thing and do it well"-approach. bitcoind seems like a building block for block chain-related applications to me (though a libbitcoin would be better). Integrating a specific block chain-related application into it seems like a strange move to me. But hey, I'm no lead developer of Bitcoin. I can see the logic in making it easier for people to solo mine though, possibly leading people away from pooled mining.

Regarding the pure C implementation to improve efficiency; have you had any problems with the Python implementation underperforming? What kind of cheap hardware are you referring to? I suspect p2pool would run fine on an ARM processor, though I haven't tried. Or are you talking about even slower hardware, like - for example - the Atmel CPU that is in a Bitforce Single (so that it can run without a host computer)?
donator
Activity: 1218
Merit: 1079
Gerald Davis
Should we start a bounty to get this recoded in C/C++? Not sure if there is one already, I remember mention of it earlier. Either pure C, or C++ in the same coding style and using the same libs as bitcoind.
What would be the motivation? As far as I can tell, forrestv's Python implementation works fine. What would be the reason to put in this relatively large amount of work to get the p2pool protocol implemented in another language?
For one thing, having a stable implementation in C++ would make it more appealing to the bitcoind developers to include it all in one binary. Gavin has expressed interest in possible integration, but I am fairly certain it wouldn't be considered unless it was written in the same language as the rest of bitcoind.

In addition, a pure C implementation has the potential to be far more efficient and would run better on cheap hardware, if optimized.



The integration into client would be worthwhile IMHO.  Honestly any future alt-chain should consider that from day 1.  Making the p2pool an integral part of protocol.
hero member
Activity: 560
Merit: 500
Should we start a bounty to get this recoded in C/C++? Not sure if there is one already, I remember mention of it earlier. Either pure C, or C++ in the same coding style and using the same libs as bitcoind.
What would be the motivation? As far as I can tell, forrestv's Python implementation works fine. What would be the reason to put in this relatively large amount of work to get the p2pool protocol implemented in another language?
For one thing, having a stable implementation in C++ would make it more appealing to the bitcoind developers to include it all in one binary. Gavin has expressed interest in possible integration, but I am fairly certain it wouldn't be considered unless it was written in the same language as the rest of bitcoind.

In addition, a pure C implementation has the potential to be far more efficient and would run better on cheap hardware, if optimized.



if optimized.
rjk
sr. member
Activity: 448
Merit: 250
1ngldh
Should we start a bounty to get this recoded in C/C++? Not sure if there is one already, I remember mention of it earlier. Either pure C, or C++ in the same coding style and using the same libs as bitcoind.
What would be the motivation? As far as I can tell, forrestv's Python implementation works fine. What would be the reason to put in this relatively large amount of work to get the p2pool protocol implemented in another language?
For one thing, having a stable implementation in C++ would make it more appealing to the bitcoind developers to include it all in one binary. Gavin has expressed interest in possible integration, but I am fairly certain it wouldn't be considered unless it was written in the same language as the rest of bitcoind.

In addition, a pure C implementation has the potential to be far more efficient and would run better on cheap hardware, if optimized.

legendary
Activity: 980
Merit: 1008
Should we start a bounty to get this recoded in C/C++? Not sure if there is one already, I remember mention of it earlier. Either pure C, or C++ in the same coding style and using the same libs as bitcoind.
What would be the motivation? As far as I can tell, forrestv's Python implementation works fine. What would be the reason to put in this relatively large amount of work to get the p2pool protocol implemented in another language?
sr. member
Activity: 327
Merit: 250

OK that makes sense, thanks for answer much appreciated.

Doff
hero member
Activity: 737
Merit: 500
This is probably a total newb question but what is an orphaned share exactly?

Ive been in the pool about 3 weeks, and Ive had fun supporting this pool, but man its been dry the last couple weeks for sure. I don't understand all the variance. orphaned, dead share stuff yet. Also learning a lot each day about Bitcoin. Now mind you Ive never had a dead share, and only 2-3 orphaned in the last 3 weeks or so, so I don't think there is an issue just wanted to understand it better.

As I said Ive been having fun with Bitcoin and p2pool just wish it would pick back up a bit.

https://en.bitcoin.it/wiki/Block_chain
Quote
Blocks in shorter chains (or invalid chains) are called "orphan blocks", and while they are stored, they are not used for anything. When a block becomes an orphan block, all of its valid transactions are re-added to the pool of queued transactions and will be included in another block. The 50 BTC reward for the orphan block will be lost, which is why a network-enforced 100-block maturation time for generations exists.
I think it's actually a 120-block mature time, though.

He's asking about orphaned shares and not orphaned blocks, but the concept is similar.  An orphaned share happens when two people find shares at about the same time both building on the same previous share.  These two new shares are now in a competition.  One of them will get extended by the next person to find a share and the other won't.  The one that is not extended is an orphaned share and won't result in any payout.

hero member
Activity: 560
Merit: 500
This is probably a total newb question but what is an orphaned share exactly?

Ive been in the pool about 3 weeks, and Ive had fun supporting this pool, but man its been dry the last couple weeks for sure. I don't understand all the variance. orphaned, dead share stuff yet. Also learning a lot each day about Bitcoin. Now mind you Ive never had a dead share, and only 2-3 orphaned in the last 3 weeks or so, so I don't think there is an issue just wanted to understand it better.

As I said Ive been having fun with Bitcoin and p2pool just wish it would pick back up a bit.

https://en.bitcoin.it/wiki/Block_chain
Quote
Blocks in shorter chains (or invalid chains) are called "orphan blocks", and while they are stored, they are not used for anything. When a block becomes an orphan block, all of its valid transactions are re-added to the pool of queued transactions and will be included in another block. The 50 BTC reward for the orphan block will be lost, which is why a network-enforced 100-block maturation time for generations exists.
I think it's actually a 120-block mature time, though.
sr. member
Activity: 327
Merit: 250
This is probably a total newb question but what is an orphaned share exactly?

Ive been in the pool about 3 weeks, and Ive had fun supporting this pool, but man its been dry the last couple weeks for sure. I don't understand all the variance. orphaned, dead share stuff yet. Also learning a lot each day about Bitcoin. Now mind you Ive never had a dead share, and only 2-3 orphaned in the last 3 weeks or so, so I don't think there is an issue just wanted to understand it better.

As I said Ive been having fun with Bitcoin and p2pool just wish it would pick back up a bit.
hero member
Activity: 560
Merit: 500
I wanted to pay out more than 100%, that is, to use a negative fee, because I merged mine numerous chains and that seemed a simple direct way to reward users for helping my merged-mining efforts. However it turns out that simply using a negative amount for the fee does not accomplish what I intended. Maybe it would be useful to cause it to do so, as others too might like to thusly enable their users to benefit from the fact they are actually mining a number of chains at once?

-MarkM-

Lol wut?  Where would the coins come from?
I think he's wanting to pull the bitcoins from his wallet.
hero member
Activity: 742
Merit: 500
I wanted to pay out more than 100%, that is, to use a negative fee, because I merged mine numerous chains and that seemed a simple direct way to reward users for helping my merged-mining efforts. However it turns out that simply using a negative amount for the fee does not accomplish what I intended. Maybe it would be useful to cause it to do so, as others too might like to thusly enable their users to benefit from the fact they are actually mining a number of chains at once?

-MarkM-

Lol wut?  Where would the coins come from?


Should we start a bounty to get this recoded in C/C++? Not sure if there is one already, I remember mention of it earlier. Either pure C, or C++ in the same coding style and using the same libs as bitcoind.
bitcoind doesn't have easy to use libs.  That's why libbitcoin is being written.  Even with libbitcoin, I don't see any advantages to switching C since libbitcoin has python bindings.  Maybe p2pool could be integrated into the Satoshi client, but I don't think that would help bitcoin much (maybe litecoin though).

It would be cool if p2pool didn't need bitcoind, but that would be quite a bit of work.
full member
Activity: 125
Merit: 100
One of the simplest ways to distribute some sort of all in one installer would be to create a live cd that already has everything all setup.  Then people can just pop in the CD/flash drive, boot up into ubuntu, run one script to configure p2pool, and start it.  I actually tried doing this a while ago, with a downloaded copy of the blockchain to save everyone the lengthy download, but every time I started up bitcoind it would freeze. 

Then a few new pieces of equipment showed up and I got distracted by them, but I will give this another go.
Jump to: