[스티밋 공지] 커뮤니티/하이브마인드 개발 진행 상황

in #kr7 years ago (edited)

스티밋 공식계정에서 올린 소식입니다.
https://steemit.com/steem/@steemitblog/update-communities-hivemind


하이브마인드는 새로운 API와 커뮤니티 기능을 탑재한 백엔드 서비스 입니다.
하이브마인드 개발을 담당하고 있는 @roadscape 가 올린 소식입니다.

하이브마인드는 스팀 블록체인 윗단에 올릴 데이터베이스 레이어 입니다. 기존의 미니멀한(=사용하기 불편한) API 때문에 고생할 필요 없도록 개발자를 위해 편리하게 만들고 있습니다. 커뮤니티 기능은 하이브마인드를 이용한 하나의 use case 일 뿐, 하이브마인드의 활용범위는 더욱 넓습니다.

하이브는 개발자 친화적

기존에 쓰이는 스팀 API 는 steemd 노드에서 직접적으로 트렌딩 글목록이나 계정 프로필 정보, 명성점수, 댓글, 팔로워 등등을 가져와 써야 했습니다.
기존에는

  1. C++로 짜여진 steemd 노드 단에서 직접 rate limit 를 조절해야 했고
  2. 코드 수정이 필요할 때 컨센서스 레이어와 너무 가까운 부분을 건드려야 했기에
    애플리케이션 개발자(융통성/간단성)와 블록체인 개발자(보안/안정성)를 분리해야만 했었습니다.

앱 개발자들이 원하는 정보는 대부분 컨센서스쪽과 거리가 먼 것들이라서, 블록체인 노드에 들어있어야 할 이유도 없고 블록체인 노드에 직접 액세스 하는 것도 좋지 않습니다.
모든 관련 정보들을 블록체인이 아닌 데이터베이스에 담아서 항상 블록체인상의 최신 데이터와 동기화를 시켜놓고 로직과 기능을 추가해서 레이어를 올렸습니다. 이것이 하이브 입니다. 파이썬으로 짰기 때문에 개발자들이 API 의 behavior 를 변경해 보고 실험해보기가 쉽습니다.

확실함에 대한 보장

하이브는 컨센서스 부분이랑은 관계가 없으므로 정확한 최신의 정보를 제공해야 한다는 점이 중요합니다. 포크 발생시 어떻게 해결할지가 어려운 부분입니다. 증인 노드에서 메모리상의 Undo 를 하긴 하지만 증인노드 바깥에서는 그것을 바로 알기가 쉽지 않습니다. 최신의 되돌릴수 없는 블록(last irreversible block)은 45초나 지난 정보입니다.
하이브는 이 문제를 개선해서 6초 전의 정보 까지 따라잡습니다. 증인 노드 바깥에서 최신의, 포크 없이 정확한 정보를 얻으려면 추가적인 메카니즘이 들어가야 하고 가끔씩 하이브가 2블록이 넘도록 포크가 날 경우에 복구하는 기능까지 구현했습니다. 앱 개발자는 하이브를 0초 딜레이로 설정해서 쓸 수도 있고(이 경우 포크된 정보를 바로잡는 부분까지 다뤄줘야 함) 완전한 안전성을 위해서는 딜레이를 100블록(5분 정도)으로 설정하면 됩니다.

하이브는 특정한 정보만을 구체적으로 제공합니다

  • 글 : 특정 계정이 쓴 지난 글, 트렌딩, 핫, 최신글 등
  • 커뮤니티 : 관리자의 역할과 액션, 커뮤니티 멤버, 커뮤니티 피드 (스펙 참조)
  • 계정 : 정규화된 프로필 데이터와 명성점수
  • 피드 : 팔로우/언팔로우, 리스팀/리스팀 취소 (네, 리스팀 취소 기능 생깁니다!)

하이브는 블록체인 정보중에 일부만 담게 됩니다. 지갑, 내부마켓거래주문, 에스크로, 등등에 대해서는 하이브 말고 SBDS 나 steemd 에서 가져와야 합니다.

창의성

하이브를 이용해서 창의적인 시도를 해볼 수 있습니다.

  • 리액션, 즐겨찾기
  • 리스팀에 대한 댓글
  • indexing of custom profile data
  • 지난 글들을 카테고리로 분류하기, 지난 글들을 필터링 검색하기
  • 투표/설문조사 (무료투표, 유료투표, 참여시 일정 금액을 소각 시켜야 하는 방식의 투표)
  • 차단 (스팸, 어뷰즈, 성격에 맞지 않는 컨텐츠)
  • crowdsourced metadata
  • mentions indexing
  • 풀 텍스트 검색
  • 통계
  • 팔로우 목록
  • 봇 추적
  • 미니 게임
  • 커뮤니티 봇

이외에도 여러가지 창의적인 시도가 가능합니다.

현재 개발 진행 상황 : 알파

하이브 1.0 : 코어

1.0 버전은 get_state API 와 글목록 가져오기 API 만 돌아가도록 해서 steemit.com 의 condenser 에서 사용해보면서 테스트 합니다.
기존의 steemd API 부분을 하이브마인드로 대체하는 것이 목표입니다.
진행은 거의 완료되었습니다
현재는 프로덕션 런칭과 퍼포먼스 튜닝에 주력하고 있습니다. 그러고 나면 API 테스트를 해봅니다. 테스트가 성공하고 나면 condenser는 하이브를 사용하도록 합니다.
이 과정에 아무 문제가 없다면 사용자들은 아무런 변화도 못느낍니다.

프로덕션 버전의 블록체인을 리인덱스 해서 첫 테스트한 결과를 보면 최신 블록에서 쿼리해오는 시간이 0.03초가 걸렸습니다. 복잡성이 증가하면서 앞으로는 이보다 느려지긴 할겁니다.

현존하는 블록체인중에서 이정도로 큰 용량의 공개 소셜 데이터는 또 없습니다. 스팀은 20,900,000 개 이상의 블록을 생성했으며 285,000,000 개 이상의 트랜잭션을 처리했습니다.
하이브가 가지고 있는 더 큰 잠재력에 대해서는 API 가 확정 되고 나서 포스팅할 예정입니다.

하이브 1.5 : 커뮤니티

어려운 부분이 다 되고나면 하이브 1.5 에서 재미있는 부분이 시작됩니다. 커뮤니티 기능 이후로는 스팀 블록체인 위에서 완전히 새로운 형태의 상호작용이 이루어 집니다. 비슷한 사람들끼리 쉽게 어울리며 큐레이션 하고, 결속을 다지게 될 때
스팀 생태계가 어떻게 진화할지 흥미롭습니다. 태양아래 모든 것에 대해 이야기 나눌 바로 그곳이 스팀 블록체인이 될 것으로 봅니다.

여러분들이 커뮤니티 기능을 기다리고 있다는 것을 알고 있습니다. 아직 커뮤니티 기능을 100% 완료시키기 까지는 할일이 좀 남았지만 현재 1.0 완료 까지는 매우 가까웠습니다.

Stay tuned!

@roadscape, Team Steemit

Sort:  

steem hivemind 와 community 관련 좋은 정보이군요.

빠른 소식 감사합니다.

많은 사람들이 이용하는 하이브마인드되길
응원합니다~!

개발진들이 스티밋을 방치하고있는줄 알있는데 무언가 개발이 되고있다고 하니 희소식이네요^^ 더욱이 사용자 친화적으로 가능성이 생겼다는것에 기대가 됩니다

무슨 소린지 이해하지 못해 그냥 밑으로 내리고 업보트를 눌렀습니다;;

....좋은 소식인거죠?

눈에 띄는 기능이 구현될 날짜는 아직 기약이 없지만 그래도 열심히 하고있다고 하니 좋네요

전문적이야기라 잘은 모르겠지만
리스팀에 대한 댓글!! 이거 계속 아쉬웠는데 반가운 기능이네요ㅎ
매번 잘보고갑니다

와, 기대됩니다.
좋은 정보 고맙습니다.

오 점점좋아지네요~
좋은정보 감사합니다.

오 커뮤니티 , 미니 게임... 뭔가 다양한 클라 앱들이 등장할듯 싶은데요. 팔로잉하고 갑니다.

이른아침부터 유용한 정보 너무 감사드립니다. 회사에 출근해서 아주 재미있게 읽어보았습니다. 앞으로의 스팀잇이 너무나 기대되는군요 !! 좋은하루 되세요~