지난주에는 이더소셜이 기본적으로 잘 안되고 있던 부분을 살펴봤습니다.
CI (Continuous Integration - 지속적 통합도구) 세팅
깃허브로 소스코드를 관리하면 travis CI (리눅스, 맥 OS) / appveyor (윈도우용) 등의 훌륭한 CI 도구(CI: Continuous Integration - 지속적 통합도구)를 공짜로 지원받을 수 있습니다. 그동안 이것이 제대로 세팅이 되지 않은 상태라 이 부분을 중점적으로 살펴봤습니다.
CI통합 도구를 사용하게 됨으로서 소스가 변경되고 이것이 깃허브에 올라갈때마다 자동으로 수많은 테스트를 수행하게 되며, 덤으로 소스코드가 자동 빌드되어 실행파일이 업로드 되게 만들 수도 있습니다. 이를 사용하지 않는다면 개발자가 실행파일을 자신의 개발용 PC상에서 빌드를 한 후에 수동으로 파일을 올린다는 것인데, 이 경우 개발자가 만의 하나 실수로 바이러스가 감염된 파일을 배포하게 될 수도 있기때문에 이러한 CI 통합도구를 잘 운용하게 되면 시스템의 신뢰도를 향상할 수 있는 것입니다.
이더리움 프로젝트의 경우 이러한 CI통합도구가 아무 문제 없이 잘 운용되고 있습니다만,
상당수 이더리움 소스기반 프로젝트에서 조차도 CI 통합도구가 제대로 운용되지 않고 있습니다.
- Ubiq - https://travis-ci.org/ubiq/go-ubiq Travis CI 사용되지 않고 있음 // 빌드시스템 운용 안됨
- EXP - https://travis-ci.org/expanse-org/go-expanse 운용되고 있으나 테스트케이스 모두 Fail // 빌드시스템 운용 안됨
- CLO - https://travis-ci.org/EthereumCommonwealth/go-callisto 운용되고 있으나 테스트케이스 상당수 실패 // 빌드시스템 운용 안됨.
빌드시스템 (자동화 빌드 사용 유무)
- Ubiq https://github.com/ubiq/go-ubiq/releases - 수동으로 파일 올리고 있음
- EXP https://github.com/expanse-org/go-expanse/releases - 자동화 빌드 사용되지 않고 있음
- CLO https://github.com/EthereumCommonwealth/go-callisto/releases - 자동화 빌드 사용되지 않고 있음
geth/gesn
이더소셜의 경우에는
CI 통합도구가 지금까지 제대로 운용되지 않고 있었고 이번에 이 부분을 모두 세팅하였습니다.
- geth / gesn 빌드 관리 -
https://travis-ci.org/ethersocial/go-ethersocial - 안드로이드 빌드의 경우만 오류를 내고 있으며 모든 테스트 케이스 통과.
(테스트케이스 검사를 아예 하지 않도록 설정이 되어있는 타 코인 프로젝트도 있으나,
이더소셜은 모든 테스트 케이스를 문제없이 통과하도록 이번에 고쳤습니다)
- 빌드시스템 세팅 및 테스트 빌드
https://github.com/ethersocial/go-ethersocial/releases - 빌드시스템을 통해서 자동으로 빌드되고 업로드된 것입니다.
(몇가지 문제를 좀 더 해결한 후에 이번주 안으로 차기 버전을 릴리스할 예정입니다.)
- geth / gesn 호환문제 해결 - 그동안 gesn이라는 이름으로 별도의 이름으로 배포하였으나, 이제부터는 geth / gesn 두가지를 모두 지원하고, 하위 버전간의 호환성 문제가 없도록 사소한 문제를 고쳤습니다. (아직 약간의 해결해야 할 문제가 남아있음)
미스트(Mist) 지갑
이더소셜은 이더리움의 지갑 프로그램인 Mist를 기반으로 하고 있습니다.
2018년 작년은 미스트 프로그램이 많은 개선이 있던 한해였습니다. 다만, 많은 개선이 있던 만큼 불안정한 모습을 보였으며
이는 타 프로젝트 개발자를 골탕먹이는 요인이 되기도 했지요.
미스트 프로그램은 여러가지 DApp을 함께 사용할 수 있는 "미스트 버전(Mist)"과,
지갑에만 특화되어 있는 "지갑 버전(wallet)"이 별도로 존재합니다.
타 프로젝트를 살펴보면 다음과 같습니다
- Ubiq - https://github.com/ubiq/fusion/releases - 꾸준한 업데이트. Mist 0.10 기반 // Mist와 지갑 동시 지원 // CI 통합도구 사용 X
- EXP - https://github.com/expanse-org/mist/releases - 약간 낡은 버전, 꾸준한 업데이트. Mist 0.9.2 기반 // 지갑만 지원 // CI 통합도구 사용 X
- CLO - 미스트 지갑 지원 안함
ESN Wallet (Mist기반)
이더소셜의 경우에는 다음과 같은 상태였습니다.
- ESN - https://github.com/ethersocial/mist/releases - 약간 낡은 버전, 꾸준한 업데이트. Mist 0.9.2 기반 // 지갑 버전만 지원 // CI 통합도구 사용 X
이번에 이더리움 Mist 최신 0.12.0 소스를 기반으로 작업하였으며, 이제 Mist 버전과 지갑 버전을 동시에 지원할 수 있게 되었고,
CI 통합도구를 사용하도록 고쳐서, MacOS 지원의 길도 열렸습니다~
https://travis-ci.org/EthersocialNetwork/mist/builds/513668554
변경사항으로는,
작년 한해동안 제가 별도로 작업했었던 Mist 통합작업을 이번 ESN 지갑에 적용하였습니다
- KRW / USD 단위 환산 지원 (작년 작업)
- 각종 한글 메시지 오류 수정 외 (작년 작업)
- 작년의 작업을 미스트 최신 0.12.0 개발판에 다시 적용.
- 이전의 ESN 지갑과 호환성 문제가 없도록 추가 수정을 한 후에 배포할 예정입니다.