[일상] open source에 처음 기여(contribution) 해 봄

in SCT.암호화폐.Crypto4 years ago (edited)

그동안 open source를 아주 아주 잘 활용하고 있었는데요. 이번에 pancakeswap 관련 작업을 하다가 web3.py 오류 때문에 고생을 많이 했었습니다. 그런데 github에 들어가보니 제가 문제점을 찾아서 수정한 부분이 이미 반영되어 있더군요. web3.py를 최신 버전으로 update를 했었는데도 과거 버전을 사용하고 있었더군요. 그 이유는 알 수가 없으나, 앞으로는 사용하는 package에서 문제가 생기면 github에 들어가서 소스를 확인하는 습관을 들여야겠습니다.

그나저나.. 이번에 수정한 사항을 다시 한번 살펴보니, 앞으로 또 문제가 생길 수 있는 코드입니다.

현재 github에 올라와있는 코드입니다.

    if (
        abi['type'] not in ('fallback', 'constructor', 'receive')
        and abi['name'] == name
    )

이 함수가 하는 일은 abi 내용 중 function이라는 type에 있는 'name' 항목을 비교하여 같으면 돌려주는 것입니다.

아마도 초기에는 'fallback', 'constructor', 'function' 이렇게 3 type만 존재하였고, 'function'에만 'name'이 field가 존재하였나 봅니다. 이러한 사실을 바탕으로 type 값이 'fallback', 'constructor' 아니면 'function'이라고 가정을 한 것이죠. 차후에 'receive'라는 type이 새로 생기면서 이러한 가정이 깨졌고, 오류가 발생하였습니다.

옛날에 한참 개발할 때 이런 일들이 비일비재했었습니다. 초기 스팩에는 없었으나, 이후에 생기면서 기존 프로그램이 죽는 그런 일들요. 이런 일로 고생을 워낙 많이 해서 본능적으로 앞으로 뭔가가 추가될 수 있다고 가정을 하고 코딩하는 습관이 들어있습니다. 이거 이거 아니면 저거야 라는 가정이 정말 무서운 가정이거든요. 현재는 맞지만 미래에는 틀릴 수 있으니까요.

이런 관점에서 본다면 현재 이 코드도 앞으로 문제가 또 생길 여지가 있습니다. 왜냐하면 앞으로 새로운 type이 생긴지 않는다는 보장이 없기 때문이죠.

그래서 web3.py github에 issue를 넣었습니다. 이번 기회에 그동안 사용만 하던 사용자에서 contributor의 역할을 처음 해 보았습니다. 저의 제안이 반영될지는 모르겠으나 나름 뿌듯하군요.

https://github.com/ethereum/web3.py/issues/1914

오늘 달린 comment입니다. 이 분 아이디어가 더 좋은 것 같습니다. 아예 함수를 하나 추가해서 'name' 값을 받아오자는 것이죠.

제가 쓴 issue에 보는 사람이 있고, 또 comment를 하는 분이 있다는 사실 또한 놀랍군요. 이런 식으로 open source는 발전하는 것 같습니다.

이제 시간날때 마다 open source에 contribution 해 볼 예정입니다. 개인의 조그마한 노력이 모여서 엄청나게 좋은 프로그램이 만들어지는 생태계가 아주 재미있습니다.

Sort:  

[US$49.00](▼14%)[Nespresso]스타벅스 네스프레소 호환 캡슐 7종 / 120 캡슐 골라담기 / 20개씩 총 6종류 교차 선택 가능 / 중복 선택 가능 / 재고 확보 / 무료배송 / 개당 약 486원 최저가★

WWW.QOO10.COM

@tradingideas transfered 21 KRWP to @krwp.burn. voting percent : 73.32%, voting power : 79.83%, steem power : 1730055.16, STU KRW : 1200.
@tradingideas staking status : 10500 KRWP
@tradingideas limit for KRWP voting service : 21 KRWP (rate : 0.002)
What you sent : 21 KRWP [52109351 - 798ab8565e30a18ed945991e8dc1806ab24e67a1]

오 코드 기여 응원합니다.
오픈 소스의 모델 자체가 저렇게 발전 하는거라서요

대단하십니다

역시 글로벌 인재십니다!! ㅎㅎ
곧 일드파밍 서비스를 출시하시는 건 아닐런지... ㅎ

web 프로그램을 못해서.. 개인적으로 사용할 예정입니다.

트아님 스팀 좀 멋지게 개발해 주세요. ~~~

스팀.. 좀 멋지게 개발되었으면 합니다. ㅎ