It seems my Icarus has developed a problem while I was at the conference. The Prolific USB chip responds as usual, and behaves normally; however, sending jobs (including known "test" jobs) never returns any nonces, regardless of how long I wait. The original cooling (heatsink & fan) is intact and working flawlessly, and I have never connected the JTAG or modified the FPGA or flash contents. Wondering if anyone else has seen this kind of behaviour, before I start poking around more...
|
|
|
I have been playing around with slush's pool software while waiting for B3 to go into production, and I like it as it has a handy little status webpage.
My preference though is eloipool.
Does eloipool have a method of checking the current running status of the pool?
Is the DB schema documented anywhere if I wanted to make my own scripts for status querying?
Eloipool doesn't have a db schema... you have to configure that yourself.
|
|
|
Update: I let it run for a few hours without any external cooling besides my house's air conditioning. It basically went to all hardware errors. The good news is, within a few minutes of turning the fan on, it recovered to full hashrate with no hardware errors. Does this mean running it without the heatsink as well? The Emeralds didn't have a heatsink. The original context was someone asking why it needed one
|
|
|
Update: I let it run for a few hours without any external cooling besides my house's air conditioning. It basically went to all hardware errors. The good news is, within a few minutes of turning the fan on, it recovered to full hashrate with no hardware errors.
|
|
|
Hi,
Currently I'm running BFGMINER (diablo kernel) with my 7950 with good result ~630mh/s But I have a possibility to have a 5870 old card gift by a friend It's possible to run 2 separate instance of bfgminer ?
When I'm off (work or sleep) 2 cards run
When I want to play battlefield 3, watching video etc... I turn off the 7950 but the 5870 keep going ?
Thanks you in advance
Dermo
Check out the -d option... Or just disable/enable the GPUs in the TUI.
|
|
|
This encoding is designed so that it could replace Base58Check in new data, with the following goals in mind: - Impossible(?) to manipulate without completely changing it
- Clearly identifiable prefix, regardless of data size
- Cheaper to process (simpler and faster code; it's a power-of-two radix)
- Fixed length string for fixed length data
- More unambiguous (removal of chars 'isuvzSVZ')
- Compatible with using seven-segment displays
- Altcoin friendly (16 bit namespace, which can be read without decoding)
Since there are fewer digits and more identifying/signature characters, addresses are longer. This should be less of a problem since ordinary users will hopefully be using addresses less common as the payment protocol becomes more popular. Example Python code (including tests) is at the bottom. I can write up a formal BIP if this seems useful. For example: 160 bits of data, such as current addresses: - 2nc111dhAPE2aUdYAOF88JhLn5jEjbULy4eFe9tyFYFE8
An ordinary P2SH destination, incorporating Greg's "require the hash mid-image to be relayed" concept (256 bits of data): - 2bc511A95e74P13dPb6b5t7yrh12EhC363ayH98n1cFbr3rAHdA49nCcC1G3P71j
The same key in Namecoin: - 2nc5119ttL35HPhc3Hh6aHe2tOhF6rdFtAOE1ahFLt9Ecabhcn5FLea5Le71P56C
The example "puzzle" script from the wiki (arbitrary scripting): - 2bc311d126acCyAnHAjabeUtOHcr7F811j4UYE6ECtOcbcGGn4O9chAt7O7y2LU9ty9cnG4
An alternative for BIP32 extended public keys (560 bits): - 2bc911AcchHheAGFnn9LC6FdF7bOc99APJtcEc46U655JheH6LCr3Y333eFEOtPJ9rj22rEcchHheAG Fnn9LC6FdF7bOc99APJtcEc46U655JheH6LCr3YJCtPYea
An alternative for BIP32 extended private keys (552 bits): - 2bcb11O77GHdP53FH7Jh44OdEh3rLd4eFr2h7c8rGeErELG18yCy9O7L9LednyHJa5hyeAP77GHdP53 FH7Jh44OdEh3rLd4eFr2h7c8rGeErELG18yCyGG5drPF1
c32.py # Digits are chosen to be the least ambiguous # They all have unique seven-segment glyphs, and cannot be easily confused by humans digits = '123456789abcdehjnrtyACEFGHJLOPUY' radix = len(digits)
def encode(v): if not len(v): return '' n = 0 bits = 0 o = [] pad = (len(v) * 8) % 5 if pad: v = b'\0' + v v = bytearray(v) # For Python 2.7 compatibility for i in range(len(v) - 1, -1, -1): n |= v[i] << bits bits += 8 while bits >= 5: o.insert(0, digits[n & 0x1f]) n >>= 5 bits -= 5 if i == 0 and pad: break return ''.join(o)
def decode(s): n = 0 bits = 0 o = bytearray() for i in range(len(s) - 1, -1, -1): n |= digits.index(s[i]) << bits bits += 5 while bits >= 8: o.insert(0, n & 0xff) n >>= 8 bits -= 8 return bytes(o)
def test(): from math import ceil assert '' == encode(b'') for (i, oc) in ( (1, '8'), (2, '2'), (3, 'j'), (4, '4'), (5, 'Y'), (6, '8'), (7, '2'), (8, 'j'), (9, '4'), ): ol = int(ceil(i * 8 / 5.)) try: inzero = b'\0' * i inone = b'\xff' * i ezero = encode(inzero) eone = encode(inone) dzero = decode(ezero) done = decode(eone) assert ezero == '1' * ol assert eone == oc + ('Y' * (ol - 1)) assert dzero == inzero assert done == inone except AssertionError: raise AssertionError('Input of length %s failed test' % (i,)) try: for c in range(1024): decode('111' + chr(c)) except ValueError: pass else: raise AssertionError('Invalid decode input (%02x) did not throw a ValueError' % (c,))
if __name__ == '__main__': test() print("Tests passed")
c32d.py import c32 import hashlib import struct
def _checksum(v): return hashlib.sha256(hashlib.sha256(v).digest()).digest()[-4:]
''' String format: - c32(Raw format) in reverse order
Raw format: - 4 bytes checksum - N bytes data (NOTE: encoded to prevent hidden changes) - - for script: - - - N bytes: varint preimage data length - - - N bytes: preimage data - - - N bytes: script data - - for BIP32 HD parent key: - - - 32 bytes: chain code - - - 33 bytes: parent pubkey - - for BIP32 serialized key: - - - 1 byte: depth - - - 4 bytes: child number - - - 32 bytes: chain code - - - One of: - - - - 32 bytes: private key data - - - - 33 bytes: public key data - 1 byte flag (ignored if unknown) - 1 byte type - - 01 script (with preimage data) - - 02 script hash preimage - - 03 BIP32 HD parent key - - 04 BIP32 serialized public key - 2 bytes namespace (blockchain id) - - 2d41 Bitcoin ('2bc') - - 2e01 Namecoin ('2nc') - - 2e37 Freicoin ('FRC') '''
class c32d: __slots__ = ('data', 'ns', 'dtype', 'dflag') def __init__(self, data, ns, dtype, dflag): self.data = data self.ns = ns self.dtype = dtype self.dflag = dflag @classmethod def decode(cls, s, raw = False): if not raw: full = c32.decode(s[::-1]) else: full = s csum = bytearray(full[:4]) v = bytearray(full[4:]) # Encode the configuration bytes to simplify decoding pv = 0xbf for i in range(len(v) - 1, len(v) - 5, -1): pv = v[i] ^ (csum[i % 4]) ^ pv v[i] = pv v.append(0xbf) for i in range(len(v) - 1): v[i] ^= csum[i % 4] ^ v[i + 1] v.pop() v = bytes(v) if csum != _checksum(v): raise ValueError('c32d checksum wrong') o = cls(None, None, None, None) o.data = v[:-4] o.dflag = v[-4] o.dtype = v[-3] o.ns = struct.unpack('!H', v[-2:])[0] return o def encode(self, raw = False): try: v = self.data + struct.pack('!BBH', self.dflag, self.dtype, self.ns) except struct.error as e: raise ValueError(e) csum = bytearray(_checksum(v)) v = bytearray(v) pv = 0xbf for i in range(len(v) - 1, -1, -1): pv = v[i] ^ csum[i % 4] ^ pv if i < len(v) - 4: v[i] = pv v = csum + bytes(v) if raw: return v return c32.encode(v)[::-1]
decode = c32d.decode
def encode(*a, **ka): return c32d(*a, **ka).encode()
def test(): c32.test() for (p, s, raw) in ( ((b'', 0, 0, 0), '1111115Fd9acc', b'\xb5\xa5\x0c\xb9\x00\x00\x00\x00'), ((b'test', 4232, 142, 219), '955OGe8hOGc97hH4EJj1', b'?V\x1e\\d/\x1cq\xdb\x8e\x10\x88'), ((b'\xff' * 0x100, 0xffff, 0xff, 0xff), 'YYYYYYc327OYcC6F9Or6r14UYCJtc5UGt9n2YYbeH63jda5GnYjCEO3r8E53dGYFbchrG4c327OYcC6F9Or6r14UYCJtc5UGt9n2YYbeH63jda5GnYjCEO3r8E53dGYFbchrG4c327OYcC6F9Or6r14UYCJtc5UGt9n2YYbeH63jda5GnYjCEO3r8E53dGYFbchrG4c327OYcC6F9Or6r14UYCJtc5UGt9n2YYbeH63jda5GnYjCEO3r8E53dGYFbchrG4c327OYcC6F9Or6r14UYCJtc5UGt9n2YYbeH63jda5GnYjCEO3r8E53dGYFbchrG4c327OYcC6F9Or6r14UYCJtc5UGt9n2YYbeH63jda5GnYjCEO3r8E53dGYFbchrG4c327OYcC6F9Or6r14UYCJtc5UGb2cOdG3', b'\xb0\xce,*\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xc7\x88\xb9j\xbf\xf0\xc1\x12\xff\xff\xff\xff'), ): (kp, pp) = ({}, p) for i in range(2): o = c32d(*pp, **kp) assert o.data == p[0] assert o.ns == p[1] assert o.dtype == p[2] assert o.dflag == p[3] kp = { 'data': p[0], 'ns': p[1], 'dtype': p[2], 'dflag': p[3], } pp = () assert o.encode() == s assert o.encode(raw=True) == raw def ensureValueError(f): try: f() except ValueError: pass else: raise AssertionError('Invalid decode input did not throw a ValueError') ensureValueError(lambda: encode(b'', -1, 0, 0)) ensureValueError(lambda: encode(b'', 0x10000, 0, 0)) ensureValueError(lambda: encode(b'', 0, -1, 0)) ensureValueError(lambda: encode(b'', 0, 0x100, 0)) ensureValueError(lambda: encode(b'', 0, 0, -1)) ensureValueError(lambda: encode(b'', 0, 0, 0x100)) # Invalid c32d ensureValueError(lambda: decode('1111115Fd9adc')) ensureValueError(lambda: decode('11A1115Fd9acc')) # Invalid c32 ensureValueError(lambda: decode('111x115Fd9acc')) ensureValueError(lambda: decode('1111115Fd9acx'))
if __name__ == '__main__': test() print("Tests passed")
|
|
|
the real issue becomes powering them all. even with 12 port hubs, it's 35 of them. good luck finding a circuit in a home to handle that. Even if you could power all of them, note USB only supports up to 127 devices on a single host PC... and only 5 USB hubs chained - including the internal 2 hubs in your "12-port hub".
|
|
|
wait - so, if they'll run without the heatsinks, why did you make/order heatsinks that we now have to pay for?
You definitely want the heatsink. The Emeralds (without a heatsink) are pretty much too hot to unplug once they've been running for even a few minutes. I would be surprised if the USB connector got hot enough to damage some cheap USB hubs.
|
|
|
Yet Another cryptocoin that does not address the main problem of bitcoin: the recentralization via pools.
A lot of effort to discourage GPUs and ASICs, but pools are still an option.
Bad, bad, bad...
And how would you fix that? There is no way to prevent 3rd parties from pointing hashpower to one node and use that node as miner connected to network. Something similar to p2pool (but not exactly) could be integrated to Bitcoin in such a way that it makes centralized pooling infeasable.
|
|
|
No Mac binary releases?
This is particularly unfortunate to not see a Mac v0.7.3 backport because many have found the v0.8.x Mac binaries not-quite-ready-for-primetime and have downgraded to v0.7.2. Gavin does all the Mac stuff, and he's too busy to get involved in backports. Did you try 0.8.2rc1? If that doesn't work, I'd definitely open an issue (or follow up on an existing one) on GitHub... Yes, that should be fine. Do note, however, that 0.7.2 remains affected by two privacy vulnerabilities: CVE-2013-2272 and CVE-2013-2273
|
|
|
I was under the impression PPCoin's PoS was not really working yet, and that nobody else had done any development on it... Update after reading some code: - Nfactor is only used for memory allocation size - so it has no actual effect on the implementation; in other words, N is not dynamic
- The code is quite messy, and even something as simple as the memory allocator is broken (it pretty much ignores the size of the allocation request)
I think this one gets a "scamcoin" classification... Luke-Jr, interesting comment. I had a brief go at the code as well, but can't confirm your findings. Maybe you were a bit quick shouting "scamcoin", eh? - Yes, the scrypt codebase is ugly. #define's and #ifdefs everywhere. Is this a copy of the original scrypt?
- The scrypt romix code in scrypt-jane-romix-template.h (function called SCRYPT_ROMIX_FN) does use N (i.e. Nfactor) looping from 1 to N, in addition to increasing the mem size by N. I don't know enough about the underlying crypto, but I believe complexity scales at least by O(N2).
- The allocate and free methods are totally fine. You have tripped over an #ifdef:
#if defined(SCRYPT_TEST_SPEED) // jomay: I left out the test code - this is the one you've read. // It works fine in practice as well, but makes the scrypt() function non re-entrant. #else // jomay: here goes the real deal - fully functional, no mem leak, fine. static scrypt_aligned_alloc scrypt_alloc(uint64_t size) { static const size_t max_alloc = (size_t)-1; scrypt_aligned_alloc aa; size += (SCRYPT_BLOCK_BYTES - 1); if (size > max_alloc) scrypt_fatal_error("scrypt: not enough address space on this CPU to allocate required memory"); aa.mem = (uint8_t *)malloc((size_t)size); aa.ptr = (uint8_t *)(((size_t)aa.mem + (SCRYPT_BLOCK_BYTES - 1)) & ~(SCRYPT_BLOCK_BYTES - 1)); if (!aa.mem) scrypt_fatal_error("scrypt: out of memory"); return aa; }
static void scrypt_free(scrypt_aligned_alloc *aa) { free(aa->mem); } #endif
This isn't the code I saw (yacoin's github master branch). Where did it come from?
|
|
|
I was under the impression PPCoin's PoS was not really working yet, and that nobody else had done any development on it... Update after reading some code: - Nfactor is only used for memory allocation size - so it has no actual effect on the implementation; in other words, N is not dynamic
- The code is quite messy, and even something as simple as the memory allocator is broken (it pretty much ignores the size of the allocation request)
I think this one gets a "scamcoin" classification...
|
|
|
bfgminer had been running great for a week now, but I just went to check it and my pc had restarted. I suspect our cat stepped on the power button(don't know why hp put it on top).
Now when I try to start bfgminer in the terminal I get this : " error while loading shared libraries: libblkmaker_jansson-0.1.so.0: cannot open shared object file: No such file or directory" What is it? I'm still kind of a linux newbie.
How did you install it? Sounds like a file got deleted somehow...
|
|
|
The proposed proof-of-work algorithm doesn't sound at all like a good idea to me - I suspect it would prove to be even worse than Litecoin's scrypt.
Are there details on your proof-of-stake implementation?
|
|
|
I got an error: makeCoinbaseTxn ERROR Coinbaser failed! then i do some debug line 105 in eloipool.py raise an error nout = int(p.stdout.readline()) I guess CoinbaserCmd is invalid, then i run the command in terminal echo -e "1\\n$((%d / 100))\\n1579aXhdwvKZEMrAKoCZhzGuqMa8EonuXU" the result is: bash: %d / 100: syntax error: operand expected (error token is "%d / 100") any ideas? My guess would be a non-BASH default shell... I found the reason return My default shell is Bash,I use Python 3.3.1 on Ubuntu If your default shell was BASH, you wouldn't get that result.
|
|
|
I got an error: makeCoinbaseTxn ERROR Coinbaser failed! then i do some debug line 105 in eloipool.py raise an error nout = int(p.stdout.readline()) I guess CoinbaserCmd is invalid, then i run the command in terminal echo -e "1\\n$((%d / 100))\\n1579aXhdwvKZEMrAKoCZhzGuqMa8EonuXU" the result is: bash: %d / 100: syntax error: operand expected (error token is "%d / 100") any ideas? My guess would be a non-BASH default shell...
|
|
|
With the May 15 changes right around the corner, please help test some of the stable maintenance versions These are bugfix-only releases, including minimal compatibility updating for the May 15 changes.Please report bugs by replying to this forum thread. bitcoind and Bitcoin-Qt version 0.7.3 release candidate 3 (sigs) are now available for download:bitcoind and Bitcoin-Qt version 0.6.5 release candidate 3 (sigs) are now available for download:bitcoind and Bitcoin-Qt version 0.5.8 release candidate 3 (sigs) are now available for download:bitcoind version 0.4.9 release candidate 3 (sigs) is now available for download:- Please note: The wxBitcoin GUI client is no longer maintained nor supported; CVE-2012-4682 and CVE-2012-4683 are not fixed in 0.4.x since it does not have any anti-DoS system at all. If you want to be secure against this class of DoS attacks (network flooding of invalid data to verify), upgrade to a newer version!
- Linux: tar.gz
- Windows: installer | zip
- Source: tar.gz | git
See git for full changelog Backport end-of-life (EOL) schedule: - 0.4.x - EOL by 2013-11-21 (2 years after 0.5.0 released)
- 0.5.x - EOL by 2013-03-30 (1 year after 0.6.0 released)
- 0.6.0.x - EOL now: 0.6.0.x is no longer supported
- 0.6.x - EOL by 2013-11-21 (over 1 year after 0.7.0 released)
- 0.7.x - EOL by 2014-02-18 (1 year after 0.8.0 released)
- 0.8.x - Long-Term Support (LTS): 2-3 years after 0.9.0 released
These are not guarantees. If you need me to maintain any branch longer, please let me know ASAP.
|
|
|
Looks okay. Does it work?
|
|
|
You're missing the GotWorkURI stuff.
You saw README, right?
|
|
|
|