이 이야기는 @천재성곤 님이 맨 처음에 공개하셨던 ESN 블록 익스플로러로 거슬러 올라갑니다.
http://explorer.gonsmine.com 사이트에서 제공하는 서비스가 사용하는 원래의 소소코드는 이클 프로젝트에서 제공하는 ETC explorer 소스코드를 기반으로 하고 있더군요. 그래서 이 소스코드를 받아서 살펴보니 여기 저기 자잘한 버그가 있었습니다.
그것들을 고쳐보면서 ESN 및 이더리움 geth 등의 작동방식을 살펴보던 중에
ETC explorer 개발자분들이 비교적 활동적인 것 같아서 깃허브에 PR을 하나 제출하기에 이릅니다.
이것이 제가 제일 처음 제출한 PR. 블록 번호 뿐만 아니라 블록 해시로도 블록을 검색하게 해주는 패치입니다.
https://github.com/ethereumproject/explorer/pull/82
그런데 다음과 같은 이슈가 눈에 띄는 것입니다.
https://github.com/ethereumproject/explorer/issues/88
https://github.com/ethereumproject/explorer/issues/89
https://github.com/ethereumproject/explorer/issues/90
ETC explorer는 이상하게 중간중간에 죽는 버그가 있었으며, 그러한 이유로 https://ethersocial.net 사이트가 죽던 현상이 있었던 것입니다.
(ethersocial.net 사이트 역시 ETC explorer 소스코드를 기반으로 수정된 것입니다)
위의 세가지 이슈를 해결하면 바운티를 주겠다는 내용이었습니다.
https://forum.ethereumclassic.org/t/improve-etcs-opensource-explorer-taken-in-progress-by-bakon/1994 참고.
88번 이슈 바운티 $100 / 89번 $750 / 90번 $1,150
저는 이 바운티 프로그램의 내용을 제대로 신경쓰지 않은채로 관련 작업을 하기 시작합니다.
사실 이 시점에서 위의 세개 이슈를 거의 해결한 상태였기때문에 바운티를 받을 부푼 꿈을 가지고....
(하지만 위 글을 잘 보시면 바운티 프로그램은 @bakon이라는 ETC 내부 관계자(?)가 작업을 이미 시작한 상태였습니다...
바운티는 모두 @bakon 개발자가 독차지...)
저는 이 바운티 프로그램이 여타 바운티 프로그램과 비슷한 경쟁식의 프로그램인줄 알고 열심히 PR을 제출...
바운티를 받는다는 꿈은 결국 무위로 돌아가 버렸습니다만.
(@bakon 개발자는 제가 열심히 PR을 제출하는 통에 엉터리로 고친 프로그램을 제출하는 무리수까지 두더군요...
결국 여차저차해서 받아들여졌습니다만, 성능상 별 차이가 없이 보이고 약간의 버그가..)
----------
바운티 종료후에도 저는 여전히 필을 받아서 계속 PR을 제출하였고,
급기야 @bakon씨가 싸지른 똥을 치우는 PR도 얼마전에 제출합니다. (재미를 위해 비하하는 식의 글을 썼습니다만 그정도 까지는 아닙니다 ^^)
https://github.com/ethereumproject/explorer/pull/129
위 PR은 디스코드 개발채널의 @컴빠 님께서 ETC explorer의 sync속도가 너무 느리고, 특정 부분을 고치면 속도가 어느정도 나온다고 하시기에 살펴보다가 개선한 것입니다. 이 고침은 사실 따지고 보면 @bakon씨가 고친 부분을 조금 더 개선한 것이긴 합니다만, sync속도가 엄청나게 빨라졌습니다.
(기존에는 이클 블록체인 500만블록을 몇일을 돌려도 mongo DB로 sync가 안되던 것을 이제는 하루안에 sync가 됨)
----------
아무튼 처음에는 바운티에 눈이 멀어서 시작하게 된 ETC explorer 개발인데
이제는 제가 제출한 PR개수만 17개가 되었고 2개는 아직 받아들여지지 않고 나머지 15개는 모두 받아들여졌습니다~. 몇가지만 써보면,
- 마이너 / 해시 챠트 기능 되살리고 외부 API 도움 없이 작동하도록 고침 PR
- @천재성곤 님의 도움으로 mongo DB 성능 최적화 고침 PR
- 설정을 고치는 것 만으로도 다른 이더리움 포크 코인 지원 가능. 디자인도 비교적 손쉽게 수정 가능 PR
급기에 ETC explorer 개발자 @anthony 분에게 인정을 받아서 ETC explorer 저자로 이름이 올라가기까지 했습니다.
(저의 깃허브 계정이 hackmod 입니다. 정식으로 등록된 형태는 아니나 기분은 좋더군요)
https://github.com/ethereumproject/explorer/commit/d794d1f3cbe51e4142932b51f1da137de1a69ac4#diff-06b2d3b23dce96e1619d2b53d6c947ecR13
이상 두서없는 ETC explorer 개발이야기는 마칩니다~
앞으로도 당분간은 ETC explorer를 만지게 될 것 같습니다
읽어주셔서 감사합니다~~
P.S.: ESN측에서 바운티 프로그램을 운용할 것이라고 백서에 써있는데, ETC 익스플로어 바운티는 받지 못했지만 2월 이후에 사용자 분들의 원성으로 멈춘 ESN의 바운티는 받을 수 있었으면 좋겠네요~