Bitcoin Forum
May 25, 2024, 01:07:38 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 3 4 5 6 »
1  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [XPM] [ANN] Primecoin Release - First Scientific Computing Cryptocurrency on: August 27, 2015, 11:11:13 AM
Hi,

Attached is a functional single threaded python miner based on the bitcoin miner.  I single threaded it and replaced the inner guts with primecoin's PoW.  It was done so I could get my head around the PoW as the white paper wasn't helping much.  It's mined some coins on testnet, but given it's performance I wouldn't even think of running in on prodnet!

I've left the config file up to the reader.  Also it doesn't use the fermat remainder as a test; it just throws the block up and lets the wallet validate (so you'll get a lot of failures with a testnet difficulty of 4.98).

Code:
#!/usr/bin/python
#
# Copyright (c) 2011 The Bitcoin developers
# Distributed under the MIT/X11 software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#

import pdb
import time
import json
import pprint
import hashlib
import struct
import re
import base64
import httplib
import sys
import gmpy2
from gmpy2 import mpz

ERR_SLEEP = 15
MAX_NONCE = 0x000effff

settings = {}
pp = pprint.PrettyPrinter(indent=4)

class BitcoinRPC:
        OBJID = 1

        def __init__(self, host, port, username, password):
                authpair = "%s:%s" % (username, password)
                self.authhdr = "Basic %s" % (base64.b64encode(authpair))
                self.conn = httplib.HTTPConnection(host, port, False, 30)
        def rpc(self, method, params=None):
                self.OBJID += 1
                obj = { 'version' : '1.1',
                        'method' : method,
                        'id' : self.OBJID }
                if params is None:
                        obj['params'] = []
                else:
                        obj['params'] = params
                self.conn.request('POST', '/', json.dumps(obj),
                        { 'Authorization' : self.authhdr,
                          'Content-type' : 'application/json' })

                resp = self.conn.getresponse()
                if resp is None:
                        print "JSON-RPC: no response"
                        return None

                body = resp.read()
                resp_obj = json.loads(body)
                if resp_obj is None:
                        print "JSON-RPC: cannot JSON-decode body"
                        return None
                if 'error' in resp_obj and resp_obj['error'] != None:
                        return resp_obj['error']
                if 'result' not in resp_obj:
                        print "JSON-RPC: no result in object"
                        return None

                return resp_obj['result']
        def getblockcount(self):
                return self.rpc('getblockcount')
        def getwork(self, data=None):
                return self.rpc('getwork', data)

def uint32(x):
        return x & 0xffffffffL

def bytereverse(x):
        return uint32(( ((x) << 24) | (((x) << 8) & 0x00ff0000) |
                        (((x) >> 8) & 0x0000ff00) | ((x) >> 24) ))

def bufreverse(in_buf):
        out_words = []
        for i in range(0, len(in_buf), 4):
                word = struct.unpack('@I', in_buf[i:i+4])[0]
                out_words.append(struct.pack('@I', bytereverse(word)))
        return ''.join(out_words)

def wordreverse(in_buf):
        out_words = []
        for i in range(0, len(in_buf), 4):
                out_words.append(in_buf[i:i+4])
        out_words.reverse()
        return ''.join(out_words)

class Miner:
        def __init__(self, id):
                self.id = id
                self.max_nonce = MAX_NONCE

        def ch1_test(self,origin,l):
                t1 = gmpy2.sub(origin,1)

                while l:
                        if (gmpy2.is_prime(t1)):
                                t2 = gmpy2.add(t1,t1)
                                t1 = gmpy2.add(t2,1)
                        else:
                                break
                        l = l - 1

                # l = 0 found a complete chain, l > 0 short chain
                if(l):
                        return 0
                else:
                        return 1

        def ch2_test(self,origin,l):
                t1 = gmpy2.add(origin,1)

                while l:
                        if (gmpy2.is_prime(t1)):
                                t2 = gmpy2.add(t1,t1)
                                t1 = gmpy2.sub(t2,1)
                        else:
                                break
                        l = l - 1

                # l = 0 found a complete chain, l > 0 short chain
                if(l):
                        return 0
                else:
                        return 1

        def work(self, datastr, targetstr):
                # decode work data hex string to binary
                static_data = datastr.decode('hex')

                # before we reverse we need to extract the target
                # target is encoded in the datastr 72-75 (nBits)
                target = struct.unpack(">I",static_data[72:76])[0]
                print "target: ", target/16777216.0
                tar_len = target/16777216

                # now flip data
                static_data = bufreverse(static_data)

                # the first 76b of 80b do not change
                blk_hdr = static_data[:76]

                # pre-hash first 76b of block header
                static_hash = hashlib.sha256()
                static_hash.update(blk_hdr)

                for nonce in xrange(self.max_nonce):
                        # encode 32-bit nonce value
                        nonce_bin = struct.pack("<I", nonce)

                        # hash final 4b, the nonce value
                        hash1_o = static_hash.copy()
                        hash1_o.update(nonce_bin)
                        hash1 = hash1_o.digest()

                        # sha256 hash of sha256 hash
                        hash_o = hashlib.sha256()
                        hash_o.update(hash1)
                        hash = hash_o.digest()

                        # convert binary hash to 256-bit Python long
                        hash = bufreverse(hash)
                        hash = wordreverse(hash)

                        hash_str = hash.encode('hex')
                        l = long(hash_str, 16)
                        mpz_l = mpz(l)

                        # high bit set?
                        if l < 1<<255:
                                continue

                        # Origin cannot be a prime, perform a quick odd/even test
                        if l & 0x01:
                                continue

                        # Chain length 4 needs mod 3 and mod 5 need to be zero. So mod 15 == 0
                        if((l % 15)):
                                continue

                        # do fermat (and trial division) test on chain, must not be prime!
                        if (gmpy2.is_prime(mpz_l)):
                                continue

                        #pdb.set_trace()

                        # Multiply by a number, pick one...
                        #origin = gmpy2.mul(mpz_l,510510)
                        #origin = gmpy2.mul(mpz_l,2310)
                        origin = gmpy2.mul(mpz_l,1)

                        # chain length 4. mod 7 ;0 = bi; 1,2,4 = neg, 3,5,6 = pos
                        m7 = l % 7

                        if(m7 == 0):
                                # test both chains
                                if (self.ch1_test(origin,tar_len) or self.ch2_test(origin,tar_len)):
                                        print "origin passed +-@%d" % (nonce,)

                                        # just submit
                                        print time.asctime(), "PROOF-OF-WORK found: %064x" % (l,)
                                        return (nonce + 1, nonce_bin)
                        elif((m7 == 1) or (m7 == 2) or (m7 == 4)):
                                # negative
                                if (self.ch2_test(origin,tar_len)):
                                        print "origin passed -@%d" % (nonce,)

                                        # just submit
                                        print time.asctime(), "PROOF-OF-WORK found: %064x" % (l,)
                                        return (nonce + 1, nonce_bin)
                        else:
                                # positive
                                if (self.ch1_test(origin,tar_len)):
                                        print "origin passed +@%d" % (nonce,)

                                        # just submit
                                        print time.asctime(), "PROOF-OF-WORK found: %064x" % (l,)
                                        return (nonce + 1, nonce_bin)

                        # loop for a new nonce
                        pass

                return (nonce + 1, None)

        def submit_work(self, rpc, original_data, nonce_bin):
                nonce_bin = bufreverse(nonce_bin)
                nonce = nonce_bin.encode('hex')
                # 510510
                #solution = original_data[:152] + nonce + "07CA2E03" + original_data[168:256]
                # 2310
                #solution = original_data[:152] + nonce + "00090602" + original_data[168:256]
                # 1
                solution = original_data[:152] + nonce + "00000101" + original_data[168:256]

                param_arr = [ solution ]
                result = rpc.getwork(param_arr)
                print time.asctime(), "--> Upstream RPC result:", result

        def iterate(self, rpc):
                work = rpc.getwork()
                if work is None:
                        time.sleep(ERR_SLEEP)
                        return
                if 'data' not in work or 'target' not in work:
                        time.sleep(ERR_SLEEP)
                        return

                time_start = time.time()

                (hashes_done, nonce_bin) = self.work(work['data'],
                                                     work['target'])

                time_end = time.time()
                time_diff = time_end - time_start

                self.max_nonce = long(
                        (hashes_done * settings['scantime']) / time_diff)
                if self.max_nonce > 0xffff0000L:
                        self.max_nonce = 0xffff0000L

                if settings['hashmeter']:
                        print "HashMeter(%d): %d hashes, %.2f Khash/sec" % (
                              self.id, hashes_done,
                              (hashes_done / 1000.0) / time_diff)

                if nonce_bin is not None:
                        self.submit_work(rpc, work['data'], nonce_bin)

        def loop(self):
                rpc = BitcoinRPC(settings['host'], settings['port'],
                                 settings['rpcuser'], settings['rpcpass'])
                if rpc is None:
                        return

                while True:
                        self.iterate(rpc)

def miner_thread(id):
        miner = Miner(id)
        miner.loop()

if __name__ == '__main__':
        if len(sys.argv) != 2:
                print "Usage: pyminer.py CONFIG-FILE"
                sys.exit(1)

        f = open(sys.argv[1])
        for line in f:
                # skip comment lines
                m = re.search('^\s*#', line)
                if m:
                        continue

                # parse key=value lines
                m = re.search('^(\w+)\s*=\s*(\S.*)$', line)
                if m is None:
                        continue
                settings[m.group(1)] = m.group(2)
        f.close()

        if 'host' not in settings:
                settings['host'] = '127.0.0.1'
        if 'port' not in settings:
                settings['port'] = 9914
        if 'threads' not in settings:
                settings['threads'] = 1
        if 'hashmeter' not in settings:
                settings['hashmeter'] = 0
        if 'scantime' not in settings:
                settings['scantime'] = 30L
        if 'rpcuser' not in settings or 'rpcpass' not in settings:
                print "Missing username and/or password in cfg file"
                sys.exit(1)

        settings['port'] = int(settings['port'])
        settings['threads'] = int(settings['threads'])
        settings['hashmeter'] = int(settings['hashmeter'])
        settings['scantime'] = long(settings['scantime'])

        print time.asctime(), "Miner Starts - %s:%s" % (settings['host'], settings['port'])

        # Single thread as the python debugger is even yuckier if you use them
        miner_thread(1)

        print time.asctime(), "Miner Stops - %s:%s" % (settings['host'], settings['port'])

Regards,

--
bsunau7
2  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: December 12, 2014, 12:17:21 PM
i get the following error

waiting for server...
"curl_easy_perform() failed : Server returned nothing (no headers, no data)

Authentication failure?

--
bsunau7
3  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 25, 2014, 05:58:45 AM
hi i got this error when try to mining, like this picture :



and i've follow all all step from here
Quote

specification :
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS"



Which version of mpfr has been installed?  It looks like MPFR_RNDD came into existence MPFR 3.0 and ubuntu 10.04 ships with mpfr 2.4.2

Considered upgrading ubuntu so something newer?  Otherwise compile your own libraries from source.

Regards,

--
bsunau7
4  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 25, 2014, 02:29:15 AM
Random luck, I have an I3 that found more blocks over the weekend than my 4xI7s combined. Haha.

Found 3 blocks on friday with i7. 0 blocks for 3 days now..  Cry

edit: Still no block... Diff is toooooooooooo high...?...

Did anybody find the block with 700,000pps or less today?

And this is why I didn't feel a hard fork was in the best interest of this coin (and I did vote for status quo).  Difficulty and rewards are totally different for this coin than most (all?) other coins.

Regards,

--
bsunau7
5  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 17, 2014, 12:53:31 PM
Could you explain:   "Cap: about 10 - 30 million GAP"

That's a wide range. What determines the Cap?

Is that cap hard coded into the coin (like Bitcoin's 21 million), or is this figure of "10-30 million" an estimate?  If an estimate, how are you calculating it?

Could it go over 30 million?

Thanks

Yes.  Blocks have variable rewards based on difficulty, so hard to tell exactly what the final amount of coins will be.

Regards,

--
bsunau7
6  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 15, 2014, 10:05:22 AM
Not sure if anyone else thinks this is a good idea, but can we replace those 10 & 15 gap metrics with something else?

I am using primes/s and candidates/s eg:

Code:
[2014-11-15 10:59:11] pps: 14669 / 14287  candidates/s 63998895
[2014-11-15 10:59:41] pps: 13121 / 14136  candidates/s 63321793
[2014-11-15 11:00:11] pps: 13572 / 14100  candidates/s 63159069

This is just the number of "numbers" scanned, in effect how fast numbers are skipped/tested.  I just accumulate sievesize for every call of run_sieve.

It is the only way I can see of measuring performance across different miners and different parameters (tuning parameters is why I added it to mine).

Regards,

--
bsunau7
7  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 14, 2014, 11:29:56 PM
Guys, i am still trying to understand all about the algo of this coin.

I do understand how the difficulty works : when the difficulty increase, gap and prime size increase too.

But how are calculated the prime we have to find ?
Are they random ?

Starting point is derived from the block you are mining so effectively the starting point is random.  The "absolute end point" is defined by the "shift" which you get to pick.  People only mine part of the "space" which is defined by the sieve size.

Difficulty is logarithmic, it is on the gapcoin website, so a difficulty or 23 is significantly harder than one of 22.

Summary; random range of numbers are scanned looking for a run (currently a few thousand) of composite numbers.

Regards,

--
bsunau7
8  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 14, 2014, 05:48:45 AM
There are more optimizations which can be leveraged into the miner making the existence of an even better miner more than plausible.

If you don't believe them, so be it, but no need to be nasty about it.

Regards,

--
bsunau7
9  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 13, 2014, 10:36:14 AM
I like to announce a modified version of the CPU-Miner. It's on average about 1000% faster. Yes, no typo, +1000%.

The trick is to only search for gaps that meet the criteria (pool = is a share, solo = is a block) and quickly discard others. 10g/h and 15g/h are not calculated anymore.


BUGGER!

That was the main trick I was using on my CPU miner!  Guess my run of "cheap" coins is over.

Now you know why I was asking about how many coins the GPU miner was finding, I needed a metric to gauge relative performance.

Good luck, I'll mine for a day or two and see what a difficulty > 23 does to my take home.

Regards,

--
bsunau7
10  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 11, 2014, 02:57:00 AM

An other option would be to reduce the the reward every block,
so that it effectively halves every half year.

What do you think about that?

I'd vote for keeping it the same; no change.

The difficulty/reward curve is already negative, any devaluation will be short term at best and kill the coin at worst (i.e. removing any economic incentive to mine).

Regards,

--
bsunau7
11  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][RIC] Riecoin, constellations POW *CPU-ONLY* HARD FORK: UPDATE to v0.10.2 on: November 10, 2014, 09:36:39 AM

thier work has accomplished zero , nothing,  


As a strategy to increase his profile it isn't that bad of a strategy and might be working.  I recall him being quoted in regards to one of the recent wallet/exchange failures.

--
bsunau7
12  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 08, 2014, 09:54:52 PM
I was CPU mining , but when GPU "arrived" I stoped ...

I didn't stop, my rate of finding blocks hasn't changed in the last 24hrs and I am still profitable (even with the price drop).

I would be very interested in how many coins a solo GPU miner is finding per day; pps numbers are difficult to use when a non-standard sieve is being used.

Regards,

--
bsunau7
13  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 08, 2014, 09:34:20 AM
Hi Guys,

Here is a little fix which increased my block count (got your attention)?

Added TCP keep alives with a sub 5 minute period to the wallet.  Three lines of code in net.cpp and netbase.cpp and a tweak of the Linux kernel.

net.cpp diff:

Code:
--- net.cpp_orig        2014-11-07 19:38:26.941369345 +0100
+++ net.cpp     2014-11-07 19:42:11.077371850 +0100
@@ -1594,6 +1594,7 @@
     // Different way of disabling SIGPIPE on BSD
     setsockopt(hListenSocket, SOL_SOCKET, SO_NOSIGPIPE, (void*)&nOne, sizeof(int));
 #endif
+    setsockopt(hListenSocket, SOL_SOCKET, SO_KEEPALIVE, (void*)&nOne, sizeof(int));

 #ifndef WIN32
     // Allow binding if the port is still in TIME_WAIT state after


netbase.cp diff:

Code:
--- netbase.cpp_orig    2014-11-07 19:38:21.365369283 +0100
+++ netbase.cpp 2014-11-07 19:41:02.549371084 +0100
@@ -329,6 +329,8 @@
     int set = 1;
     setsockopt(hSocket, SOL_SOCKET, SO_NOSIGPIPE, (void*)&set, sizeof(int));
 #endif
+    int set = 1;
+    setsockopt(hSocket, SOL_SOCKET, SO_KEEPALIVE, (void*)&set, sizeof(int));

 #ifdef WIN32
     u_long fNonblock = 1;

Add into /etc/sysctl.conf

Code:
net.ipv4.tcp_keepalive_time = 240
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 9

Then "sysctl -p /etc/sysctl.conf" to make it take effect.

I went from spending half my time in 45 minute limbo land mining dead blocks due to the wallet hanging to no issues in the last 24 hours (no wasted mining).

Just quick and dirty hack (this is code for "It could have been done in a nicer way") which seems to have sorted out a big source pain for my little 4-core mining rig.

Oh, this might also address stratum mining issues this coin seems to have.  Monotonic coins don't go 15+ minutes without a transactions (i.e network traffic) so they would not see this issue.

Regards,

--
bsunau7
14  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 07, 2014, 11:06:24 PM

@bsunau7

Thanks for the info and I will implement a small sieve for validation and use a single exponentiation test at each end point; it should be at least 100x faster and less than 1/(2128) probability of it being a larger gap.

There was talk on GMP mailing lists about speeding up gmp_nextprime in a very similar manner, sieve the start/end gap before running expensive MR tests.    As the gap has been pre-sieved you might just be able to MR test the non-composite in the mining sieve and get the same result.

I personally didn't bother with the PoW validation code as for larger gaps it just isn't called enough to matter.

Also you can tweak the pprocessor->process() to terminate the sieve early which will cure the stales and get you to the next "block" a few seconds faster at the risk of having a slightly wrong difficulty (in effect a non issue).

PS.  Just pushed testnet to >8 might slow down your stale shares some (I am only getting only 75-90% stale at this difficulty).

Regards,

--
bsunau7
15  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine on: November 07, 2014, 09:56:24 PM
@j0nn9

One less item on my to-do list for this weekend now that you've released a GPU based miner.  Grin

Sorry if I missed something, but how do you configure the miner to run on testnet? I received too many stale submissions followed by the miner hanging. Please see the log file below:

CPU: AMD FX-8350
GPU: AMD R9 280X

./gapminer -o 10.0.0.2 -p 9876 -u u_rpcuser_u -x p_rpcpass_p -t 8 -f 23 -i 800000 -s 8388608 -g -d 0
[2014-11-07 15:25:05] Found platform[0] name = NVIDIA CUDA
[2014-11-07 15:25:05] Found platform[1] name = AMD Accelerated Parallel Processing
[2014-11-07 15:25:05] Found 1 device(s)
[2014-11-07 15:25:05] Compiling ...
[2014-11-07 15:25:05] Source: 205055 bytes
[2014-11-07 15:25:08] Compiled kernel binary size = 903840 bytes
[2014-11-07 15:25:08] Loaded kernel binary size = 903840 bytes
[2014-11-07 15:25:08] Using GPU 0 [Tahiti]: which has 32 CUs
[2014-11-07 15:25:09] Got new target: 1.0000000 @ 1.0000000
[2014-11-07 15:25:15] Found Share: 2.4725781  =>  accepted
[2014-11-07 15:25:15] Found Share: 1.3788212  =>  stale!
[2014-11-07 15:25:15] Found Share: 1.4127911  =>  stale!
[2014-11-07 15:25:15] Found Share: 1.2721381  =>  stale!
[2014-11-07 15:25:16] Found Share: 1.4317729  =>  stale!
[2014-11-07 15:25:16] Found Share: 3.6779116  =>  stale!
[2014-11-07 15:25:16] Found Share: 1.4460171  =>  stale!
[2014-11-07 15:25:17] Found Share: 1.2714187  =>  stale!
[2014-11-07 15:25:17] Found Share: 1.4480290  =>  stale!
[2014-11-07 15:25:17] Found Share: 2.7009248  =>  stale!
[2014-11-07 15:25:17] Found Share: 2.0624349  =>  stale!
[2014-11-07 15:25:18] Found Share: 7.0916937  =>  stale!
[2014-11-07 15:25:18] Found Share: 2.2394908  =>  stale!
[2014-11-07 15:25:18] Found Share: 1.8181628  =>  stale!
[2014-11-07 15:25:19] Found Share: 2.4725407  =>  stale!
[2014-11-07 15:25:19] Found Share: 1.2781374  =>  stale!
[2014-11-07 15:25:19] Found Share: 1.5778022  =>  stale!
[2014-11-07 15:25:19] Got new target: 1.0000000 @ 1.0000000
[2014-11-07 15:26:13] shutdown..
[2014-11-07 15:26:19] shutdown..
[2014-11-07 15:26:20] I'm on it, just wait! (press again to kill)


This seems to be normal for an optimized miner.

The miner does not stop mining the sieve until the original one is verified by a slow  mpz_nextprime() call.  When your miner is significantly faster than the PoW function you tend to find lots of shares before the PoW can stop the sieve from mining.

Regards,

--
bsunau7
16  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU only - Zero Premine on: November 07, 2014, 06:28:21 AM

I will merge nonce-pools stratum changes, and probably fix some bugs
at the weekend, and then create some binaries within the next week.

Tell me where and gpu miner himself with the exe file?

You either:

a) wait a week
b) compile it yourself.

Regards,

--
bsunau7
17  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][RIC] Riecoin, constellations POW *CPU-ONLY* HARD FORK: UPDATE to v0.10.2 on: November 06, 2014, 09:52:42 PM

Yes, the superblocks will have higher difficulty and the record holder would have the highest, however if more than one of them share the same top difficulty you'll have to decide by comparing the value of the hash of the block's header (in the bit order that is used to generate the base prime), or just compare the base prime for those.

Hi gatra, do we have to roll the timestamp as frequently as before with the new super  block stratergy?

Hi!
Yes: maybe less frequently because larger numbers mean that looking at all the nonce space may take a little longer, but most likely the difference will be too small to be noticed.

One of the things I noticed with gapcoin is that the time between blocks isn't monotonic (regular).  This seems to cause significant issues (at least for me) with the wallet as network elements (NAT) drop connection state without the end nodes knowing, so you get 45 minute "hangs" while you re-transmit packets to "dead" peers.

I hope that the "slow block" which a super block will generate doesn't have a de-stabilizing effect on the network.

Regards,

--
bsunau7
18  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU only - Zero Premine on: November 06, 2014, 01:22:53 PM
Anyone else been keeping an eye on testnet?

Difficulty is rising pretty fast, which means some serious mining from a very small base is happening.

Regards,

--
bsunau7

I see a difficulty below 17. Thats <100k pps total.

Let me show you how to optimize the miner:


Thanks to riecoin my gmp is already custom compiled and tuned.  I only mentioned testnet as the diffidently was high and was increasing at a steady rate.

Interesting that you get some performance out of SIMD with the code as is.  One of the first things I did was to compile with "-ftree-vectorize -mavx2 -ftree-vectorizer-verbose=5" to see what auto-vectorising found.  It didn't find much (any?) to vectorise as most of the size of the loops aren't know at compile time (there are trick you can use however) or a non-uniform step being used.

Regards,

PS.  The fact that GCC couldn't vectorise what should be very conducive to vectorising is a good avenue to work on for speed-ups.

--
bsunau7
19  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU only - Zero Premine on: November 06, 2014, 02:18:36 AM
Anyone else been keeping an eye on testnet?

Difficulty is rising pretty fast, which means some serious mining from a very small base is happening.

Regards,

--
bsunau7
20  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU only - Zero Premine on: November 04, 2014, 01:13:23 PM
Still no one wants to sell me 10k GAP for 20k sat instead of dumping on the exchange ? That's weird.

No one is taking you for serious it seems, help other miners out, place the order on polo.

I believe the offer is to flush out anyone with high performance miner (notice I didn't mention general purpose stream processors).

--
bsunau7
Pages: [1] 2 3 4 5 6 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!