• 文書
  • モジュール
    • 前書き
    • 前書き
    • Contents
    • QURASブロックチェーンの構造
    • QURASブロックチェーンのCONSENSUS アルゴリズム
    • QURASブロックチェーンのVIRTUAL MACHINEの構造
    • QURASブロックチェーンの暗号化モジュール
    • QURASブロックチェーンのJSON-RPC
    • QURASブロックチェーンの構築
    • Future Projects
    • FUTUREのプロジェクトおよびサビース
    • 参照
    • 参照
  • テクニカルペーパー
  • 開発リファレンス
  • 日本語
    • EN
    • 日本語
  • 前書き
  • 前書き
  • Contents
  • QURASブロックチェーンの構造
  • QURASブロックチェーンのCONSENSUS アルゴリズム
  • QURASブロックチェーンのVIRTUAL MACHINEの構造
  • QURASブロックチェーンの暗号化モジュール
  • QURASブロックチェーンのJSON-RPC
  • QURASブロックチェーンの構築
  • Future Projects
  • FUTUREのプロジェクトおよびサビース
  • 参照
  • 参照
QURASブロックチェーンの構築

consensusノードはブロックチェーンで生成されるスマートコントラクトをはじめてすべてのトランザクションを検証し、ブロックに対する生成及び検証を進めてQURASブロックチェーンを形成していく役割をする。

QURASブロックチェーンを稼働させるための第1段階として、consensusノードを設定する方法は以下の通りである

ブロックチェーンのエンジンの設定とビルドの方法
まずはQurasブロックチェーンでconsensusノードに利用するウォレットを生成しなければならない。
QURASブロックチェーンのConsensusノードの実行ファイルがあるフォルダを見ると「Config.json」ファイルと「Protocol.json」ファイルが存在するが、まずはこの部分に対する設定を進める。
次はQURASブロックチェーンの初期コインの発行量を設定しなければならない。この部分はエンジンのソースコードのレベルで修正を行わなければならない。
上記の二つの部分に対する設定作業が終われば、エンジンをビルドしてConsensusノードを構築することができる。
設定作業を開始する前に、まずConsensusノードの台数を確定する。
Consensusノードの台数を確定した後、Consensusノードの台数分だけウォレットのアドレスを生成し、該当アドレスのPublic Keyを保管します。
それでは、上記の二つの部分に対する設定方法を具体的に説明する。
ブロックチェーンのエンジンの設定
CONSENSUSノードのウォレットの生成
「Pure-gui」プロジェクトを起動して「new wallet」機能を利用してconsensusノードで利用するウォレットを生成する。
次に生成されたウォレットのpublic keyを保管する。
コインの初期発行量の設定
ブロックチェーンの初期発行量は次のファイルに設定する。
「PureCode/Core/BlockChain.cs」ファイルでコインの初期発行量を設定してブロックチェーンをビルドする。
GetGenesisInitialTxs()関数はブロックチェーンで初めブロック(GenesisBlock)を生成する関数である。この時、下のコードのようにissue transactionをGenesisBlockに追加する。
new IssueTransaction
{
    Attributes = new TransactionAttribute[0],
    Inputs = new CoinReference[0],
    Outputs = new[]
    {
        new TransactionOutput
        {
            AssetId = GoverningToken.Hash,
            Value = GoverningToken.Amount,
            ScriptHash = Contract.CreateMultiSigRedeemScript(StandbyValidators.Length / 2 + 1, StandbyValidators).ToScriptHash()	
        },
        new TransactionOutput
        {
            AssetId = UtilityToken.Hash,
            Value = Fixed8.FromDecimal(888888888),
            ScriptHash = Contract.CreateMultiSigRedeemScript(StandbyValidators.Length / 2 + 1, StandbyValidators).ToScriptHash()
        }
    },
    Scripts = new[]
    {
        new Witness
        {
            InvocationScript = new byte[0],
            VerificationScript = new[] { (byte)OpCode.PUSHT }
        }
    }
}
                                    
上記のコードで初期発行数(赤い色で表示した部分)を指定する。
JSONファイルの設定
CONFIG.JSONファイルの設定
- 「Config.json」ファイルに対する修正
"NodePort": 10034,
"WsPort": 10035,
"UriPrefix": [ "http://*:10030" ]
                                

上記の部分に対する修正を進めることが必要である。

「NodePort」はトランザクションとかブロックの中継および生成、検証のために利用されるP2Pのポート番号である。

「WsPort」はWebsocketを利用したトランザクションとかブロックの中継および生成、検証に利用されるP2Pのポート番号である。

「UriPrefix」の項目はRPCノードの接続情報を示す。

この時、IPの項目に静的にRPCノードのIPを与えることができ、この場合RPCノードを探すのにかかる時間を短縮することができる。

PROTOCOL.JSONファイルの設定
- 「Protocol.json」ファイルに対する修正
"Magic": 7630401,
"AddressVersion": 31,
"AnonymousAddressVersion": 30,
"StealthAddressVersion": 90,
"RingSize": 3,
"StandbyValidators": [
    "03bce33e85cc7a46b96a71b11e3674184df7fd1e48c4e88582c19c7e73cfa2a1af",
    "0222336930d7258710c858f8e4b53bc0ce2720e96b50ace30d05c6995f5de667d4"
],
"SeedList": [
    "54.238.189.190:10034",
    "52.197.125.132:10034" 
],
                                

「Magic」の項目はこのブロックチェーンのIDを示す値である。

「AddressVersion」の項目はTransparentウォレットののアドレスの生成板本(難易度)を示す。

「AnonymousAdressVersion」の項目はAnonymouseウォレットのアドレスの生成板本(難易度)を示す。

「StealthAdressVersion」の項目はステルスウォレットのアドレスの生成板本(難易度)を示す。

「RingSize」の項目はステルスの取引で利用される集まりの大きさを示す。すなわち、一つの集まりにに含まれる末端の個数を示す。

「StandbyValidators」の項目はすでに創造されたconsensusノードウォレットのpublic keyの配列を示す。

「SeedList」の項目はconsensusノードの接続情報を示す。

ある末端が初めてQurasブロックチェーンに接続しようとする場合、「SeedList」の項目のconsensusノードを利用して早くブロックチェーンに接続することができる。

ブロックチェーンのエンジンの構築
CONSENSUSノードの要求スペック

メインネットで起動するためにConsensusノードの要求スペックは下記の通りである。

OS:WindowsServer2012 R2

CPU:vCPUS 4 (2.4GHz)

RAM:16G以上

HardDisk:SSD 500G以上

Network:100Mbps以上の専用線

メインネットで正常な起動のためにConsensusノードは4台以上が必要です。

エンジンの構築

エンジンに対する設定が完了と、「quras-cli」プロジェクトをビルドして最後の「quras-cli.exe」ファイルを生成します。

「quras-cli」プロジェクトがqurasブロックチェーンのConsensusノードである。

Consensusノードに必要なアカウントを創造する。この時、アカウントの個数はConsensusノードの数と一致しなければならない。

すべてのConsensusノードに「quras-cli.exe」を設置して起動させる。

次のコマンドを使ってConsensusノードごとに割り当てられたアカウントを開く。

>>Open Wallet [アカウントのパス]

次にはパスワードを入力する。

すべてのConsensusノードで次のコマンドを実行することによりConsensus機能を起動する。

>>start consensus

上記の手順を用いてConsensusノードを起動させてブロックチェーンの合意アルゴリズムを開始してブロックチェーンを形成して行く。

QURASブロックチェーンのJSON-RPC FUTUREのプロジェクトおよびサビース
  • ブロックチェーンのエンジンの設定とビルドの方法
  • ブロックチェーンのエンジンの設定
  • JSONファイルの設定
  • ブロックチェーンのエンジンの構築
  • CONSENSUSノードの要求スペック
  • エンジンの構築
Tweets by @qurasofficial
Tweets by qurasofficial
  • 文書
  • テクニカルペーパー
  • 開発リファレンス
私たちはここにいる!
コミュニティ
  • Quras Telegram Group
  • Facebook
  • Twitter
更新を取得するためにあなたのEメールアドレスを登録しなさい

Copyright © 2019 Quras. All Rights Reserved.

info@quras.io