Paust DB is a blockchain based a decentralized database platform for continuous timeseries.
Paust DB는 하나의 연속적인 Timeseries를 블록체인 내에서 관리한다. 각 부분적인 Timeseries에 대해서 사용자가 자신의 데이터를 기록하고 있고 사용자는 권한에 따라 허가된 부분적인 Timeseries에 접근하여 데이터를 조회하고 가져올 수 있다. DApp이 이 플랫폼을 이용한다면 블록체인 환경내에서 실시간 데이터 처리를 위해 상태를 저장하거나 다시 이전에 있었던 시계열 데이터를 가져와서 처리하기에 용이하다.
다음 명령어를 통해서 paust-db-client 를 install 하여 local 환경에서 cli 테스트를 할 수 있음
자세한 cli 명령어는 client에서 확인할 수 있음
go get github.com/paust-team/paust-db/client/cmd/paust-db-client
Put
스트림을 이용한 Json data를 Put 하는 example
$ echo '[
{"timestamp":1544772882435375000,"ownerKey":"NwdTf+S9+H5lsB6Us+s5Y1ChdB1aKECA6gsyGCa8SCM=","qualifier":"Y3B1","data":"YWJj"},
{"timestamp":1544772960049177000,"ownerKey":"mnhKcUWnR1iYTm6o4SJ/X0FV67QFIytpLB03EmWM1CY=","qualifier":"bWVt","data":"ZGVm"},
{"timestamp":1544772967331458000,"ownerKey":"aFw+o2z13LFCXzk7HptFoOY54s7VGDeQQVo32REPFCU=","qualifier":"c3BlZWQ=","data":"Z2hp"}
]' | paust-db-client put -s
Read json data from STDIN
put success.
Query
time range 사이의 ownerkey가 mnhKcUWnR1iYTm6o4SJ/X0FV67QFIytpLB03EmWM1CY= 이고, qualifier가 bWVt인 item을 Query하는 example
Paust DB
Paust DB is a blockchain based a decentralized database platform for continuous timeseries.
Paust DB는 하나의 연속적인 Timeseries를 블록체인 내에서 관리한다. 각 부분적인 Timeseries에 대해서 사용자가 자신의 데이터를 기록하고 있고 사용자는 권한에 따라 허가된 부분적인 Timeseries에 접근하여 데이터를 조회하고 가져올 수 있다. DApp이 이 플랫폼을 이용한다면 블록체인 환경내에서 실시간 데이터 처리를 위해 상태를 저장하거나 다시 이전에 있었던 시계열 데이터를 가져와서 처리하기에 용이하다.
Features
Installation(Mac OS)
linux(ubuntu, alpine 등) 지원 예정
Install go
안정성을 위해 1.11.5 설치 추천(https://golang.org/doc/install)
Install rocksdb
Set env for gorocksdb
Install paust-db
Install tendermint
Run
Quick start
Install client cli
다음 명령어를 통해서 paust-db-client 를 install 하여 local 환경에서 cli 테스트를 할 수 있음 자세한 cli 명령어는 client에서 확인할 수 있음
Put
스트림을 이용한 Json data를 Put 하는 example
Query
time range 사이의 ownerkey가 mnhKcUWnR1iYTm6o4SJ/X0FV67QFIytpLB03EmWM1CY= 이고, qualifier가 bWVt인 item을 Query하는 example
Fetch
query를 통하여 받은 id인 eyJ0aW1lc3RhbXAiOjE1NDQ3NzI5NjAwNDkxNzcwMDAsInNhbHQiOjIxNX0= 를 이용해 실제 data를 fetch하는 example
Clustering
Setup
Run paust-db
Network configuration
validators를 genesis.json에 설정하고, config.toml에 통신을 위한 seeds를 설정함
./mytestnet
에 있는 n개의 node 정보를 n개의 node에 각각 Copy한 후(ex. node0 directory는 첫 번째 node, node1 directory는 두 번째 node, ...) 각 node에서 아래의 command 실행Node 추가
non-validator인 node 추가를 위해 초기 설정을 생성한 후 genesis.json 파일과 seeds를 추가하여야 한다.
초기 구축 node의
ip:port/genesis
의 http response로 genesis.json파일을 수정한다. 초기 구축 node의ip:port/status
의 http response에서 node_info object의 id를 얻는다.Docker Support
Contributing
License
Third-party