다시 한번 블록 체인을 사용하여 뭔가 할 수 없는지 생각해 보았습니다.

출력 강화 주간! - 바로가기(6)

살아 부끄러워 노력하고 토해 왔지만 오늘 일단 정지.

줄거리



Dapp을 만들어 애플리케이션 측면에서 블록체인의 이점을 생각해 보았습니다.

(벌써 1년 강전인가. 되돌아보면 요즘보다 실장력은 엄청 오른 것 같은 생각이 든다.)

이것을 쓴 후는 돈토와 Dapp라든지 스마트 컨트랙트를 만드는 것부터는 멀어지고 있었다. Plasma라든지 오라클이라든지 테크놀로지 관계의 정보는 읽고 있었지만, (개인적으로는) 앞의 기사로 해 버린 느낌이 있어서.
Ethereum 사용하면 마이닝 필수가 되므로, 아무래도 사내 툴이라든가 프라이빗 체인에 사용하면 「계정 만들어 주면 우선 100년분 토큰 배부해 두면 좋을까」 같은 적당한 운용이 되는 것이 키모이고, 이후 KVS 이상의 용도가 떠오르지 않았던 것도 있고.

그럼 어떻게



그리고 상당한 시간이 지난 곳에서 우연히 HyperLedger로 포인트제의 Redmine적인 구현을 보고, 오, 이것이라면 사용할 수 있을 것 같다! 되었다.
  • 마이닝이 필요 없기 때문에 각자의 단말에 geth라든지 metamask라든지 Ethereum용의 환경 만들지 않아도 된다.
  • CochDB가 들어 있기 때문에 KVS보다 더 DB 같은 사용이 가능하다. 거래도 예

  • 그래서 무엇을 만들려고 생각했지만, 역시 본래가 아닌 사용법의 Excel에서 어떻게든 하고 있는 녀석을 어떻게든 하려고. 난 스탠스로서 항상 그냥

    일보라든지 작업 공수 관리를 스마트하게 하는 것, 생각해 냈어

    그래서 만든







    와우 중앙집권---! 라고 부분은 일단 맛있고.

    너무 강력하지만, fabric-sample의 코드에 express를 사이에 두고 조금 만지면 API화할 수 있어, 복수 노드화해 API의 입만 비우면 견고한 DB로서 사용할 수 있다! 멋지다! !
    const express = require("express");
    const bodyParser = require("body-parser");
    const app = express();
    
    (元のfabric-sampleのコード)
    
    app.use((req, res, next) => {
      res.header('Access-Control-Allow-Origin', '*');
      res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
      res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS');
      next();
    });
    
    app.options('*', (req, res) => {
      res.sendStatus(200);
    });
    
    app.use(bodyParser.json());
    
    app.post("/input", (req, res) => {
        const input = req.body;
    
        console.log(`[${new Date()}] request = [${JSON.stringify(input)}]`);
    
        const Make   = input.Make;
        const Model  = input.Model;
        const Colour = input.Colour;
        const Owner  = input.Owner;
        const Key    = input.Key;
    
        console.log(input);
    
        invoke(Key, Make, Model, Colour, Owner);
    
        res.json("invoke!");
    });
    
    app.listen(3000);
    

    원래, 왜 분산 관리 대장이 아니면 안되는지는 대답 할 수 없다고

    GUI 화면은

    로 만들었습니다. html 쓰고 디버그하고 배치하면 Electron에서 Windows/Linux와 크로스 컴파일하여 앱을 만들 수 있으므로 매우 편리합니다!

    이것도 좋을 것 같다. 이번에 해보자.

    다른 기사에도 있지만 Chaincode를 업데이트하거나 잘 움직이지 않았을 때 다시 시작할 때는 굳이 지우지 않으면 잘 되지 않는 것이 많기 때문에 주의입니다. Ethereum과 달리 보안적으로 조심하는 점을 제외하면 암암 배포할 수 있어요! 한 개발은 할 수 없을지도.

    애초에, 어쩌면 코딩으로 에러 & 트라이 개발 밖에 할 수 없는 것이 문제이지만··
    docker rm -f $(docker ps -aq) && docker rmi -f $(docker images | grep dev | awk '{print $3}') && docker volume prune
    
    rm -rf ~/.hfc-key-store ; rm -rf ./hfc-key-store ; rm -rf ./hfc-key-store2 ; cd /root/fabric-samples/first-network ; ./byfn.sh down; cd /root/fabric-samples/fabcar; docker rm -f $(docker ps -aq) ; docker network prune; docker image list | grep fabcar | awk '{print $3}' | xargs docker rmi -
    

    그리고 조사해도 해소할 수 없는 에러로 움직이지 않을 때는 docker와 go의 버전 업을 해 보면 좋을지도 모릅니다. 나의 환경은 이하로 조금 낡은라든지에서도 움직이지 않았습니다.
    # docker version
    Client: Docker Engine - Community
     Version:           19.03.0-rc3
    
    # go version
    go version go1.12.7 linux/amd64
    

    아웃풋만으로도 무언가의 가치가 있다고 생각했지만 그렇지 않았던 것 같다. Qiita의 소셜화가 진행되었기 때문일까-. 좋아! 라고 말하는 사람 같은 것은 발견되지 않았다.
    (내가 매료시키는 방법이 나쁜 것이 가장 요인이지만!!)

    그렇다고는 해도 개인 개발상에서 노하우 내는 것은 계속해 가고 싶다고 생각한다.
    절각, 노하우 전혀 없는 돌파했는데 어디에도 싣지 않는다고 할지도 모르니까.

    좋은 웹페이지 즐겨찾기