스팀코인판에서 투자글을 써봐요, 멘토가 되어줄게..

소개

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

이 글은 신규 가입자들을 위한 글입니다.

스팀코인판은 코인 커뮤니티로, 코인 투자와 블록체인 정보 교류의 장소입니다. 여러분은 이 커뮤니티에 와서 코인 관련 글도 읽을 수 있고, 작성도 할 수 있습니다. 다른 커뮤니티와 다른 점은 여러분이 글을 작성하면 그 글을 읽은 사람들이 좋아요를 눌러줍니다. 그리고 이 좋아요는 토큰으로 변환되고, 그 토큰을 사고 팔 수 있습니다. 코인에 관심이 있으신 분, 투자에 관심이 있으신 분이 있으시다면 이곳에서 활동해보시기를 추천드립니다.

커뮤니티 홈페이지 – https://www.steemcoinpan.com


딱 3가지만 하면 됩니다.

  1. 휴대폰 인증으로 가입하기
  2. 왼쪽의 태그에서 원하는 카테고리 선택, 관심있는 글 보기
  3. 글 작성하기

예시

저는 이런 글을 씁니다.

여러분도 관심있는 코인, 투자, dapp등에 대해 자유롭게 작성해보세요.

멘토가 되어줄게

제가 여러분의 멘토가 되어주겠습니다.
아이디 생성부터 글 작성까지 도와드리겠습니다.
이 커뮤니티에서 적응할 수 있도록 옆에서 서포팅할테니, 연락주세요.
감사합니다.

[셋팅] mac os에서 aws-cli로 s3 셋팅부터 접근까지

aws-s3는 음.. 클라우드 파일 호스팅을 위한 서비스입니다.

예를 들어, 여러 이미지, 동영상, 음원 등을 이 곳에 저장해놓고, 저장해놓은 이미지를 링크하나로 접근할 수 있습니다.

그리고, 이 aws-s3에 파일들을 쉽게 올리고 지우고 하기 위해 존재하는게 aws-cli입니다.

aws-cli를 셋팅하는 것부터 활용하는것 까지 간단하게 적어봤습니다!!

개발 환경을 맥북으로 바꾸면서 이전에 셋팅해놓은걸 다시 할 필요가 있었습니다.

그리고 유저 셋팅하는것도 바꿔봤습니다.

  • 설치
  • cli에서 유저 셋팅
  • IAM, s3에서 권한 셋팅
  • 접근 확인

이런 과정으로 s3에 파일도 올리고 내리고를 할 수 있습니다.

빈약한 설명이지만, 아래 링크들을 하나씩 참고하시면 하실수 있을거라 믿습니다..

셋팅이 끝나면, aws-s3에 업로드, 다운로드를 할 수 있습니다. 이 내용은 아래 링크를 참고하셔요.

AWS S3를 aws-cli로 관리하자

 

참고한 링크

설치 – https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-macos.html

cli 셋팅 – https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-chap-configure.html

권한 부여 – https://github.com/keithweaver/python-aws-s3/

접근 확인 및 실제 사용 – https://passionbull.net/2019/03/others/aws-cli-for-aws-s3/

에러, debug/87/com/google/firebase/auth/internal ENOSPC

리액트 네이티브에서 google firestore를 적용하다가 만난 문제이다.

뭔지 모르겠지만, 용량이 부족해서 생기는 문제라고 한다.

https://stackoverflow.com/questions/22475849/node-js-what-is-enospc-error-and-how-to-solve/32600959#32600959

위의 링크대로 하니깐 해결됨.

 

[프로젝트] Make a habit

Make a habit 소개

좋은 습관을 만들자.

이 앱은 좋은 습관을 만들 수 있도록 도와줍니다.

돈/토큰을 걸고 습관을 만들면, 다시 돈을 돌려준다.
추가로 못지킨 사람들의 돈과 상금을 나눠갖는다.

스팀잇,

돈을 걸지 않더라도 글쓸거리, 보상을 받도록한다.

좋은 습관을 만들 수 있도록 한다.

예시

제이콥과 존은 주 3회 책읽기를 도전했습니다.

둘다 30스팀씩 걸었습니다.

제이콥은 일주일동안 2번 책 사진을 올렸고,

존은 일주일동안 3번 책 사진을 올렸습니다.

일주일 후에 제이콥은 20스팀을 돌려받습니다.

존은 30스팀과 존이 못돌려받은 10스팀을 받습니다.


할일

구글 로그인, 스팀 로그인

보상형 광고 붙이기

이미지 서버 변경 (후순위)


기능 관련

  1. 원하는 종목을 선택한다.
  2. 사진과 함께 글을 쓴다.
  3. 사진과 글을 앱에서 볼 수 있다.
  4. 웹페이지 – ex) 하늘 사진 모아서 보여주기
  5. 앱에서 습관으로 만들 종목 선택시 돈을 낸다. (추후)
  6. !Habit으로 다른사람에게 메시지를 남겨준다. (추후)

Habit 토큰 주는 상황

  1. 글 하나당 Habit토큰을 준다.
  2. 종목의 목표를 이룰 경우, 보너스 Habit을 준다.
  3. 베네핏으로 가져가는만큼 Habit을 준다.

수익

  1. 보상형 광고 부착
  2. 베네핏
  3. 토큰판매

기술 관련

react-native

mobx

firebase push, admob, login

instagram ui style

react-native-base

steem-connect

[소개] Steem-engine 용어

오늘은 스팀엔진이 나오고 여러 용어가 나왔는데요.

steem-engine, steem-engine token, SCOT, SCOT-BOT, Nitrous

너무 헷갈립니다. 그래서 한 번 찾아서 제가 이해한대로 정리해봤습니다.

aggroed가 nitrous를 소개하면서 scot, scotbot에 대해 소개했는데요.

이 글을 같이 봐봅시다.

혹시 제가 글을 잘못 이해한게 있다면 알려주세요. 수정하겠습니다.

https://steempeak.com/steem-engine/@aggroed/introducing-nitrous-to-supercharge-your-steem-engine-community


Scot

Scot stands for smart contract organizational token.

Scot은 Smart Contract Organizational Token의 약자입니다. 그리고 우리가 잘 알고 있는 steem-engine의 토큰들을 Scot이라고 생각하시면 될 것 같습니다. JJM, MINI, WEED 모두 Scot입니다.

다시말하면 Scot은 steem-engine의 토큰입니다. JJM, MINI, WEED.


Scotbot

Scotbot; Community Tokens with proof of brain distribution– If you’re looking to distribute Scot similar to Steem then your options are Scotbot or wait for SMTs! We will support SMTs too, but they don’t exist yet. So, if you want to start now Scotbot is your only option.

Scotbot is a python voting bot that holger80 built that utilizes design specs of the SMT white paper.

Scotbot이 나오기 전에는 Scot은 스팀 기반의 거래가 될 수 있는 토큰이였습니다.

하지만, 스팀엔진은 Scot을 스테이킹을 할 수 있게 했고, Scotbot이란 걸 통해서 Scot을 Steem처럼 분배할 수 있게 했습니다.

Scot을 스테이킹한 사람들이 특정 글에 보팅을 하면 Scotbot이 design specs of the SMT white paper에 따라 계산을 잘 해서 Payout될 때 Scot을 받을 수 있도록 했습니다.

그리고 Scotbot은 파이썬 보팅 봇으로, 아래의 scotbot manual에 따라 동작합니다. 특정 태그의 포스팅을 체크를 할 것이며, 그 포스팅이 몇명의 Scot 홀더들에게 보팅이 됐는지, 그 홀더들이 Scot을 얼마나 스테이킹했는지 등등을 체크하는 것 같습니다.

https://steempeak.com/steem-engine/@holger80/scotbot-parameter-manual

코드는 공개돼있지않습니다.

공개하지 않겠다는 설명을 어디선가 읽었는데 어떤포스팅인지 기억이 안납니다.

요약하자면, Scotbot 덕분에 Steem의 보팅 시스템이 Scot에 적용됐습니다.


Nitrous

Nitrous is your own custom website for your own custom coin with it’s own custom distribution!

Nitrous는 Steemcoinpan, Weedcash같은 사이트를 말합니다. 위에서 설명한 Scotbot이 “열심히 계산하고 각 포스팅마다 받아야 할 Scot을 계산 합니다. 그러면 Nitrous 사이트에서 계산한 것을 쉽게 볼 수 있도록 해줍니다.

image.png


요약

Nitrous와 Scotbot이 나옴으로써 Scot (JJM, WEED)와 같은 토큰을 활용한 스팀잇 같은 싸이트를 개인이 제공할 수 있게됐습니다.

그러므로, 자기가 원하는 커뮤니티를 만들 수 있고요. 그리고 사람들이 서로 보팅도 하면서 토큰도 만들고요.

스팀처럼요.

감사합니다.

Google Cloud Firestore 라이브러리 활용기 #3

단순히 CRUD 기능만 쓴다면 #2로 충분하다.

하지만.. 내가 필요한 것은 데이터베이스를 읽고 기존 데이터에서 업데이트하고 그런 과정이 필요했다.

이걸 위해서 어떻게 할까 고민하다 cloud firestore 트리거/ firebase function 기능을 적용해보고자 한다.

https://firebase.google.com/docs/functions/get-started?authuser=0

https://firebase.google.com/docs/firestore/extend-with-functions?authuser=0

https://firebase.google.com/docs/functions/firestore-events?hl=ko

https://firebase.google.com/docs/functions/?authuser=0#implementation_paths

 


cli를 통해서 작성/배포를 할 수 있다고 한다.

[소개] Holder Monitoring & Auto Voting tool

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

스팀엔진 토큰 운영자를 위한 Auto Holder Monitoring & Voting Tool을 소개해봅니다.

제가 만들고 있는 툴인데요. 아직 좋은 이름을 못정했습니다. ㅎㅎ

Auto Holder Monitoring & Voting Tool라고 부르겠습니다.

Auto Holder Monitoring & Voting Tool는 자동으로 홀더리스트를 업데이트합니다.

그리고 운영자가 설정한 룰을 바탕으로 홀더리스트에게 보팅을 해줍니다.

Auto Holder Monitoring & Voting Tool는 현재 JJM 토큰에서 안정적으로 사용하고 있습니다.


툴 소개

https://passionbull.github.io/jjm/

이 툴은 홀더리스트 페이지와 보팅 페이지로 구성돼있습니다.

그리고 아래의 기능들을 제공합니다.

  1. 스팀커넥트 로그인
  2. 토큰 정보 & 홀더 정보 조회
  3. 업데이트된 홀더에게 보팅
  4. 보팅 시, 원하는 댓글 추가 가능
  5. 보팅 내역 조회

image.png

개발 계획

  1. 스팀커넥트 로그인
  2. 토큰 정보 & 홀더 정보 조회
  3. 업데이트된 홀더에게 보팅
  4. 보팅 시, 원하는 댓글 추가 가능
  5. 보팅 내역 조회
  6. 코드 최적화
    1. 속도 개선
    2. 라우팅 문제 해결
    3. redux or mobx 적용
    4. 배포 자동화

판매 계획

이 툴은 JJM의 보팅 자동화를 위해 개발됐습니다.

개발이 어느정도 되다보니 다른 토큰 운영자님들도 사용할만한 툴이 된 것 같습니다.

이 툴을 사용하고 싶은 운영자님이 계시다면, 서비스에 맞게 수정해서 툴을 제공해드리겠습니다.

제가 제공할 수 있는 것은 아래입니다.

  1. 관리자 웹페이지/서버 제공
  2. 운영자 요구에 따른 조건/ 룰 추가
  3. 버그 및 문제 상황 발생 시, 문제 해결

 

Google Cloud Firestore 라이브러리 활용기 #2

cloud firestore를 활용하는 방법은 2가지 있다고 말했었는데요.

https://steempeak.com/kr-dev/@jacobyu/2113-how-to-use-google-firestore

그중에 REST API로 cloud firestore 활용하는 부분을 간단히 소개해봅니다.

Firestore에서 collection, document를 만들어 놓으면, 만든 collection, document에 접근할 수 있는 rest api가 자동으로 만들어집니다.

REST API로 뭘 할수있냐면 간단한 crud작업을 할 수 있습니다.

다큐먼트를 만들고, 읽고 업데이트하고 지울수 있습니다.


Get all

https://firestore.googleapis.com/v1beta1/projects/{project_name}/databases/(default)/documents/test

  • get 요청
  • 이 url은 test에 있는 모든 document를 읽기를 요청합니다.

Get account

https://firestore.googleapis.com/v1beta1/projects/{project_name}/databases/(default)/documents/test/jacobyu

  • get 요청
  • 이 url은 test에 있는 jacobyu 문서를 읽기를 요청합니다.

Add account

https://firestore.googleapis.com/v1beta1/projects/{project_name}/databases/(default)/documents/test?documentId=makeahabit

Json body

{
“fields”: {
“point”: {
“integerValue”: “0”
},
“posting”: {
“integerValue”: “0”
}
}
}

  • post 요청
  • 이 url은 test에다가 makeahabit이라는 다큐먼트 생성을 요청합니다.

Update account

https://firestore.googleapis.com/v1beta1/projects/jacob-test-d826e/databases/(default)/documents/test/jacobyu?updateMask.fieldPaths=posting&updateMask.fieldPaths=point

Json body

{
“fields”: {
“point”: {
“integerValue”: “5”
},
“posting”: {
“integerValue”: “5”
}
}
}

  • PATCH 요청
  • 이 url은 jacobyu의 field postingpoint 내용 수정을 요청합니다.

참고

https://cloud.google.com/firestore/docs/reference/rest/v1/Value

https://firebase.google.com/docs/firestore/reference/rest/?hl=ko

Google Cloud Firestore 라이브러리 활용기

Google cloud firestore에 대한 이미지 검색결과

Cloud Firestore

Cloud Firestore is a fast, fully managed, serverless, cloud-native NoSQL document database that simplifies storing, syncing, and querying data for your mobile, web, and IoT apps at global scale. Its client libraries provide live synchronization and offline support, while its security features and integrations with Firebase and Google Cloud Platform (GCP) accelerate building truly serverless apps.

Google에서 서비스하고 있는 Cloud Firestore에 대해 소개합니다.

Cloud Firestore는 cloud, serverless, NoSQL 데이터베이스입니다.

여러 특징들이 있는데

  • 확장성. 동시 접속이 많아지면 알아서 확장이 된다고 합니다.
  • 보안.
  • 사용자는 로직, 데이터만 고민하면 됩니다.

활용방법

활용 방법은 크게 2가지입니다.

1번. 각 클라이언트에 맞는 라이브러리를 사용하는 것, 그리고 2번. firestore를 활용한 restAPI 서버 구성입니다.

1번. 클라이언트에 맞는 라이브러리

1번 방법은 쉽게 firestore를 사용해볼 수 있으나, 클라이언트 플랫폼이 달라질때마다 그에 맞는 라이브러리를 찾아 써야합니다.

예를 들어, 안드로이드에서 firestore를 사용할 때와 아이폰에서 firestore를 사용할 때 코드가 좀 다르죠.

그리고 firestore에 종속된 코드라서 추후 아마존, 자체서버로 서버를 옮길 경우, 다시 코드를 짜야하죠.

2번. Firestore를 활용한 restAPI 서버

2번 방법은 restAPI를 한 번 구성해놓으면 어떤 플랫폼이든 기존에 rest api 요청하는 코드를 그대로 활용할 수 있습니다.

그리고 아마존, 자체 서버로 옮겨도 그대로 코드를 사용할 수 있죠.

2번 방법은 직접 사용해보고 더 적어보겠습니다.


1번 방법, JJM page에서 활용

보팅 히스토리 부분에서 firestore를 활용해봤습니다.

JJM 보팅을 할 때마다, 보팅 히스토리에 기록합니다.

그리고 그 기록들을 볼 수 있도록 해봤습니다.

이를 위해서 필요한건 딱 2개의 함수만 있으면 됩니다.

쓰기와 읽기죠.

아래처럼 history에 보팅 rate와 보팅을 한 날짜를 add합니다. 이부분이 쓰는 부분입니다.

db.collection("history").add({
rate: _rate,
date: _date
});

이 부분은 history에 담긴 document를 읽어오는 부분입니다.

시간 순서대로 10개만 읽어봤습니다.

db.collection("history").orderBy("date","desc").limit(10)
.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
console.log(doc.id, " => ", doc.data());


느낀점

서버를 잘 몰라도 서버가 필요한 서비스를 제공할 수 있습니다.

단, Firestore의 무료할당량을 초과하면 돈을 내야합니다.

무료할당량을 초과할정도면 돈을 벌 수 있는 서비스이지 않을까?? 생각해봅니다.

읽어주셔서 감사합니다!!!


참고

https://firebase.google.com/docs/firestore/use-rest-api?hl=ko

https://firebase.google.com/docs/database/rtdb-vs-firestore?hl=ko

https://medium.com/get-it-working/get-googles-firestore-working-with-react-c78f198d2364

[JJM Holders] Material UI 적용

안녕하세요.

JJM holders UI에 material ui를 적용해봤습니다.

기존의 사용하던 text, table, button 등을 이미 material style의 text, table, button등으로 바꾸는 작업을 해봤습니다.

기존의 기능은 그대로 유지하면서 페이지를 분리해봤습니다.

  • 스팀 로그인 (네비 바)
  • 홀더 페이지
  • 보팅 페이지

https://passionbull.github.io/jjm/ 에 접속하시면 확인할 수 있습니다.

 

https://ipfs.busy.org/ipfs/QmUpqJZt6jmeCSSGZ8rV67wVwqCeme32XG4evXB8Dr4PbN)DBsWRjz2P

https://ipfs.busy.org/ipfs/QmQYurDsw91hYdLwDo2xiXTWcvBdESPt87dtLqchKsYUfx


Material design에 대한 설명을 가져와봤습니다.

https://material-ui.com/premium-themes/

https://material.io/design/introduction/#principles

https://medium.com/beginners-guide-to-mobile-web-development/a-guide-to-google-material-design-977315149ea5

Material Design is a visual language that synthesizes the classic principles of good design with the innovation of technology and science.

Google named it as material design ( codenamed as “Quantum Paper”) and introduced it in 2014 Google I/O conference.

Google’s Material Design considers “material” as a homogeneous digital fabric in which the material responds according to the user interaction . It provides the certain design standards for developing application across android , web and ios devices.

 


과정

UI를 바꾸는 과정은 생각보다 쉬웠습니다.

먼저 가장 좋은 템플릿을 찾아봤습니다.

https://material-ui.com/premium-themes/

이 사이트에서 무료로 공개된 템플릿 중에 material-dashboard-react라는 것을 활용했습니다.

https://www.creative-tim.com/product/material-dashboard-react?partner=104080

이 템플릿에서 제가 필요한 부분을 사용하고 사용하지 않는부분을 빼면서 작업했습니다.

크게 admin.jsx에 sidebar, navbar, main page, bottom bar로 구성되어있습니다.

UI 구성에는 어려움이 적었습니다. 원하는 UI 구성요소가 이미 있어서 편했습니다.

 


어려웠던 점 & 개선할 점

github page에서 route관련 문제

https://passionbull.github.io/jjm/ 이 route page인데 https://passionbull.github.io/jjm/voting으로는 바로 접속을 못합니다.

접속을 못하는 이유는 github에서는 /jjm/voting을 다른 호스팅으로 생각을 해서 그런가? 싶습니다.

아마 서버에서 호스팅한다면 이런 문제는 없을것 같긴 합니다.

이 문제는 router 쪽 코드에서 파라미터로 이동할 페이지의 이름을 받아서 이동하면 될까? 싶습니다. 개선해야합니다.

스팀 라이브러리 & 네트워크 문제

Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR

홀더들에게 보팅을 하기 위해서는 언제 보팅을 받았고, 최신 글이 뭔지 확인해야합니다. 이 과정에서 정보들을 가져오는데 시간이 걸립니다.

거기다가 스팀에서 계정 정보, 포스팅정보를 가져올 때 에러가 날 경우가 있습니다. 그럴 경우, 몇 개의 계정은 누락될 수 있습니다. 제 핸드폰에서는 잘 되는데, 노트북에서는 에러가 날 때가 있더군요.

해결 방안으로 몇가지 생각하고 있는데

  1. 여러번 로드를 합니다.

  2. 이 부분은 따로 미리미리 서버에서 계정들의 포스팅 정보를 로드해놓는 것이 유용할 것 같습니다.

  3. 다른 방법으로 dsteem 라이브러리를 사용해볼까합니다.

서버비용 없이 서비스 만들기

최대한 서버없이, 관리비용없이 웹페이지를 만들어보고 있습니다.

많은 사용자가 사용하지 않을 것 같아서 github page이면 충분하지 않을까 생각합니다.

그 외에 aws-s3를 사용하긴 했습니다. aws-s3는 스토리지 저장소로, 이미지, 텍스트를 저장해놓을 수 있습니다. 이 스토리지에 보팅할 메시지를 저장해놓고, 보팅을 할 때 이 메시지들을 가져와서 댓글을 작성합니다.

작성될 메시지를 수정하고 싶다면 코드를 수정하지 않고 스토리지 저장소의 보팅 메시지만 수정하면 보팅할때 작성할 메시지를 변경할 수 있습니다.

스테이트 관리

state 관리를 잘 해야겠다. 그리고 코드 분리, 기능과 ui를 분리해보는 것, 설계 등에 더 노력해야겠다 생각하고있습니다. mobx를 공부해서 적용해 볼 예정입니다.


관리자 페이지 개발 계획

  1. 홀더 정보 보여주기
  2. 스팀커넥트 로그인
  3. 보팅 자동화 with 댓글
  4. 보팅할 떄 작성할 댓글을 원격에서 수정
  5. UI 업데이트
  6. 배당 자동화

 

웹 개발을 해보면서 부족함을 많이 느낍니다. ㅜㅜ

앞으로 공부하면서 발전시키도록 하겠습니다.

감사합니다.