Stack Exchange Network

Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange

Hot answers tagged

11

Alright, I finally managed to fix my bugs and get a full roundtrip. Here is an example for a full communication with a Pool. I don't explain everything in detail as the API description can be found elsewhere. a) Suscription {"id": 1, "method": "mining.subscribe", "params": []} {"error": null, "id": 1, "result": [["mining.notify", "...


9

Stratum: the server gives the client templates that the client can use to generate its own work. Only the block header and first transaction (generation transaction) are included. Stratum uses the least bandwidth of all the protocols. Stratum also makes it very fast and efficient to switch to new work data when there is a block change, which can help keep ...


8

Stratum is an over-the-wire protocol that solves the headaches created by HTTP when used for mining. To understand why Stratum is necessary, you have realize the fact that HTTP is designed for serving web applications and web pages, it's main job is to return files and not to coordinate peers. But miners need to do more than receive information, they also ...


6

getwork is for all intents, completely deprecated due to it's inefficiency. At this point a single ASIC device can completely swamp a bitcoind with requests as they're able to exhaust the 32bit nonce in a fraction of a second. The situation is severe enough that pools like BTC Guild have extraordinary large (6%+) fees on clients using getwork in order to get ...


6

When there were no pools, all of the first mining clients interfaced directly with Bitcoin. They connected to Bitcoin's JSON-RPC interface and used the getwork RPC method to get the required work. Getting work from a pool is the same as getting work from Bitcoin. The client connects to the pool over HTTP, often using the same HTTP authentication that Bitcoin'...


4

So, while Mac includes python it does not include gcc by default, even once you've installed Xcode 4.2 or later. For now, grab that, go to preferences, downloads and get the command line tools. Once a version of Xcode higher than 4.6 is out you'll have to find a new way to install gcc on your mac, as gcc will no longer be included, but I guess that's a ...


4

The short answer is cloud-hashing is not profitable as you might expect. You can still generate profit but its value is minuscule compared to the investment. To concretely answer this question, I'm going to share with you a model I developed to calculate profit from the cloud-hasing service (bit-miner.com). Profit Model Google Sheets Link if you want to ...


4

I've read simplistic descriptions of mining as simply incrementing the nonce until a solution is found, but I've also read much more detailed explanations which would imply much more is involved. Even if only the nonce is changed in the input, the pool would still need to assign each miner a unique nonce to try after each submission, no? Miners do change ...


3

I use this analogy for cloud mining: If you had a money printing machine would you rent it out or use it yourself? Cloud mining -no matter how you consider it- makes no sense financially. If the company is making a loss, they'll be out of business, if they're making a profit, why aren't they making that profit directly?


3

You are using an ancient version of bfgminer CPU mining was disabled by default even in bfgminer 3.10.0, your gpu doesn't seem to get detected You're about 4 years late for CPU mining and 3 years late for GPU mining: Even if you get bfgminer to run, your PC will not be powerful enough to even find shares that would be accepted by a pool. See e.g. Can I do ...


3

Now, if I discover a block, won't both my localhost GBT "pool" and the remote pool claim it as theirs? No. That isn't possible. Changing the coinbase transaction (what controls where a block reward goes) invalidates the block. All that happens is that the block propagates slightly faster. Cheating on pooled mining This appears to be known as the "...


3

Most miners now use Stratum, but the old getwork protocol isn't completely gone yet. The URL is the root path (/) of the server usually at port 8332, for instance http://mint.bitminter.com:8332. You can see what the data looks like here: How can I code a Bitcoin JSON-RPC "getwork" request in Java? No, this is JSON-RPC. It's an RPC-style interface, ...


3

Electrum has a list of default servers which you can find here: https://github.com/spesmilo/electrum/blob/afa1a4d22a31d23d088c6670e1588eed32f7114d/lib/network.py#L57. However there is no list of all Electrum servers just like there is no list of all Bitcoin nodes. This is because Electrum servers are distributed like Bitcoin nodes and anyone can run one. ...


3

No, all traffic is plaintext. The connections are hijackable and attacks against this have occurred in the past where ISPs redirected hashrate to themselves.


2

The problem was with windows firewall. Turned it off, tried again, it worked. Turned it back on and set the appropriate windows firewall exceptions for stratum_proxy and cudaminer and it worked. I had this problem suddenly appear again this morning. Turning off firewall made no difference. I changed cudaminer to point to my machine ip address instead of 127....


2

I'm using the HTTP post version of the Stratum protocol and content type "application/stratum". The HTTP version of stratum isn't supported in the later server versions, it's unlikely you'll be able to use them in any sort of capacity in the future. When connecting to the TCP+SSL version of electrum-server your command works perfectly, though the block ...


2

You might be connected to both pools, but only working for one: When you mine, the block you are trying to find contains a recipient address for the block reward. Therefore, a block can only contribute to one mining pool (i.e. the one that would be receiving the reward, if the block was successful). Whenever you find a block, the #allblocks mentioned in the ...


2

The profit is the lesson: you got scammed.


2

Yes Monero mining pools generally use the Stratum protocol for communication between the pool and the miners. However a modified version of the Stratum protocol is used. I've yet find proper documentation like the one you've linked, so your best bet is to look through the source code for the exact definition. Also there is a separate Stackexchange for the ...


2

NOMP actually implements MPOS compatibility mode, so you can reference the data format it writes to MySQL: mposCompatibility.js. For example: Storing shares: INSERT INTO `shares` SET time = NOW(), rem_host = ?, username = ?, our_result = ?, upstream_result = ?, difficulty = ?, reason = ?, solution = ? Updating Miner Difficulty: UPDATE `pool_worker` SET `...


1

If anyone runs into this problem then check your coin daemon settings. I got it because my client didn't find any nodes to connect to. I found a list of nodes and added them in my COIN CLIENT SETTINGS. I.e: addnode=xx.xx.xx.xx Restart the client, run client-cli getinfo to make sure you're downloading blocks. If it works you should be seeing ERROR ...


1

Bitcoin core is a mining software. You can use rpc setgenerate to turn on the mining process. However, it is nearly impossible for a normal CPU to mine a block(to get rewards) now. At present, you can't earn anything with a normal CPU now even you join a mining pool. (Thanks to @Murch 's correction)


1

Stratum is not HTTP, it's a protocol designed directly on top of TCP. You could use an existing load balancer that works on the TCP level, directing new TCP connection attempts to backend servers. After a client is connected it keeps talking to the same backend. All Stratum work is related to one connection. Proofs of work from clients must be sent over ...


1

No. Difficulty is handled server-side rather than client-side. Different pools have different policies regarding difficulty. Some pools have a fixed difficulty. Others automatically calibrate the difficulty depending on your hashrate (this is called vardiff). And some let you set the difficulty, on the pool website. But in any case, it is ultimately the ...


1

I don't have enough reputation to comment, but just to let you know, the example block header ends with "f8f1753dbdf441b00000000", but it should really be "b8f1753dbdf441b00000000" or fully: 020000000413cf7d02794eb094cd66404e46aa816679e12f6fdf9ee11f0e97337702b6e00b1edc1ccf82d3214423fc68234f4946119e39df2cc2137e31ebc186191d54229b8f1753dbdf441b00000000 ...


1

This table isnt part of the MPOS schema you have to create it yourself, my schema for this table is: mysql> show columns from shares; +-----------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+---------+----------------...


1

Yes, it is possible. The coinbase outputs are embedded in coinbase2. E.g. for a regular 1-output pay-to-pubkey-hash coinbase tx it contains the pubkey hash which can redeem the coins. Check the stratum official documentation. It has a real-world example which generated raw block 000000002076870fe65a2b6eeed84fa892c0db924f1482243a6247d931dcab32. The raw ...


1

It is not an error that new blocks are detected. You should check other parts of the output to see if you are correctly connected, you are hashing and submitting shares. If you want us to check what's wrong, please, submit some other part of the cgminer's log.


Only top voted, non community-wiki answers of a minimum length are eligible