Pirl이나 Expanse와 같은 비교적 널리 알려진 이더리움 소스코드 기반 체인들은 이미 ProgPoW로 전환을 트위터등을 통해 공식적으로 천명한 바 있습니다.
ProgPoW는 현재 적어도 세가지 버전의 구현이 거의 완료된 상태입니다.
- 이더리움 개발자로 열혈 활동중인 holiman씨는 go-ethereum을 통해 golang으로 구현을,
- ethminer라는 유명한 채굴프로그램의 메인테이너 chfast씨는 ethash cpp 프로그램을 (제가 땡글 아이디로 쓰고 있기도 하죠~)
- 매우 인기있고 널리 사용되는 rust 언어 기반의 parity
- 그리고 ProgPoW를 최초 제안했던 ifelsedef 익명의 개발자 그룹에 의한 CUDA 및 OpenCL 프로그램
(온라인상에서만 익명일 뿐, OhGodAGirl과 같은 유명한 여성 개발자는 공개적으로 활동을 하고 있습니다.)
이더리움이 PoS로 전격 전환하게 될 그 시점, 갈길 잃은 ASIC 마이너는 값 싼 고 해시를 다른 이더리움 체인으로 투입하게 될 수도 있고,
갈 길 잃은 GPU 마이너 역시 자신의 해시를 어디로 투입해야 할 지 모를 때를 대비하기 위해서라도 ProgPoW를 스터디해야 할 필요성이 있을 것입니다.
이에 Ethersocial Network 역시 대비를 해야 할 것으로 생각이 되었고, 디스코드를 통해 지속적으로 ProgPoW에 관련된 스터디를 진행하고 있었는데, 최근 ProgPoW에 대한 스펙이 점점 완성/안정화 단계가 되어가는 것 같아서, 잠시 ProgPoW를 컴파일하고 테스트넷을 간단히 구성하여 제가 직접 테스트를 해보았습니다.
그런데 현재 공개된 ProgPoW ethminer 변형 버전이 의도대로 작동하지 않는 문제가 있더군요.
궁금한 것은 참지 못하는 성격이기에, ProgPoW-ethminer 변형 소스를 뜯어보고, 문제점을 찾아 버그 보고를 하였으며,
https://github.com/ifdefelse/ProgPOW/pull/11 (merge됨)
https://github.com/ifdefelse/ProgPOW/issues/14
이 문제를 수정하기 위해서 대충 만든 패치를 제출해 보았습니다~
https://github.com/ifdefelse/ProgPOW/pull/15
이를 살펴보다가 알게 된 사실은
- Pirl이나 Expanse 디스코드를 살펴보더라도 ProgPoW에 대한 공개적인 개발이나 이더리움측과의 협업이 없더군요.
- 패치나 버그 리포트를 통한 ProgPoW 개발팀에게로 피드백이 의외로 많지 않았습니다.
- ProgPoW팀에게 제출된 Pull Request(PR)은 총 네개. 이중에 2개는 제가 제출해서 1개는 accept, 다른 한개는 진행중입니다
- P106-6G에서 ethash로 24 MH/s 해시가 나오던 것이 ProgPoW 마이너로 캐면 ~9.8MH/s 가까이 나왔습니다. (ProgPoW 개발자가 밝힌것처럼 기존 ethash대비 1/2로 해시가 줄어듦)
- 의외로 ProgPoW팀에서 만든 ethminer 변형은 소스가 매우 아름답게 정리되어 있었으며, 최적화도 동시에 이루어져 있습니다.
- ProgPoW는 변경 가능한 옵션 파라미터가 꽤 있습니다. 명칭이 Programmatic PoW인 이유가 괜히 있는게 아닌 것 같더군요.
- 현재 ProgPoW를 지원하고 있는 일부 코인들은 ProgPoW 스펙이 완전히 다듬어지지 않은 상태의 구버전 spec에 기반한 구현입니다.
스샷이 빠지면 섭하지요~
다음은 난이도를 매우 낮춘 상태의 테스트넷상에서 잘 작동하고 있는 ProgPoW-ethminer 변형판입니다~
ESN 디스코드에서 ProgPoW에 관련된 스터디 및 정보를 모으고 있습니다. 디스코드 링크 https://discord.gg/hqHm69E
장차 GPU 마이너에게 구세주가 될지도 모를 ProgPoW에 관심 있으신 분은 ESN 디스코드로 오세요~