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

support EthereumStratum/2.0.0 #15

Closed
9 of 10 tasks
hackmod opened this issue Dec 21, 2018 · 3 comments
Closed
9 of 10 tasks

support EthereumStratum/2.0.0 #15

hackmod opened this issue Dec 21, 2018 · 3 comments

Comments

@hackmod
Copy link
Member

hackmod commented Dec 21, 2018

If Ethereum or Ethersocial Network switches their algorithm from the ethash to the ProgPoW, we have to consider algorithm change at the block height of the hard fork. This mean miners have to change their batch cmd at the time of the block where this hard fork occurs and it may result in some delay and short-term hash degradation.

이더리움이 만약 해시 알고리즘을 ethash에서 ProgPoW로 바꾸는 하드포크를 단행하게 된다면, 이 하드포크 진행과정에서 해시 알고리즘이 바뀌게 됩니다. 이 때문에 사용자는 이 하드포크가 발생 블록 시점에서 마이너 실행명령을 바꿔야 하고 어느정도의 지연 및 단기적 해시 저하가 발생할 수도 있게 됩니다.

but this problem can be solved without an issue by EthereumStratum/2.0.0 protocol and it supports algorithm change feature at the specific block on the fly.
그런데 이러한 문제점은 EthereumStratum/2.0.0을 통해서 특정 블럭에서 알고리즘 변경 지원을 통해 자연스럽게 해결할 수 있습니다.

EthereumStratum/2.0.0 protocol supported pool can inform the change of hash algorithm by sending mining.set method to clients like as follow.
EthereumStratum/2.0.0 프로토콜을 지원하는 풀을 사용하는 경우, 해시 알고리즘이 중간에 바뀌는 경우에 다음과 같은 mining.set method를 통해서 알고리즘이 바뀐다는 사실을 마이너에게 알리는 것이 가능합니다.

{
  "method": "mining.set", 
  "params": {
      "epoch" : "dc",
      "target" : "0112e0be826d694b2e62d01511f12a6061fbaec8bc02357593e70e52ba",
      "algo" : "progpow",
      "extranonce" : "af4c"
  }
}

바운티 목표

이에 open-ethereum-pool같은 공개 풀소스를 고쳐 이를 지원하도록 고치고, 이 오픈소스를 누구나 사용할 수 있도록 공개하여, 이더리움 생태계에 이바지할 수 있게 하는 것이 이 바운티의 목표입니다.
ESN에게서나 이더리움에 모두 의미있는 작업이 될 것이라 생각됩니다.

바운티 제안

  • 최초 구현 바운티 10,000 ESN
  • 구현 이후 향후 관리 5,000 ESN 혹은 이에 상응하는 open-ethereum-pool 개선

Done

  • EthereumStratum/1.0.0 support (nicehash) (well-known patch exists but not perfect. several bugs exist)
  • unify nicehash + eth-proxy
  • initial EthereumStratum/2.0.0 support
  • several nicehash support fixes
    • too much stale shares issue - BUG: cache stale jobs
    • make a uniq Extranonce
    • check the length of params
  • support forkBlocks to change algorithm on the fly
  • workaround nicehash(EthereumStratum/1.0.0) to support block height parameter.

ToDo

  • possible bug fix

cc: @kimmyeonghun @magnalucus

@ghost
Copy link

ghost commented Dec 27, 2018

@hackmod
ESN은 ProgPoW를 지지하며 ProgPoW의 작업 또한 이전의 제안을 통해 지원하고 이더리움 생태에 기여하고 있습니다.
제안해주신 작업의 내용은 pool과 miner의 관점에서는 필요한 사항이라 판단됩니다만, 현재까지 논의된 계획도 없는 상태에서의 작업 효율성을 고려해야 할 것입니다.

@hackmod
Copy link
Member Author

hackmod commented Jan 2, 2019

이 작업은 progPoW #10 작업의 연속선상에 있는 작업으로 보고 이 이슈는 닫겠습니다.

@hackmod
Copy link
Member Author

hackmod commented Jan 3, 2019

fix for nicehash EthereumStratum/1.0.0 nicehash/Specifications#10

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

1 participant