[개발] Swap기능 #2 엔진토큰 3일 평균가 api 개발

안녕하세요.

API 개발 관련 내용

스왑기능 개발에서 스왑기능을 소개했었습니다. 이 기능을 3단계에 거쳐 개발 중이고 이번엔 2단계에 해당하는걸 개발하고있습니다.

스팀엔진 토큰 (SCT,SCTM,KRWP), 스팀, 스달의 3일 평균가를 계산하고, 그걸 출력하는 api를 개발중입니다.


먼저, 스달과 스팀은 coingecko에서 가격을 가져옵니다. (https://api.coingecko.com/api/v3/simple/price?ids=steem&vs_currencies=usd)

스팀엔진 토큰은 스팀엔진 거래소에서 가격을 가져옵니다.
이건 ssc라이브러리를 활용합니다.

가져온 토큰의 가격은 db에 저장되고, db에 저장된 데이터로 3일 평균 금액을 api로 제공할 수 있도록 했습니다. api가 호출될때, 3일전 데이터까지 불러와서 평균을 냅니다.

1
2
3
4
5
[{"symbol":"SCT","price":1.8931250000000004},
{"symbol":"SCTM","price":7.3875},
{"symbol":"KRWP","price":6.745000000000001},
{"symbol":"STEEM","price":0.125125},
{"symbol":"SBD","price":0.61025}]

아직 남은 일

  • 소수점 3째자리까지만 출력
  • 스팀/원화, 스달/원화를 api에 포함시키기
  • db에 3일치씩 토큰 평균가격 저장

스왑기능의 개발은 다음주까지는 끝낼 수 있도록 노력하겠습니다. 운영진, 개발팀 모두 열심히 하고있어요, ㅎㅎ

테스트를 잘해서 완성도 있는 기능을 만들어보겠습니다.

감사합니다.


This page is synchronized from the post: ‘[개발] Swap기능 #2 엔진토큰 3일 평균가 api 개발’

[독서일기] 기묘한 러브레터

이 책은 두 사람이 서로 페이스북으로 주고받는 메시지로 구성돼있다. 둘은 30년 전에 결혼을 약속했었고, 그러다 여자가 갑자기 결혼식날에 오지않았다.

처음에 읽을땐 이책이 두 사람의 따뜻한 추억이야기일 줄 알았다. 근데, 중간에19금으로 갔다가 공포도 한번 찍고 허무하게 끝나는 잘 읽히고 꽤 재밌는 책이다.

우리는 누군가 만날때 그 사람의 단편만 본다. 그 사람의 모든면을 볼 수 없다. 그 사람이 보여주는 면만 보고 지내는 것이다. 그사람이 과거에 무엇을 했는지, 나와 만나지 않을 때 무엇을 하고 있는지 모른다.

사람이 겉으로는 멀쩡해보이는데 사실 미친놈일 수 있다. 이 소설은 알고보면 세상이 미친놈들로 구성돼있다고 말해주고있다.

작가의 글솜씨에 대해 말하고싶은데
정말 잘읽힌다. 그리고 담담하면서도.. (30년지난과거이야기를 한다라는 설정때문인가?) 묘사하는 장면 하나하나가 상상되는 글이였다.

밤에 바닷가에서 캠프파이어를 했고요. 그때, 당신은 제게서 조금 떨어진 곳에 앉아 있었습니다. 저는 슬쩍 당신 쪽을 쳐다보았어요.

불꽃에 비친 당신의 얼굴이 보였습니다. 당신은 하얀 민소매 원피스를 입고, 평소에는 하나로 묶는 머리카락을 늘어뜨리고 있었습니다. 당신의 그런 머리 모양을 보는 건 처음이었지요.


Originally posted on 스팀 블록체인 독서모임. Steem blog powered by ENGRAVE.

This page is synchronized from the post: ‘[독서일기] 기묘한 러브레터’

[개발] 스팀코인판 Swap 기능 #1

안녕하세요.

소개

이번주부터 개발하고 있는 기능이 있는데요. 스왑(교환) 기능입니다.

스왑기능은 토큰간의 교환을 해주는 기능으로, 스팀코인판 사이드바에 넣을 예정입니다. 스왑기능을 통해 토큰간의 교환을 보다 쉽고 빠르게 할 수 있을 것으로 예상합니다. 이 기능은 LP(유동성공급자)의 자원을 활용할 것이고 수수료 1%를 붙일 예정입니다.

아래의 사진과 같이 이 위젯이 스팀코인판 사이드바에 붙을 예정이고, 현재는 총 5개의 토큰 (SCT, SCTM, KRWP, STEEM, SBD)간의 교환 서비스를 제공할 예정입니다. 추후 확장될 수 있습니다.

image.png

예를 들어, sct를 krwp로 바꾼다면 위젯의 통화쌍 sct, krwp로 설정합니다. 그리고 바꾸고싶은 양을 입력합니다.

입력을 하면 위젯에서는 교환받을 krwp를 보여주는데요. 이렇게 계산됩니다.

변환할 양 * 환율 ( 입력토큰가격 / 변환될토큰가격)


개발단계

swap기능 개발은 총 3단계로 나눠져있습니다. 현재 1단계 작업은 끝났고, 2,3단계의 작업을 진행중입니다.

  1. 스팀코인판 Swap 위젯 개발

    • 사용자가 바꾸고자 하는 토큰 선택 (Done)
    • 변환이 예상될 금액도 표시 (Done)
    • 현재 유동성공급자의 잔고 등을 표시 (Done)
    • 스팀엔진 토큰, 스팀, 스달 전송 기능 (Done)
  2. 토큰의 평균가격 api
    토큰의 3일동안 평균가격을 바탕으로 토큰간의 환율을 계산을 할 예정입니다. 이를 위해, 주기적으로 스팀엔진거래소에서 거래된 가격을 기록합니다. 그리고 api로 3일평균가격을 접근할 수 있도록 할 예정입니다.

  3. 토큰 전송
    사용자가 1번 위젯을 통해 토큰을 보내면, 이를 확인하고 환전할 토큰의 양을 계산합니다. 그리고 계산된 토큰을 사용자에게 보내는 작업이 필요합니다.


자세한건 개발진행하면서 더 적어보도록 하겠습니다.

감사합니다.


This page is synchronized from the post: ‘[개발] 스팀코인판 Swap 기능 #1’

[개발] heroku에서 nitrous 동작시키기

안녕하세요.

제이콥입니다.

아직 공개하지않았지만, 스팀코인판 내부적으로 열심히 개발하고 있는 기능이 있습니다. 가끔보면 애플이나 삼성이나 정보유출되는 경우가 있지 않습니까? 왜 유출되는지 이해할 수 있을것 같습니다. 개발한걸 말해주고 싶은데 참고있으니 얼마나 답답하겠나 싶습니다.

아무튼!
지금하고있는 개발을 보여줄정도가 된다면 글로 소개할게요.
홍보소각도 하고요. ㅎㅎ


heroku에서 nitrous 동작시키기

heroku 짱입니다. 예전에는 heroku에서 특정시간마다 스크립트가 동작하도록 설정한 적이 있었는데요. 이것 말고도 heroku 위에서 서버를 돌린다던가, 웹페이지를 돌린다던가, 파이썬을 돌린다던가 이것저것 돌려볼 수 있습니다.

(https://jacobyu.net/heroku-with-javascript-10-1-hello-1-1/)

쉽게 설명하자면, 컴퓨터에서는 여러프로그램 이것저것 돌릴 수 있지않습니까? 히로쿠는 여러프로그램 중에 1개를 원격으로 동작시켰다고 보면됩니다.

@anpigon님이 히로쿠에서 nitrous 배포하기에 대해 아주 친절하고 자세하게 작성해주셨습니다. (https://busy.org/@anpigon/nitrous)

히로쿠에서 nitrous 동작시키는걸 그대로 따라해봤습니다. 나중에 제 글에서 찾기가 좋을 것 같아 따라한 걸 그대로 적어봅니다.

Step by Step

로그인 및 heroku 프로젝트 만들기

이걸 니트로스 프로젝트 안에서 한다.
heroku login
heroku create project-name
heroku container:login

빌드 및 배포

빌드하고 배포한다.
heroku container:push web
heroku container:release web
heroku open

코드를 수정하고 다시 배포

기존에 있던 프로젝트 가져오기
heroku git:remote -a project-name

위와 같이 반복한다.
heroku container:push web
heroku container:release web
heroku open

안피곤님 덕분에 쉽게 니트로스 사이트를 배포해봤군요. 감사합니다.


This page is synchronized from the post: ‘[개발] heroku에서 nitrous 동작시키기’

[일기] 유혹이 적은 환경 만들기

집에서는 일이 잘 안된다. 보는사람도 없고, 옷은 편하고, 옆에는 침대가 있다. 거기에다가 컴퓨터에는 게임도 깔려있다.

예를 들어, 집에서 영어공부나 해야하는 개발을 집중해서 하는건 꽤 어렵다. 집중이 아니라 그냥 시작하는것 자체가 어려울때가 많다. 조금만 쉬어야지 하다가 푹 쉰 후에 그냥 자는경우도 있다. 그리고 샤워하면서 아.. 어제 개발을 했어야했는데.. ㅋㅋ라고 후회한다.

이런 후회를 하다 예전에 읽은 책이 생각났다. “뼈있는 아무말 대잔치”라는 책이였는데, 저자는 퇴근하고 항상 카페를 가서 책을 읽었다고 한다. 그 시간동안은 핸드폰도 꺼버리고 책만 읽을 수 있도록 환경을 조절했다고 한다.

아무말대잔치 리뷰

맞다. 나도 뭔가를 하기위해서 의지로 하는게 아니라 환경을 조절해야겠다. 강아지에게 앞에 먹이를 두고 참으라고 하는게 아니라 아예 먹이를 주지말고 참으라고 하는게 낫지. 유혹을 다 없애버리는게 낫다.

일을 어디서 하느냐에 대해 친한 형과 이야기한 적이 있다. 그형은 카페에서 하는 것도 좋은데 집에서도 일을 할 수 있도록 자기를 훈련해야한다고 말한다. 사람마다 다르겠지만, 난 유혹을 피하는 방식이 나에게 맞다.

회사 퇴근하면 카페가서 책을 읽거나 영어공부를 하거나 개발해야지. 그리고 집에서는 왠만하면 드라마도 보고, 재밌는 책을 읽고 게임하면서 쉬어야지.

감사합니다.


This page is synchronized from the post: ‘[일기] 유혹이 적은 환경 만들기’

[개발, 분석] steemwallet #1 소개 및 설치

안녕하세요. 제이콥입니다.

오늘은 로랜드의 steemwallet를 분석하고자합니다.

스팀월렛은 로랜드가 개발하였고, android, ios에서 모두 사용가능합니다. AES 256 encryption로 사용자의 암호키를 보호하며, 생체인증 (지문인식, Face ID) 등으로 접속이 가능하도록 돼있습니다. 단, 하드웨어가 지원해준다면요.

steemwallet is a fast, secure and open source wallet for the Steem blockchain, available for iOS and Android.

Encryption wise it is just as safe as the cli_wallet app provided by the Steem software, using AES 256 encryption and per device & per (re-)install unique initialisation vector. Also the app obliges you to choose a difficult to guess passphrase for encrypting your wallet file. You can opt to store that passphrase in your device’s native keychain, if your device provides biometric access (Touch ID, Face ID, Fingerprint) and you have that feature enabled.


코드는 javascript로 작성돼있습니다.

사용하고 있는 크로스플랫폼은 “Appcelerator titanium”라는 툴을 사용하고있습니다.

이 코드의 라이센스는 CC BY-NC-SA 4.0입니다.
https://creativecommons.org/licenses/by-nc-sa/4.0/

이 코드는 오픈소스입니다. 비상업적으로 이 코드를 활용한다면 변경도 가능하고, 카피도 가능하고, 재배포도 가능합니다. 하지만, 상업적으로 사용하는 것은 금지돼있습니다. (유료앱, 수수료 등) 이 부분을 원한다면 roelandp와 이야기가 필요해보입니다.


회원가입 및 설치

한번 직접 빌드하고 코드를 파악해보려고 합니다. 근데 이걸 빌드하려면 https://platform.axway.com/에서 회원가입을 해야하군요.

전 cli setup을 따라서 진행할 예정입니다. 아래 가이드대로 하나하나 스텝별로 진행해보겠습니다.

https://wiki.appcelerator.org/display/guides2/Appcelerator+CLI+Getting+Started

초기 셋업
appc setup
git clone https://github.com/roelandp/steemwallet.git

샘플 프로젝트 만들어서 동작시켜본다.
appc new -t app --id com.appcelerator.sample -n SampleProject
cd SampleProject/; appc run -p ios

티타늄 및 라이브러리 설치
npm install titanium -g
titanium sdk install 8.1.0.v20190605095601
npm install -g alloy
alloy install plugin

스팀월렛 실행
cd steemwallet; appc new --import
appc run -p ios

추가셋팅 (티타늄 sdk 버전업 한 경우)

image.png

티타늄 sdk를 8.2.0.GA로 변경하였습니다.
티타늄 sdk를 업데이트하면, 플러그인을 다시 설치해야합니다.
프로젝트에서 sdk를 업데이트한 후, 프로젝트를 처음킨다고 가정하겠습니다.

appc setup
appc new --import
alloy install plugin
appc run -p ios

끝!

결론

이 앱은 스팀 지갑앱에 초점을 맞춰, 딱 필요한 기능들만 구현했고 가볍습니다. 지갑앱을 만든다면 여기서 뭔가 추가해보기 좋을 것 같아요. 다만, 생소한 플랫폼 Appcelerator, 티타늄이라는게 아쉽습니다. 리액트면 좀더 쉽게 접근했었을텐데요.

esteem app은 리액트 네이티브고 좋긴한데, 너무 방대한것 같더군요. 이 코드도 시간이 되면 봐보겠습니다.

감사합니다.


This page is synchronized from the post: ‘[개발, 분석] steemwallet #1 소개 및 설치’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×