【초보자용】Blockchain을 Golang로 구현한다

3128 단어 5BlockchaingRPC

【초보자용】Blockchain을 Golang로 구현*한다



가정 레벨


  • 파이썬을 다소 만지는 사람
  • Html,CSS,JS를 만지는 사람
  • 블록 체인의 기초를 알고있는 사람


  • 달성 목표


  • Go를 배우기 (Go로 세우기)
  • BlockChain을 코드에서 배우기 (가시화하기)


  • 타임 스케줄




    시간
    내용


    13:30 -
    개장·접수 개시

    14:00 - 14:05
    오프닝

    14:05 - 14:30
    자기소개 전원

    14:30-16:00
    Go에서 블록체인 구현하기

    16:00 - 16:30
    성과 발표 (프리 토크)

    16:30 - 16:40
    폐쇄 (설문조사)



    자료



    WEBbench 사전 자료 1
    『사전 자료 2』
    「블록 체인 온라인 학습 사이트 만들었으므로 소개」

    메모 메모



    사전 1=Go 설치=

    우선, Go란,,,
    Google이 개발한 간단한 언어(프로그래머의 생산성을 높이기 위해 제작됨)
    특징으로서 표현력 풍부하게 코드를 간결하게 기술하는 것이 가능하고, 경량인 병렬 처리로 멀티 코어나 네트워크화된 복잡한 시스템을 구축하기에 향하고 있는 언어.

    ■ 절차
    Homebrew를 install하고 있기 때문에, 이하 실행.

    terminal.view
    $ brew install go
    〜インストールだらだら〜
    $ go version
    go version go1.12.7 darwin/amd64
    

    install 완료. gRPC 관계상 go 1.6 이상을 install하는 것. (최신판을 install하면 된다.)

    사전 2=gRPC 설치=

    첫째, gRPC는
    Google에서 개발한 RPC(Remote Procedure Call)를 구현하기 위한 프로토콜 중 하나입니다.
    특징으로 Protocol Buffers를 사용하여 데이터를 직렬화하여 고속 통신을 실현할 수 있다.

    ■ 절차
    다음 실행

    terminal.view
    $ go get -u google.golang.org/grpc
    

    Go 용 protoc을 install & PATH를 통과시킵니다.

    terminal.view
    $ go get -u github.com/golang/protobuf/protoc-gen-go
    $ export PATH=$PATH:$GOPATH/bin
    

    서버를 시작하기 위해, 먼저 blockchain.prot를 ~~/go/prot하에 작성.

    blackchain.prot
    syntax = "proto3";
    
    package proto;
    
    // The blockchain service definition
    service Blockchain {
        // Sends a AddBlockRequest Return AddBlockResponse
        rpc AddBlock(AddBlockRequest) returns (AddBlockResponse) {}
        rpc GetBlockChain(GetBlockchainRequest) returns (GetBlockchainResponse) {}
    }
    
    // The request AddBlockRequest containing the data
    message AddBlockRequest {
        string data = 1;
    }
    
    // The request AddBlockResponse containing the hash
    message AddBlockResponse {
        string hash = 1;
    }
    
    message GetBlockchainRequest {}
    
    message Block {
        string hash = 1;
        string prevBlockHash = 2;
        string data = 3;
    }
    
    message GetBlockchainResponse {
        repeated Block blocks = 1;
    }
    

    proto 명령이 설치되지 않았기 때문에,

    terminal.view
    $ brew install protobuf
    

    blockchain.prot 컴파일

    terminal.view
    protoc --go_out=plugins=grpc:. prot/blockchain.prot
    

    좋은 웹페이지 즐겨찾기