Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stratum spec #37

Closed
sammy007 opened this issue Oct 18, 2017 · 51 comments
Closed

Stratum spec #37

sammy007 opened this issue Oct 18, 2017 · 51 comments
Assignees

Comments

@sammy007
Copy link

Since BTCGPU utilises equihash it's wise to follow zcash stratum spec, will make existing miners compatible. https://github.com/str4d/zips/blob/77-zip-stratum/drafts/str4d-stratum/draft1.rst

@martin-key
Copy link
Collaborator

Thanks, this will be done.

@oliverw
Copy link

oliverw commented Oct 19, 2017

So the plan is to make BTG a drop-in replacement for ZCash from a pool's/miner's point of view?

@h4x3rotab
Copy link
Member

Confirmed. Existing stratum protocol works well with Bitcoin Gold block format. But some minor changes in pool software are still needed. More specifically, the pool must put the block height in the first 4 bytes of hashReserved field.

Anyone who can list popular pool softwares?

@oliverw
Copy link

oliverw commented Oct 19, 2017

Confirmed. Existing stratum protocol works well with Bitcoin Gold block format.

Should that read "existing ZCash stratum protocol"? The ZCash stratum differs quite a bit from the protocol used by the rest of the Bitcoin Heritage of coins.

@argos66
Copy link

argos66 commented Oct 20, 2017

More specifically, the pool must put the block height in the first 4 bytes of hashReserved field.
Anyone who can list popular pool softwares?

I use z-nomp that use node-stratum-pool, this pool can be natively compatible ?

If you've made a modification on a pool can you share it ?

@martin-key
Copy link
Collaborator

I will share it with open-source license

@argos66
Copy link

argos66 commented Oct 20, 2017

thanks, I'm wait to discover this code and test for be ready when mainet opening.

@DaneAlex
Copy link

Will wait for this as well!

@egyptianbman
Copy link

Waiting as well. Also using z-nomp.

@sammy007
Copy link
Author

@StarbuckBG you confirm that stratum is compatible with zcash?

No one actually interested if you will share something or not, I am independent dev and would like to write my own so I need a spec.

@martin-key
Copy link
Collaborator

martin-key commented Oct 23, 2017 via email

@sammy007
Copy link
Author

You just take zcash stratum and go with it, no need for amateur solutions. Everyone will be thankful, I promise.

@sammy007
Copy link
Author

Hint: because you probably need existing mining software to work with BTCG.

@martin-key
Copy link
Collaborator

martin-key commented Oct 23, 2017 via email

@sammy007
Copy link
Author

You are here to scam, you all are not capable to provide solutions. Do not lie to yourself.

@martin-key
Copy link
Collaborator

The coin is on the market in few hours, the fork is tomorrow.
Lets see.
I cannot understand how you are one of the guys that I liked the work they have made and at the end you are just a spammer blaming us without actual facts, only on assumptions.
I wish you good luck with your projects and protocols. I hope one day you understand how wrong you are and that this is not good way to talk to other developers.

@martin-key
Copy link
Collaborator

I want you to tell to all the team that is working more than 18 hours a day for the last week, that this is a scam. Tomorrow I will be in the Jimmy Song's show I would definitely have in mind the way you are behaving and that one of the persons that have made that much for the mining society is behaving that way. It is not cool (:

@sammy007
Copy link
Author

You are disturbing 100 billion dollars market. I posted a few concerns, if addressed you can make it smooth for everyone, unfortunately you refuse to listen.

  • Make stratum 100% compatible with zcash so coin will inherit existing mining software and pool software.
  • Provide a testnet prior launch so if needed we all can make adjustments.

If you are not capable to provide a working testnet I have no idea what does "provide solutions" mean.
I really care not if this a money grab or just school project, but if you claim you are a professional you will address these issues.

I would join slack if it's possible, but I failed yesterday, link is kinda broken.

@sammy007
Copy link
Author

sammy007 commented Oct 23, 2017

It's still a mistery for me how people are going to launch a bitcoin fork without providing code before launch. Normal launch = post mainnet code 5 minutes before launch so we all can set it up, but there is literally no reason to hold on testnet. You can publish it right now if it's ready. If testnet code is not ready simply don't launch.

I am sure people will agree with e that testnet must go with equihash algo since genesis or block 1. There is no need for legacy. For testing transition you should have a reg test.

@martin-key
Copy link
Collaborator

The incompatibility with Zcash is made for better as even Daira mentioned that they are planning to add the block height as argument for the block calculation.
The testnet is under development. I try to do all my best but most of the time I need to answer such kind of attacks and other problems that developers meet.
We need more devs, not more enemies. We are open to everyone that wants to help us, but when people are attacking us we are left with no other chance than doing everything by ourselves ..

@sammy007
Copy link
Author

So we are waiting for an altered zcash stratum spec for bitcoin gold in order to start development on our side.
We: me and a dozen of pool ops for sure.

@martin-key
Copy link
Collaborator

martin-key commented Oct 23, 2017

About the testnet I needed to download the bitcoin testnet in order to check if the change of the PoW is handled and I needed to modify the DNSSeed code. I have done both of the things and have synched all of the testnet.
The regtest shows no problems with the PoW change. Today I will be finishing the stratum protocol and will provide the changes so the mining pools can start synching the netowork and make some changes.

@OleksandrBlack
Copy link

1
UP

@martin-key martin-key self-assigned this Oct 25, 2017
@BaikalMine
Copy link

When can I add a coin to the pools?

@TheComputerGenie
Copy link

#37 (comment)

Confirmed. Existing stratum protocol works well with Bitcoin Gold block format. But some minor changes in pool software are still needed. More specifically, the pool must put the block height in the first 4 bytes of hashReserved field.

Anyone who can list popular pool softwares?

https://github.com/z-classic/z-nomp

@martin-key
Copy link
Collaborator

martin-key commented Oct 28, 2017 via email

@h4x3rotab
Copy link
Member

We tried to follow zcash stratum spec but most miners still check the version field and the hashReserved field of the block header. So some changes are still needed for the miner side.

@sammy007
Copy link
Author

So change it, publish markdown with spec, make a fork of CPU miner so devs can catch up.

@martin-key
Copy link
Collaborator

martin-key commented Oct 28, 2017 via email

@sennevb
Copy link

sennevb commented Oct 29, 2017

Also not bad to notify claymores and optiminer and so..

@sammy007
Copy link
Author

the pool must put the block height in the first 4 bytes of hashReserved field.

@h4x3rotab could you publish a diff with zcash format?

@sammy007
Copy link
Author

PREVHASH (hex)
The 32-byte hash of the previous block, encoded as in a block header.
MERKLEROOT (hex)
The 32-byte Merkle root of the transactions in this block, encoded as in a block header.
RESERVED (hex)
A 32-byte reserved field, encoded as in a block header. Zero by convention (in hex, 0000000000000000000000000000000000000000000000000000000000000000).
TIME (hex)
The block time suggested by the server, encoded as in a block header.

So for block 492407 RESERVED instead of 64 char zero hex must be:

0007837700000000000000000000000000000000000000000000000000000000

Or it must be reversed or something else.

@martin-key
Copy link
Collaborator

@martin-key
Copy link
Collaborator

This is working as bitcoin gold pool.

@BaikalMine
Copy link

BaikalMine commented Nov 1, 2017

This is working as bitcoin gold pool.

Will you need to make a new pool? or can be installed on any z-nomp pool?

@TheComputerGenie
Copy link

@DeadMan993 Because of the stratum edits, merging is best left to qualified pool operators.

@sammy007
Copy link
Author

sammy007 commented Nov 3, 2017

So we can use block version = 4 now, it will make all existing zcash miners compatible, are you going to require exact version from getblocktemplate or 4 will remain acceptable?

@h4x3rotab
Copy link
Member

@sammy007 version=4 is not feasible for Bitcoin Gold because of bip9

@oliverw
Copy link

oliverw commented Nov 3, 2017

@h4x3rotab @sammy007 Out of curiosity, why would you use anything but the version from GBT? Regarding miner compatibility: Wouldn't miner apps still choke on the block height encoded in the first 4 bytes of hashReserved?

@sammy007
Copy link
Author

sammy007 commented Nov 3, 2017

@oliverw because there is a note in zcash spec that miners (software) must warn and don't mine other versions, I know at least one miner (nicehash cpu miner) which refused to mine anything but version 4. The 4 is also hardcoded in your znomp fork. If you need to inherit existing miners you should allow it. I have no idea if it works on mainnet, but I had a private testnet and it was acceptable. Can't mine on current live testnet because idiots bumped difficulty.

@oliverw
Copy link

oliverw commented Nov 3, 2017

@sammy007 True, I remember that. By the way I've never worked on any znomp forks. I'm working on https://github.com/coinfoundry/miningcore.

@sammy007
Copy link
Author

sammy007 commented Nov 3, 2017

Well it was strabucks.

@oliverw
Copy link

oliverw commented Nov 3, 2017

@sammy007 No problem. This whole story is pretty chaotic.

Can anyone recommend a miner compatible with the current BTG testnet?

@sammy007
Copy link
Author

sammy007 commented Nov 3, 2017

They all must be compatible as long as miner don't give fuck to block version or if at least one fuck given and as long as daemon accepts block version 4.

@oliverw
Copy link

oliverw commented Nov 3, 2017

@sammy007 So they are supposed to completely ignore hashReserved?

@sammy007
Copy link
Author

sammy007 commented Nov 3, 2017

I only used nhequiminer and it works. Must work as long as it is not hardcoded in miner.

@martin-key
Copy link
Collaborator

martin-key commented Nov 3, 2017 via email

@martin-key
Copy link
Collaborator

martin-key commented Nov 3, 2017 via email

@sammy007
Copy link
Author

sammy007 commented Nov 3, 2017

I prefer to talk about it in public here, with slack only a few people will learn. Pretty relevant despite its not an exact issue. A stratum diff with zcash will help and miners can contribute to compatibility spreadsheet.

@martin-key
Copy link
Collaborator

martin-key commented Nov 3, 2017 via email

@BTCGPU BTCGPU deleted a comment from shakilmia Dec 13, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests