Bitcoin Forum
February 12, 2026, 07:21:08 PM *
News: Latest Bitcoin Core release: 30.2 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 »
1  Bitcoin / Bitcoin Discussion / Anybody else keep mementos? on: November 26, 2017, 05:39:44 PM


I have a few of my old mining stuff around as reminders of times I got burned or learned something, I have a Mt Gox yubikey, one of the little USB miners and I used to have a BFL single that got lost in the last move. Do you guys have anything similar?
2  Economy / Computer hardware / [WTS] XFX 7970 with installed waterblock on: March 31, 2014, 11:51:06 PM
Looking to sell it. $310.
3  Economy / Computer hardware / [WTS] R9 290X reference heatsink on: March 21, 2014, 06:04:45 PM
For sale, make an offer.
4  Economy / Computer hardware / [WTS] XFX 7970 with installed waterblock on: March 20, 2014, 07:54:16 AM
Looking to sell my xfx 7970 with waterblock. I'm east coast us. Escrow is fine. Cash would be better than coin, but whatever floats your boat.

This  model card
With this waterblock.

710 khs scrypt.
5  Economy / Computer hardware / [Price Check] R9 290X & 7970 on: January 24, 2014, 02:37:44 AM
I'm curious as to the current market value of my 290X and 7970. Both have waterblocks installed and run fine.
6  Economy / Computer hardware / [WTS] R9 290X Cooler on: January 24, 2014, 02:30:51 AM
Watercooled mine, looking to get whatever for the cooler. Anyone need a stock cooler? Maybe you burned out your fan already? It's from the Sapphire card, but it's reference. It should work on any model.
7  Economy / Speculation / Bitcoin at $1500 before christmas. on: December 07, 2013, 07:30:26 AM
Heard it here first.
8  Economy / Computer hardware / [wtb] Water cooling equipment on: December 06, 2013, 05:46:25 AM
I want to cool my rig with various fluids. Does anyone have some equipment for sale?
9  Other / CPU/GPU Bitcoin mining hardware / BFL FPGA Alternate uses on: December 04, 2013, 10:02:28 PM
Has anyone created bitstreams for alternate usages? Mining or not?
10  Economy / Computer hardware / [WTS] 1 Block Erupter on: December 04, 2013, 06:22:18 AM
What'll ya give me?
11  Economy / Computer hardware / [WTB] R9 290X, 290, 280x, 280, 7970 on: December 02, 2013, 08:53:36 PM
I'd like to buy one of these three, shipping inclusive to cont. US.
12  Alternate cryptocurrencies / Altcoin Discussion / Alts with other algo's on: November 30, 2013, 03:50:42 PM
What alts are out there that are using algorithms aside from SHA256 and Scrypt?
13  Other / Meta / Scammer Heroes on: November 30, 2013, 03:45:04 PM
Why us it that half the hero members from the last time I was active are now scammers? It seems like almost all of the really active, respected members have been written off as traitors.
14  Alternate cryptocurrencies / Altcoin Discussion / Balanced cryptocoin on: November 30, 2013, 02:14:14 AM
Interesting thought shared by a few forum members.

The problem:
Cryptocoin mining is nearly unfeasible for those with a low amount of buy in, or anyone who has less than 20 GHs. This is only going to get worse as more asicminers enter the field and companies like (hypothetically) BFL bring on large farms of ridiculous hashrates.

Why is this a problem?
The network is becoming more centralized all the time. As server farms become major forces in the mining community, we lose security. The network is most secure when everyone is solo mining at the same hash.

A potential solution:
A hash function that is somehow rate limited. Some sort of function that runs at the same rate no matter your hardware.
I have no idea how to implement this. It seems nearly impossible, and may very well be for both mathematical and practical reasons. I'd like to give it a try, though.

Anyone have ideas or comments?
15  Economy / Trading Discussion / CoinEx on: November 29, 2013, 08:38:21 PM
How has your experience been?
16  Economy / Computer hardware / [WTB] Jalapeno on: November 29, 2013, 04:53:40 PM
Are there any floating?
17  Economy / Computer hardware / [WTB] 0.4 BTC worth of hardware on: November 28, 2013, 04:18:32 PM
I have 0.4 to spend on hardware. What can I get?
Offers appreciated.
18  Economy / Computer hardware / [WTB] XFX 7970 on: November 27, 2013, 12:36:26 PM
I'm looking to add a second paired card, does anyone have one up for sale?
19  Economy / Computer hardware / [WTB] Block Erupters or Blades including broken on: November 25, 2013, 03:38:18 PM
I'd like to pick up a few for the novelty.
More interested in blades than Erupters.
I'm also interested in broken ones.
20  Bitcoin / Project Development / Rebuilding the wheel (Vanity mining) on: May 19, 2013, 04:07:08 AM
I'm making a Vanity address miner that generates compressed addresses, mostly because I'm bored, took an intro C++ course, and think cryptography is nifty. Feel free to call me an idiot, or encourage me. Tips and advice appreciated.

I'm using CryptoPP because VanityGen uses OpenSSL, and I wanted to make mine different. No particular reason other than that.

I'll post source code for interesting bits here, and give an idea of my progress.

Goals:
Create a working CPU miner
Create a working GPU miner
Implement getwork
Implement shares system
Huh
Profit

Progress to make:
Comparison
Modular add/multiply
Getwork
Shares/proof of work

Nifty codes:
Base58 to Hex, returns cryptopp Integer
Code:
Integer base58decode(string input)
{
    int parse;
    Integer key;
    for(int i = 0; i < input.length(); i++)
    {
        parse = 0;
        while(true)
        {
            if(input[i] == b58[parse])
            {
                key = (key + parse)*58;
                break;
            }
            else
                parse++;
        }
    }
    key = key/58;
    return key;
}
Integer and leading zeroes to Base58
Code:
string base58encode(Integer plain, int zeros)
{
    string adr;
    Integer remainder, temp;
    while(plain != 0)
    {
        plain.Divide(remainder, temp, plain, 58);
        plain = temp;
        adr = b58[remainder.ConvertToLong()] + adr;
    }
    while(zeros)
    {
        adr = "1" + adr;
        zeros--;
    }
    return adr;
}

The whole program, messy as it is.
Code:
#include <iostream>
#include <iomanip>

// CryptoPP includes
#include <cryptopp\cryptlib.h>
#include <cryptopp\filters.h>
#include <cryptopp\eccrypto.h>
#include <cryptopp\hex.h>
#include <cryptopp\osrng.h>
#include <cryptopp\sha.h>
#include <cryptopp\ripemd.h>
#include <cryptopp\integer.h>
#include <cryptopp\oids.h>

using namespace std;
using namespace CryptoPP;

string b58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
byte odd[] = {0x03};
byte eve[] = {0x02};
AutoSeededRandomPool prng;
ECDSA<ECP, SHA256>::PrivateKey Priv;
ECDSA<ECP, SHA256>::PublicKey Pub;

bool loop(byte* goal);
string digest2hex(byte* digest, int len);
byte* str2hexarr(char* in, int len);
byte* step(string raw);
string base58encode(Integer plain, int zeros);
Integer base58decode(string input);
string process(string raw);

int
main()
{
    Integer loops;
    byte goal[] = {0x01};
    while(loop(goal) == false && loops < 800)
    {
        loops++;
        cout << "\r" << std::dec << loops;
    }

}

bool
loop(byte* goal)
{
    string temp;
    byte x[32];
    Priv.Initialize( prng, CryptoPP::ASN1::secp256k1());
    Priv.MakePublicKey(Pub);
    SHA256 crunchy;
    if(Pub.GetPublicElement().y.IsEven() == 0)
        crunchy.Update(odd, 1);
    else
        crunchy.Update(eve, 1);
    Pub.GetPublicElement().x.Encode(x, 32);
    crunchy.Update(x,32);
    byte digestA[32];
    crunchy.Final(digestA);
    byte digestB[20];
    RIPEMD160().CalculateDigest(digestB, digestA, 32);
    if(digestB[0] == goal[0])
    {
    cout << endl << std::hex << Priv.GetPrivateExponent();
    return true;
    }
    else
        return false;
}

string
digest2hex(byte* digest, int len)
{
    string output;
    HexEncoder encoder;
    StringSink *SS = new StringSink(output);
    encoder.Attach(SS);
    encoder.Put(digest,len);
    encoder.MessageEnd();
    return output;
}

byte*
str2hexarr(char* in, int len)
{
    for(int i = 0; in[i]; i++)
        in[i] = toupper(in[i]);
    byte part2[len/2];
    unsigned int i, t, hn, ln;
    for (t = 0,i = 0; i < len; i+=2,++t)
    {
        hn = in[i] > '9' ? in[i] - 'A' + 10 : in[i] - '0';
        ln = in[i+1] > '9' ? in[i+1] - 'A' + 10 : in[i+1] - '0';
        part2[t] = (hn << 4 ) | ln;
    }
    return part2;
}

byte*
step(string raw)
{
    SHA256 hash;
    RIPEMD160 more_hash;
    byte digest[SHA256::DIGESTSIZE];
    byte digest2[RIPEMD160::DIGESTSIZE];
    hash.CalculateDigest(digest,(const byte *)raw.c_str(),raw.size());
    more_hash.CalculateDigest(digest2, digest, SHA256::DIGESTSIZE);
    Integer d = Integer(digest2, RIPEMD160::DIGESTSIZE+4);
    cout << endl << std::hex << d;
    cout << endl << base58encode(d, 0);
    return digest2;
}

string
base58encode(Integer plain, int zeros)
{
    string adr;
    Integer remainder, temp;
    while(plain != 0)
    {
        plain.Divide(remainder, temp, plain, 58);
        plain = temp;
        adr = b58[remainder.ConvertToLong()] + adr;
    }
    while(zeros)
    {
        adr = "1" + adr;
        zeros--;
    }
    return adr;
}

Integer
base58decode(string input)
{
    int parse;
    Integer key;
    for(int i = 0; i < input.length(); i++)
    {
        parse = 0;
        while(true)
        {
            if(input[i] == b58[parse])
            {
                key = (key + parse)*58;
                break;
            }
            else
                parse++;
        }
    }
    key = key/58;
    return key;
}

string
process(string raw)
{
    SHA256 hash;
    RIPEMD160 more_hash;
    byte digest[SHA256::DIGESTSIZE];
    byte digest2[RIPEMD160::DIGESTSIZE];
    byte digest2_mod[RIPEMD160::DIGESTSIZE+5];
    hash.CalculateDigest(digest,(const byte *)raw.c_str(),raw.size());
    more_hash.CalculateDigest(digest2, digest, SHA256::DIGESTSIZE);
    digest2_mod[0]=0x00;
    for(int i = 0; i<= RIPEMD160::DIGESTSIZE; i++)
        digest2_mod[i+1] = digest2[i];
    hash.CalculateDigest(digest,digest2_mod,RIPEMD160::DIGESTSIZE+1);
    hash.CalculateDigest(digest,digest,SHA256::DIGESTSIZE);
    for(int i = 0; i< 4; i++)
        digest2_mod[i+RIPEMD160::DIGESTSIZE+1] = digest[i];
    Integer out = Integer(digest2_mod, RIPEMD160::DIGESTSIZE+5);
    int lead;
    for(lead = 0; digest2_mod[lead] == 0; lead++);
    string ret = base58encode(out, lead);
    return ret;
}

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