Doc
Tutorial
API
改訂履歴
- 2018年6月8日:mijin 起動パス修正
- 2018年2月20日:httpのみ動作確認追加
- 2017年9月27日:timestampの値修正
- 2017年9月:説明追加
- 2017年6月:説明追加
- 2017年4月:説明追加
- 2017年3月:初版
mijinの設定ファイル等の説明。
mijinでは以下 Port をデフォルトで使用します。
参考まで他のポートも含めて以下になります。
mijinで各ノード間で疎通を行うためには、ポート 7895 の開放が必要です。
なお、mijinのポートの設定は下記で変更可能です。
# プロトコル、ポートとパスの設定
nem.protocol = http
nem.host =
nem.httpPort = 7895
nem.httpsPort = 7896
nem.webContext = 7778
{
"endpoint": {
"host": "host 番号",
"port": 7895,
"protocol": "http"
},
"identity": {
"name": "任意名",
"public-key": "公開鍵"
}
}
以下手順でサーバにインストールします。
Peer to Peer する ホストの設定ファイルになります。host、port、protocol、identityとして相手のノード名、public-key を記載し全ノードに配置します。ノード自身の host なども記載します。
{
"_info": "this file contains a list of all trusted peers and can be shared",
"knownPeers": [
{
"endpoint": {
"host": "40.74.117.224",
"port": 7895,
"protocol": "http"
},
"identity": {
"name": "mijin1",
"public-key": "838bb9202f1466e176edcd7093e84a602530c09b9f1ac72455b6f399cea3eb4e"
}
}
{
"endpoint": {
"host": "52.187.5.62",
"port": 7895,
"protocol": "http"
},
"identity": {
"name": "mijin2",
"public-key": "c952c6fa705511323b8f60097ab97093d0d862d335a1e8f597d6411d83cf01b2"
}
}
{
"endpoint": {
"host": "13.88.24.92",
"port": 7895,
"protocol": "http"
},
"identity": {
"name": "mijin3",
"public-key": "ef8576c0fdb6ffc9b6e4ae25d1efb9fa313ee4e7b12d87828cedbc9aed52e3fd"
}
}
]
}
| Key | 説明 |
| host | IPアドレス |
| port | 通常は 7895 を使用します |
| protocol | http or https ※ 2018年2月20日時点では http のみの動作確認状況となります。 |
| name | ノード名(任意の名前を半角英数で記載します) |
| public-key | ノードは1つのアカウントとして起動します。起動するアカウントの public-key を記載します |
新規にノードを追加する場合、1つのノードに追加すると各ノードが追加された設定を読み取り、ファイルを自動更新し、Peer to Peer を開始します。
ノード単体の設定ファイルになります。
| Key | 説明 |
| nem.shortServerName | サーバーの略称(半角英数での任意名) |
| nem.folder | ログやdbファイルの配置場所 |
| nem.maxThreads | スレッド・プール設定(デフォルト: 500) この設定数の増減によりCPUとメモリに影響 |
| nem.protocol | 通信プロトコル(http or https) |
| nem.host | ホストのIPアドレス |
| nem.httpPort | http 通信時のポート |
| nem.httpsPort | https 通信時のポート |
| nem.webContext | websocket 通信時のポート |
| nem.apiContext | 未使用 |
| nem.homePath | 未使用 |
| nem.shutdownPath | /shutdown 固定 |
| nem.useDosFilter | DOSフィルタ設定
|
| nem.nonAuditedApiPaths | 使用を許可するAPI |
| nem.network | mijinnet 固定 |
| nis.shouldAutoBoot | ノードの自動起動 |
| nis.bootKey | ノードの秘密鍵(ノードは1つのアカウントとして起動するので、そのアカウントの秘密鍵を設定) |
| nis.bootName | ノード名(半角英数による任意名) |
| nis.shouldAutoHarvestOnBoot | ノードが起動時に自動でハーベストするかどうかの設定 |
| nis.additionalHarvesterPrivateKeys | ハーベスとしたXEMを受け取ることができるアカウントの秘密鍵 |
| nis.nodeLimit | ブロードキャストするノード数 |
| nis.timeSyncNodeLimit | 同期するノードの数 |
| nis.useBinaryTransport | トランザクション送信時、バイナリデータで送信するかどうか |
| nis.useNetworkTime | nis のタイムスタンプを使うかどうか
|
| nis.ipDetectionMode | 自動でIPを検出するかどうかの設定
|
| nis.unlockedLimit | ハーベストロック解除のアカウント数。この数が大きいとハーベストに影響 |
| nis.allowedHarvesterAddresses | ハーベストを許可するアドレス(パイプ区切り)※空白の場合制限なし |
| nis.maxTransactions | ブロック作成時に他のノードから共有するブロック最大数 |
| nis.maxTransactionsPerBlock | 1つのブロックに含まれる最大トランザクション数 |
| nis.blockGenerationTargetTime | 次のブロックを生成するまでの間隔時間(この設定はブロック生成時の難易度を計算するためのもので、設定した秒数でブロックが作られるわけではありません) |
| nis.blockChainRewriteLimit | フォークを解消できる最大ブロック数 |
| nis.additionalLocalIps | ローカルノードのIPアドレス |
| nis.transactionHashRetentionTime | トランザクションのハッシュ保持時間(-1 = 永久、最小36) |
| nis.optionalFeatures | ノードのオプション機能
|
| nis.blockChainFeatures | ブロックチェーンの合意形成(パイプ区切り)
|
| nis.delayBlockLoading | ブロックのロード遅延処理をするかどうか |
| nis.ignoreFees | トランザクション手数料を無料にするかどうか(無料にする場合 true を全ノードに対して設定する) |
新規にノードを追加する場合、1つのノードに追加すると各ノードが追加された設定を読み取り、ファイルを自動更新し、Peer to Peer を開始します。
以下手順で再起動します。
設定等変更の際は、mijinを再起動ください。
ps aux | grep java kill -9 プロセス番号 // mijin 起動 $ screen -S mijin -d -m /home/[アカウント名]/mijin/startnem.sh または $ ./startnem.sh & または $ nohup ./startnem.sh &
config-user.properties の nem.folder で設定されている場所に info レベルでログが出力されます。
※通常 /home/mijin/nem/nis/logs への配置になります。
H2 Database にブロックやトランザクションが保存されます。
保存場所は config-user.properties の nem.folder で設定されている場所で、通常 /home/username/nem/nis/data/nis5_mijinnet.h2.db として保存されます。
もし何らかの理由で他のノードからのブロックを同期しなくなった場合、上記ファイルをリネームまたは削除ください。
※mijin再起動後、再び他のノードからブロックを供給し、同期を開始します。
timestampは、nemの起源を0としたネットワークタイムとなります。
mijinは同じネットワークタイムで稼働していることを前提に成り立っているため、nem 起源を 0 としたネットワークタイムを使用することを推奨しております。
現在の時間に置き換える場合は、1427587585を加算して日時に変換してください。
※システムのタイムスタンプを使用する場合は、config-user.properties の nis.useNetworkTime を false に設定してください。
mijinが稼働するサーバ状況を確認できます。
| type | 説明 |
| 1 | 検証結果 |
| 2 | Heartbeat 結果 |
| 4 | ステータス |
NISが稼働しているかどうかを確認します。
例:http://<ホストのIPアドレス>:7895/heartbeat
{
"code": 1,
"type": 2,
"message": "ok"
}
NISの状態を確認します。
例:http://<ホストのIPアドレス>:7895/status
{
"code": 6,
"type": 4,
"message": "status"
}
| code | 説明 |
| 0 | 不明なステータス |
| 1 | 停止中 |
| 2 | 起動中 |
| 3 | 動作中 |
| 4 | ローカルノードが起動中 |
| 5 | ローカルノードが動作中 |
| 6 | ローカルノードが同期している |
| 7 | ローカルノードがリモートのノードを認識できません |
| 8 | データベースからブロックチェーンロード中(この除隊中はリクエスト処理はできません) |
アカウントには、2つの異なるアカウントタイプがあります。
秘密鍵により生成されます。アカウントの署名はこの秘密鍵により行われます。
秘密鍵が奪われることはアカウントが乗っとこられたことを意味します。そのため、秘密鍵の管理が重要になります。
通常アカウントが複数集まってできるアカウントです。通常署名者の署名が複数集まることでアクションを開始できるアカウントです。
仮にマルチシグアカウントの秘密鍵が盗まれても、複数署名者の署名が集まらない限りアクションを開始することはできません。
| アカウントについて | |
|---|---|
| address | 各アカウントには固有のアドレスが割当られます。アドレスの長さは常に40文字でbase32にエンコードされた文字です。 |
| balance | マイクロNEMの残高になります。123456789は123.456789 NEMを所有を意味します。 |
| importance | 各アカウントには重要度が割当られています。0から1の間で設定されます。重要度を計算するためのアルゴリズムは非公開です。 |
| publicKey | アカウントに割り当てられる公開鍵になります。 |
| label | 現在は未使用です。 |
| harvestedBlocks | ハーベストしたブロックの数になります。 |
各アカウントには以下メータデータが含まれます。
| アカウントのメタ情報 | |
|---|---|
| status | アカウントのハーベスト状況になります。 |
| remoteStatus | ハーベストは他のアカウントに委任することができ、委任先のハーベスト状況になります。 |
| cosignatoryOf | アカウントが署名しているマルチシグアカウントのアカウント情報になります。 |
各トランザクションには以下情報が含まれます。
| トランザクションに含まれる情報 | |
|---|---|
| timeStamp | ネメシスブロック(最初に作られたブロック)が作成時から経過秒数。未来日時のタイムスタンプは受け入れられません。トランザクションの検証時にタイムスタンプの検証を行います。 |
| signature | トランザクション署名。署名者の公開鍵によって検証を行います。 |
| fee | 取引の手数料。手数料が高いほど取引の優先順位が高くなります。高優先度のトランザクションは優先度の低いトランザクションよりも前にブロックに含まれます。 |
| type | 以下トランザクションタイプになります。
|
| deadline | トランザクションの期限。ネメシスブロック(最初に作られたブロック)が作成時から経過秒数で返却される。期限が過ぎてもブロックに含まれなかったトランザクションは削除されます。 |
| version |
構造のバージョンになります。
|
| signer | トランザクションを作成したアカウントの公開鍵。16進文字列としてエンコードされます。 |
トランザクションのタイプに応じて、以下フィールドが追加されます。
| 追加フィールド | |
|---|---|
| recipient | 受信者のアドレスになります。 |
| message | トランザクションにメッセージを付与している場合に表示します。 |
| payload | トランザクションにメッセージが含まれている場合、実際のメッセージを格納します。payloadの最大サイズは1024バイト(16進数にしたときに 2048byte)になります。 |
| type | メッセージのtype(以下2種の設定が可能です)。
|
トランザクションには以下メタデータが付与されます。
| トランザクションのメタ情報 | |
|---|---|
| height | トランザクションが含まれれるブロックの高さ。 |
| id | トランザクションID。 |
| hash | トランザクションのハッシュ。 |
ハーベスト情報は以下フィールドによって管理されます。
| ハーベスト情報 | |
|---|---|
| timeStamp | ネメシスブロックの作成から経過した秒数。 |
| id | ブロックのID。 |
| difficulty | ブロックの難易度。 |
| totalFee | ブロックをハーベストして集められた合計手数料。 |
| height | ハーベストされたブロックの高さ。 |
アカウントの重要度については以下情報を取得できます。
| アカウントの重要度情報 | |
|---|---|
| address | アカウントのアドレス。 |
| importance | アカウントの重要性を示す構造体(以下 isSet、score、ev、heightを格納)。 |
| isSet | "score"、"ev"、"height"のフィールドが使用可能かどうか。1 の場合、すべて使用可能。0 の場合、各フィールドの使用不可。 |
| score | アカウントの重要性になります。 |
| ev | 重要度のページランク。ページランクは0と1の間の範囲で割当られます。 |
| height | 重要度の計算が行われたブロックの高さ。 |
アカウントを作成します。
例:http://<ホストのIPアドレス>:7895/account/generate
※このAPIを使用するには config.properties の nis.additionalLocalIps に作成する IPアドレスを追加する必要があります。
{
"privateKey": "00913ff9a33c48796a83051de0b6b6b43c5f97ca4cdab6d8x4790bb042cdecdfb2",
"address": "MDOWXJUB5DGHD3PJ4M7LMXJ3YY4VFEZ2ZUFOYROK",
"publicKey": "4dc790779f406642471b4ea303cf5e5153677476e771df93346fb07f81539f2c"
}
| Key | 説明 |
|---|---|
| privateKey | ブロックチェーン上で使用するアカウントの秘密鍵(電子署名作成時などに使用) |
| address | ブロックチェーン上で使用するアカウントのアドレス |
| publicKey | ブロックチェーン上で使用するアカウントの公開鍵 |
アカウントのアドレスからアカウント情報を取得します。
例:http://<ホストのIPアドレス>:7895/account/get?address=MDOWXJUB5DGHD3PJ4M7LMXJ3YY4VFEZ2ZUFOYROK
| パラメータ | 説明 |
| address | アドレス |
{
"meta": {
"cosignatories": [],
"cosignatoryOf": [],
"status": "LOCKED",
"remoteStatus": "INACTIVE"
},
"account": {
"address": "MDOWXJUB5DGHD3PJ4M7LMXJ3YY4VFEZ2ZUFOYROK",
"harvestedBlocks": 0,
"balance": 0,
"importance": 0,
"vestedBalance": 0,
"publicKey": null,
"label": null,
"multisigInfo": {}
}
}
| Key | 説明 |
|---|---|
| account | アカウント情報 |
| address | アカウントのアドレス |
| harvestedBlocks | ハーベストしたブロック数 |
| balance | アカウントの残高 |
| importance | アカウントの重要度 |
| vestedBalance | アカウントの残高(確定分) |
| publicKey | アカウントの公開鍵(取引している場合に表示) |
| label | 未使用(null) |
| multisigInfo | マルチシグ情報 |
| meta | アカウントのメタ情報 |
| cosignatories | 該当アカウントがマルチシグアカウントの場合、署名者として登録されているアカウント情報 |
| cosignatoryOf | 該当アカウントが署名しているマルチシグアカウント情報 |
| status | アカウントのハーベスト状態 |
| remoteStatus | リモート環境でのハーベスト状態
|
アカウントの公開鍵からアカウント情報を取得します。
例:http://<ホストのIPアドレス>:7895/account/get/from-public-key?publicKey=5c8127ef691b3f4c06811a15932869db917430593ae342156836cea6831a25b7
| パラメータ | 説明 |
| publicKey | アカウントの公開鍵 |
{
"meta": {
"cosignatories": [],
"cosignatoryOf": [],
"status": "LOCKED",
"remoteStatus": "INACTIVE"
},
"account": {
"address": "MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE",
"harvestedBlocks": 0,
"balance": 0,
"importance": 0,
"vestedBalance": 0,
"publicKey": "5c8127ef691b3f4c06811a15932869db917430593ae342156836cea6831a25b7",
"label": null,
"multisigInfo": {}
}
}
※レスポンス結果の構造体は「/account/get」と同様
アカウントのアドレスから委託アカウント情報を取得します。
例:http://<ホストのIPアドレス>:7895/account/get/forwarded?address=MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE
| パラメータ | 説明 |
| address | アカウントのアドレス |
{
"meta": {
"cosignatories": [],
"cosignatoryOf": [],
"status": "LOCKED",
"remoteStatus": "INACTIVE"
},
"account": {
"address": "MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE",
"harvestedBlocks": 0,
"balance": 0,
"importance": 0,
"vestedBalance": 0,
"publicKey": null,
"label": null,
"multisigInfo": {}
}
}
※レスポンス結果の構造体は「/account/get」と同様
アカウントの公開鍵から委託アカウント情報を取得します。
例:http://<ホストのIPアドレス>:7895/account/get/forwarded/from-public-key?publicKey=bdd8dd702acb3d88daf188be8d6d9c54b3a29a32561a068b25d2261b2b2b7f02
| パラメータ | 説明 |
| publicKey | アカウントの公開鍵 |
{
"meta": {
"cosignatories": [],
"cosignatoryOf": [],
"status": "LOCKED",
"remoteStatus": "INACTIVE"
},
"account": {
"address": "MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE",
"harvestedBlocks": 0,
"balance": 0,
"importance": 0,
"vestedBalance": 0,
"publicKey": null,
"label": null,
"multisigInfo": {}
}
}
※レスポンス結果の構造体は「/account/get」と同様
アカウントのアドレスからアカウント情報を取得します。
例:http://<ホストのIPアドレス>:7895/account/status?address=MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE
| パラメータ | 説明 |
| address | アカウントのアドレス |
{
"cosignatories": [],
"cosignatoryOf": [],
"status": "LOCKED",
"remoteStatus": "INACTIVE"
}
※レスポンス結果の構造体は「/account/get」の meta 情報と同様
アカウントが受金したトランザクション情報。ブロックチェーンに含まれた最大25のトランザクションを返却。
例:http://<ホストのIPアドレス>:7895/account/transfers/incoming?address=MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE&hash=949583a20ebdfdcb58277eb42fef3e66e9e6bbfc47304d8741a82c68f7c53a2
| パラメータ | 説明 |
| address | アカウントのアドレス(必須) |
| hash | トランザクションのハッシュ(オプション) |
| id | トランザクションのID(オプション) |
{
"data": [
{
"meta": {
"innerHash": {},
"id": 11,
"hash": {
"data": "589e8ae35140279dbc88a5bdd81560d25ab6e81f5b9f9365402c7fd861579625"
},
"height": 494
},
"transaction": {
"timeStamp": 73970241,
"amount": 3000000,
"signature": "4cce8a1da26faed80b95d9ca223ee4f01ff21bbf40d1d64c845904d99219b680fbd92ccd4d4a78d973a626a77557f0853c36378433aba418a1ebadd998b8c80e",
"fee": 0,
"recipient": "MAENTDV3YWZZTWNAG7COHS3QNXQCJJQTUBF2MY2S",
"type": 257,
"deadline": 74030241,
"message": {},
"version": 1610612737,
"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
}
}
]
}
| Key | 説明 |
|---|---|
| meta | 各トランザクションのメタ情報 |
| id | トランザクションID |
| height | トランザクションが含まれているブロックの高さ |
| hash | data: トランザクションのハッシュデータ |
| transaction | トランザクションの詳細 |
| timeStamp | トランザクションのタイムスタンプ(ネメシスブロックの作成から経過した秒数) |
| amount | 送信者から受信者へ転送されたマイクロNEMの量 |
| signature | トランザクションの電子署名 |
| fee | トランザクションの手数料 |
| recipient | 受信者のアドレス |
| type | トランザクションタイプ( // 以下は10進数)
|
| deadline | トランザクションの期限(ネメシスブロックの作成から経過した秒数) |
| message |
|
| version | mijin ネットワークのバージョン
|
| signer | トランザクションの署名者の公開鍵 |
アカウントが送金したトランザクション情報。ブロックチェーンに含まれた最大25のトランザクションを返却。
例:http://<ホストのIPアドレス>:7895/account/transfers/outgoing?address=MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE&hash=949583a20ebdfdcb58277eb42fef3e66e9e6bbfc47304d8741a82c68f7c53a22
| パラメータ | 説明 |
| address | アカウントのアドレス(必須) |
| hash | トランザクションのハッシュ(オプション) |
| id | トランザクションのID(オプション) |
{
"data": [
{
"meta": {
"innerHash": {},
"id": 12,
"hash": {
"data": "eb00f38e66feab7c71c1cac52f70592908a2ddeb943919a4354a897d50c82c23"
},
"height": 499
},
"transaction": {
"timeStamp": 73970313,
"amount": 1000000,
"signature": "bdc12c6d3a8cae96dde0537638f475fbb5f892241cc3e5a4b823aea4b773f2e3398568eb30443a4c9220102f762268eef5931a97e812fc18421ef8234b471306",
"fee": 0,
"recipient": "MCIDKKNJZGDQMYNAW6TFBTIXRKFUN5WE3MGCPNEW",
"type": 257,
"deadline": 74030313,
"message": {},
"version": 1610612737,
"signer": "cdb0e4ab9704432da1bce869d7d13642e33707bf9e7bbca926b7e8101efd7e6d"
}
}
]
}
※レスポンス結果の構造体は「/account/transfers/incoming」と同様
アカウントの送受金のトランザクション情報。ブロックチェーンに含まれた最大25のトランザクションを返却。
例:http://<ホストのIPアドレス>:7895/account/transfers/all?address=MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE&hash=949583a20ebdfdcb58277eb42fef3e66e9e6bbfc47304d8741a82c68f7c53a22
| パラメータ | 説明 |
| address | アカウントのアドレス(必須) |
| hash | トランザクションのハッシュ(オプション) |
| id | トランザクションのID(オプション) |
{
"data": [
{
"meta": {
"innerHash": {},
"id": 12,
"hash": {
"data": "eb00f38e66feab7c71c1cac52f70592908a2ddeb943919a4354a897d50c82c23"
},
"height": 499
},
"transaction": {
"timeStamp": 73970313,
"amount": 1000000,
"signature": "bdc12c6d3a8cae96dde0537638f475fbb5f892241cc3e5a4b823aea4b773f2e3398568eb30443a4c9220102f762268eef5931a97e812fc18421ef8234b471306",
"fee": 0,
"recipient": "MCIDKKNJZGDQMYNAW6TFBTIXRKFUN5WE3MGCPNEW",
"type": 257,
"deadline": 74030313,
"message": {},
"version": 1610612737,
"signer": "cdb0e4ab9704432da1bce869d7d13642e33707bf9e7bbca926b7e8101efd7e6d"
}
},
{
"meta": {
"innerHash": {},
"id": 11,
"hash": {
"data": "589e8ae35140279dbc88a5bdd81560d25ab6e81f5b9f9365402c7fd861579625"
},
"height": 494
},
"transaction": {
"timeStamp": 73970241,
"amount": 3000000,
"signature": "4cce8a1da26faed80b95d9ca223ee4f01ff21bbf40d1d64c845904d99219b680fbd92ccd4d4a78d973a626a77557f0853c36378433aba418a1ebadd998b8c80e",
"fee": 0,
"recipient": "MAENTDV3YWZZTWNAG7COHS3QNXQCJJQTUBF2MY2S",
"type": 257,
"deadline": 74030241,
"message": {},
"version": 1610612737,
"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
}
}
]
}
※レスポンス結果の構造体は「/account/transfers/incoming」と同様
アカウントのブロックに含まれていないトランザクションを確認。
例:http://<ホストのIPアドレス>:7895/account/unconfirmedTransactions?address=MASM3LKYE6KJYHX5RII72UY5RZQNVH5EOKF6V4CZ
| パラメータ | 説明 |
| address | アカウントのアドレス(必須) |
{
"data": [
{
"meta": {
"data": "27e01e5c22fef40816bd3c6c28610df121a50b99526ce4fe16546e4b3f840850"
},
"transaction": {
"timeStamp": 73970515,
"signature": "cb41d4dc91d6dafff1135badb9298ac26258c840aa3ca21f42bb661c14be7fb1f23786c13cd078ab9443cb3a6c4d4aaa56cacc3e3b8ad1011528b070b4c3a40e",
"fee": 100000000,
"type": 4100,
"deadline": 73974115,
"version": 1610612737,
"signatures": [],
"signer": "cdc06d4a01ecdab63585348c767ee0ae83bbe0eac14fa739a2fe2583c811c14f",
"otherTrans": {
"timeStamp": 73970515,
"amount": 1000000,
"fee": 100000000,
"recipient": "MCZSFYJTHU4WUEBKFBNV7SSCC2TONXZR2AYUUSMF",
"mosaics": [
{
"quantity": 1,
"mosaicId": {
"namespaceId": "company",
"name": "checked"
}
},
{
"quantity": 100000000,
"mosaicId": {
"namespaceId": "nem",
"name": "xem"
}
}
],
"type": 257,
"deadline": 73974115,
"message": {},
"version": 1610612738,
"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
}
}
}
]
}
※レスポンス結果の構造体は「/account/transfers/incoming」と同様
アカウントの重要度一覧。
例:http://<ホストのIPアドレス>:7895/account/importances
{
"data": [
{
"address": "MASMHHBO4JHSKSA7XMQCIXQRDVPH3Q6PTLNPAPP7",
"importance": {
"score": 0.1,
"ev": 0,
"isSet": 1,
"height": 359
}
},
{
"address": "MASMHHBFKA24LNUNHCPDDZUO4YQTSXQUFBXNH52T",
"importance": {
"score": 0.1,
"ev": 0,
"isSet": 1,
"height": 359
}
},
{
"address": "MAMIJINSVHBIPKT5XCFHJYGWL7WVRZQ6U7JG7LLN",
"importance": {
"isSet": 0
}
},
{
"address": "MASM5TN4UO4ZG22IRLTBDPO5HE74WXSFA4DTOT5Q",
"importance": {
"score": 0.1,
"ev": 0,
"isSet": 1,
"height": 359
}
},
{
"address": "MASMHHC4277DD4RWRO4ZN5A3HVCLKLJTYEA76AOS",
"importance": {
"score": 0.1,
"ev": 0,
"isSet": 1,
"height": 359
}
}
]
}
| Key | 説明 |
|---|---|
| address | アドレス |
| importance | 重要度に関する情報 |
| score | アカウントの重要度(0 - 1) |
| ev | ページランク(0 - 1) |
| isSet | 0 or 1。
|
| height | 重要度が計算されたブロックの高さ |
アカウントが作成したネームスペース。
例:http://<ホストのIPアドレス>:7895/account/namespace/page?address=MCIDKKNJZGDQMYNAW6TFBTIXRKFUN5WE3MGCPNEW&parent=mijin.metal
| パラメータ | 説明 |
| address | アカウントのアドレス(必須) |
| parent | 親ネームスペース(オプション) |
| id | ネームスペースID(オプション) |
| pageSize | ネームスペースのページ番号(オプション) |
{
"data": [
{
"owner": "MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR",
"fqn": "company",
"height": 62184
}
]
}
| Key | 説明 |
|---|---|
| fqn | ネームスペース名(ネームスペースID) |
| owner | ネームスペースの所有者 |
| height | ネームスペースが開始されたブロックの高さ |
アカウントが作成したモザイク情報。
例:http://<ホストのIPアドレス>:7895/account/mosaic/definition/page?address=MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR&parent=mijin.metal.coins
| パラメータ | 説明 |
| address | アカウントのアドレス(必須) |
| parent | 親ネームスペース(オプション) |
| id | モザイクID(オプション) |
{
"data": [
{
"creator": "fd5e60ae79d151b675e74f5efa3f72080a3d6658032e0e29a8ade645b2fd33cd",
"description": "検品したかどうかのチェック",
"id": {
"namespaceId": "company",
"name": "checked"
},
"properties": [
{
"name": "divisibility",
"value": "0"
},
{
"name": "initialSupply",
"value": "9000000000"
},
{
"name": "supplyMutable",
"value": "false"
},
{
"name": "transferable",
"value": "true"
}
],
"levy": {
"fee": 1,
"recipient": "MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR",
"type": 1,
"mosaicId": {
"namespaceId": "nem",
"name": "xem"
}
}
}
]
}
| Key | 説明 |
|---|---|
| creator | モザイク作成者の公開鍵 |
| id | モザイクID |
| namespaceId | ネームスペースのID |
| name | モザイク名 |
| description | モザイクの説明 |
| properties | モザイクの属性 |
| name | モザイクの属性名 |
| value | モザイクの属性値 |
アカウントが持つモザイク情報。
例:http://<ホストのIPアドレス>:7895/account/mosaic/owned?address=MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR
| パラメータ | 説明 |
| address | アカウントのアドレス(必須) |
{
"data": [
{
"quantity": 7607000324,
"mosaicId": {
"namespaceId": "nem",
"name": "xem"
}
},
{
"quantity": 7000000000,
"mosaicId": {
"namespaceId": "company",
"name": "checked"
}
}
]
}
| Key | 説明 |
|---|---|
| mosaicId | モザイクID |
| namespaceId | ネームスペースのID |
| name | モザイク名 |
| quantity | モザイクの数量 |
アカウントの履歴情報を取得。
例:http://bigalice3.nem.ninja:7890/account/historical/get?address=MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR&startHeight=17592&endHeight=17592&increment=1
※このAPIを使用するには config.properties の nis.optionalFeatures に HISTORICAL_ACCOUNT_DATA を追加する必要があります。
| パラメータ | 説明 |
| address | アカウントのアドレス(必須) |
| startHeight | ブロックの高さ(から) |
| endHeight | ブロックの高さ(まで) |
| increment | インクリメントするブロックの高さ(最大1000まで設定可能) |
{
[
{
"height": 17592,
"address": "MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR",
"balance": 509676000000,
"vestedBalance": 100999147150,
"unvestedBalance": 408676852850,
"importance": 0.00008857563463531297,
"pageRank": 0.0007605047835049349
}
]
}
| Key | 説明 |
|---|---|
| address | アカウントのアドレス |
| pageRank | ページランク |
| balance | アカウントの残高 |
| importance | アカウントの重要度 |
| vestedBalance | アカウントの残高確定分 |
| unvestedBalance | アカウントの残高未確定分 |
| height | ブロックの高さ |
ブロックは各ノードが作成します。ブロックにはトランザクションが含まれます。
各ノードは他のノードのブロックを検証後、自身のブロックチェーンにブロックを同期します。
タイムスタンプが使用されるたびに、共通で使用しているネットワーク時間が更新されます。
ブロックには以下データがあります。
| ブロックについて | |
|---|---|
| timeStamp | ブロックが作成されたネットワークの時刻。 |
| signature | ブロックを作成した署名。 |
| prevBlockHash | 前のブロックのsha3-256ハッシュを16進数文字列。 |
| type |
ブロックのタイプ。
|
| transactions | トランザクションの構造体 |
| version |
|
| signer | ブロックを生成したアカウントの公開鍵。 |
| height | ブロックの高さ。 |
現在のブロックチェーンの高さを取得
例:http://<ホストのIPアドレス>:7895/chain/height
{
"height": 42799
}
| Key | 説明 |
|---|---|
| height | ブロックの高さ |
現在のブロックチェーンのスコアを取得。スコアが高いほど良好なブロックチェーンになり、他のノードは高いスコアのブロックチェーンを取得します。
例:http://<ホストのIPアドレス>:7895/chain/height
{
"score": "18722d5a7d590deb"
}
| Key | 説明 |
|---|---|
| score | ブロックのスコア |
最新のブロックチェーンのブロックを取得します。
例:http://<ホストのIPアドレス>:7895/chain/last-block
{
"timeStamp": 73971235,
"signature": "63a4e50b967658aeb467fe49cb3453ade7f8095c0c66defa05cf07c05a489b098c156f680ac284fff3b16e90541d328f344dccbffa6520893d2b2f0de1455c0c",
"prevBlockHash": {
"data": "b3629fcfd24670d86f42762521ed5cd0729417952c6d20edcb926b5ce82c842e"
},
"type": 1,
"transactions": [],
"version": 1610612737,
"signer": "1ea5f20b3bbd03bfe118ecd1aea7d93f819ab100c3b7500b92959c9b79c1075c",
"height": 563
}
| Key | 説明 |
|---|---|
| timeStamp | トランザクション(ネメシスブロックの作成から経過した秒数) |
| signature | ブロックの署名者 |
| prevBlockHash | data : 前のブロックのハッシュ値 |
| type | ブロックのタイプ
|
| transactions | トランザクションの配列 |
| version | ブロックのバージョン(4バイト整数として 1610612737 固定) |
| signer | ブロックをハーベストしたアカウントの公開鍵 |
| height | ブロックの高さ |
ノードとはネットワーク内でデータをやりとりする実体を意味し、各ノードにはアカウントが割当られています。
各ノードにはエンドポイントで使用されるIPアドレス、ポート、通信プロトコルが設定されています。
ノードには以下ステータスがあります。
| ノードのステータスついて | |
|---|---|
| active | 正常に通信可能 |
| inactive | 接続できないノード |
| busy | 接続可能なノードであるにもかかわらず制限時間内に応答がないノード |
| failure | 通信中に重大なエラーしたノード(通信プロトコルが違う、アカウントが異なるなど) |
| unknown | 情報不明のノード |
ノードに関しては以下フィールドがあります。
| ノードについて | |
|---|---|
| name | ノード名 |
| public-key | ノードの公開鍵 |
| protocol | 通信プロトコル |
| host | エンドポイントIPアドレス |
| application | ノードを実行しているアプリケーション名 |
| version | アプリケーションのバージョン |
| platform | ノードを実行しているアプリケーション名 |
ノード情報を取得します。
例:http://<ホストのIPアドレス>:7895/node/info
{
"metaData": {
"features": 3,
"application": null,
"networkId": 96,
"version": "0.6.84-BETA",
"platform": "Oracle Corporation (1.8.0_141) on Linux"
},
"endpoint": {
"protocol": "http",
"port": 7895,
"host": "153.125.224.131"
},
"identity": {
"name": "mijin01",
"public-key": "1ea5f20b3bbd03bfe118ecd1aea7d93f819ab100c3b7500b92959c9b79c1075c"
}
}
| Key | 説明 |
|---|---|
| metaData | ノードのメタ情報 |
| features | ノードが持つfeatureの数 |
| application | アプリケーション名 |
| networkId | ネットワークID |
| version | アプリケーションのバージョン |
| platform | OS、Javaのバージョン |
| endpoint | エンドポイント情報 |
| protocol | プロトコル |
| port | ポート |
| host | ホスト |
| identity | エンドポイント情報 |
| name | ノード名 |
| public-key | ノードを起動しているアカウントの公開鍵 |
ノードの詳細情報を取得します。
例:http://<ホストのIPアドレス>:7895/node/extended-info
{
"node": {
"metaData": {
"features": 3,
"application": null,
"networkId": 96,
"version": "0.6.84-BETA",
"platform": "Oracle Corporation (1.8.0_141) on Linux"
},
"endpoint": {
"protocol": "http",
"port": 7895,
"host": "153.125.224.131"
},
"identity": {
"name": "mijin01",
"public-key": "1ea5f20b3bbd03bfe118ecd1aea7d93f819ab100c3b7500b92959c9b79c1075c"
}
},
"nisInfo": {
"currentTime": 73971489,
"application": "NEM Deploy",
"startTime": 73964662,
"version": "0.6.84-BETA",
"signer": null
}
}
| Key | 説明 |
|---|---|
| nisInfo | ノードの詳細情報 |
| currentTime | 現在のブロックチェーン上のタイムスタンプ(ネメシスブロックが作成されてからの経過秒数) |
| application | ノードが起動しているアプリケーション名 |
| startTime | アプリケーションの開始時間(ネメシスブロックが作成されてからの経過秒数) |
| version | アプリケーションのバージョン |
| signer | アプリケーションで使用される電子署名の署名者 |
※レスポンス結果の「node」箇所は「/node/info」と同様
近接のすべてのノードの情報を取得します。
例:http://<ホストのIPアドレス>:7895/node/peer-list/all
{
"inactive": [],
"failure": [],
"busy": [],
"active": [
{
"metaData": {
"features": 0,
"application": null,
"networkId": 0,
"version": "0.0.0",
"platform": null
},
"endpoint": {
"protocol": "http",
"port": 7895,
"host": "81.224.224.156"
},
"identity": {
"name": "mijinnode1",
"public-key": "838bb9202f1466e176edcd7093e84a602530c09b9f1ac72455b6f399cea3eb4e"
}
},
{
"metaData": {
"features": 1,
"application": null,
"networkId": 96,
"version": "0.6.84-BETA",
"platform": "Oracle Corporation (1.8.0_121) on Linux"
},
"endpoint": {
"protocol": "http",
"port": 7895,
"host": "81.224.224.157"
},
"identity": {
"name": "mijinnode2",
"public-key": "c952c6fa705511323b8f60097ab97093d0d862d335a1e8f597d6411d83cf01b2"
}
}
]
}
近接ノードでアクティブなノードの情報を取得します。
例:http://<ホストのIPアドレス>:7895/node/peer-list/reachable
{
"data": [
"metaData":
{
"application": "NIS",
"version": "0.4.33-BETA",
"platform": "Oracle Corporation (1.8.0_25) on Windows 8"
},
"endpoint":
{
"protocol": "http",
"port": 7890,
"host": "81.224.224.156"
},
"identity":
{
"name": "Alice",
"public-key": "a1aaca6c17a24252e674d155713cdf55996ad00175be4af02a20c67b59f9fe8a"
},
]
}
※レスポンス結果は「/node/info」と同様
トランザクションをブロードキャストするために選択されたノードの情報を取得します。
例:http://<ホストのIPアドレス>:7895/node/peer-list/active
{
"data": [
{
"node": {
"metaData": {
"features": 3,
"application": null,
"networkId": 96,
"version": "0.6.84-BETA",
"platform": "Oracle Corporation (1.8.0_141) on Linux"
},
"endpoint": {
"protocol": "http",
"port": 7895,
"host": "27.133.131.154"
},
"identity": {
"name": "mijin01",
"public-key": "442159366e13c9b899e53d4f0b64e6139910a6679fc30d6941e234de13f587e5"
}
},
"syncs": 26,
"experience": {
"s": 3,
"f": 0
}
},
{
"node": {
"metaData": {
"features": 3,
"application": null,
"networkId": 96,
"version": "0.6.84-BETA",
"platform": "Oracle Corporation (1.8.0_141) on Linux"
},
"endpoint": {
"protocol": "http",
"port": 7895,
"host": "27.133.153.187"
},
"identity": {
"name": "mijin04",
"public-key": "42bb164fc20ae290985c3dc865c9bd576a867271d1f891e2013e7d85279dabc3"
}
},
"syncs": 0,
"experience": {
"s": 4,
"f": 0
}
}
]
}
※レスポンス結果は「/node/info」と同様
近接するノードで最も高いブロックの高さ
例:http://<ホストのIPアドレス>:7895/node/active-peers/max-chain-height
{
"height": 43920
}
| Key | 説明 |
|---|---|
| height | 近接ノードで最も高いブロックの高さ |
ノード間でのやりとり時にやりとりした経験値を内部に保持します。別ノードからノードの経験値を取得します。
例:http://<ホストのIPアドレス>:7895/node/experiences
{
"data": [
{
"node": {
"metaData": {
"features": 3,
"application": null,
"networkId": 96,
"version": "0.6.84-BETA",
"platform": "Oracle Corporation (1.8.0_141) on Linux"
},
"endpoint": {
"protocol": "http",
"port": 7895,
"host": "27.133.131.154"
},
"identity": {
"name": "mijin01",
"public-key": "442159366e13c9b899e53d4f0b64e6139910a6679fc30d6941e234de13f587e5"
}
},
"syncs": 712,
"experience": {
"s": 86,
"f": 0
}
},
{
"node": {
"metaData": {
"features": 3,
"application": null,
"networkId": 96,
"version": "0.6.84-BETA",
"platform": "Oracle Corporation (1.8.0_141) on Linux"
},
"endpoint": {
"protocol": "http",
"port": 7895,
"host": "27.133.154.6"
},
"identity": {
"name": "mijin02",
"public-key": "f7321ebe78dc09dac511893984ac1e194dfcffa3c3c3224192156ee94c304780"
}
},
"syncs": 792,
"experience": {
"s": 70,
"f": 0
}
},
{
"node": {
"metaData": {
"features": 0,
"application": null,
"networkId": 0,
"version": "0.0.0",
"platform": null
},
"endpoint": {
"protocol": "http",
"port": 7895,
"host": "153.125.224.131"
},
"identity": {
"name": "mijin03",
"public-key": "1ea5f20b3bbd03bfe118ecd1aea7d93f819ab100c3b7500b92959c9b79c1075c"
}
},
"syncs": 0,
"experience": {
"s": 0,
"f": 0
}
}
]
}
| Key | 説明 |
|---|---|
| syncs | リモートノードとの同期回数 |
| experience | ノードの経験値 |
| s | リモートノードとの正常な通信数 |
| f | リモートノードと通信に失敗した数 |
※レスポンス結果の「node」箇所は「/node/info」と同様
ネームスペースを使うと、独自のコインを発行することができます。
ネームスペースは唯一の名前を使用することができます。
ネームスペースの文字列は、ルートのネームスペースで16文字、サブのネームスペースは64文字です。
ネームスペースはアルファベットで始まる文字に限ります。
「nem, user, account, org, com, biz, net, edu, mil, gov and info.」は使用不可になります。
ネームスペースは3階層まで作成可能です。
最上位のネームスペースを取得します。
例:http://<ホストのIPアドレス>:7895/namespace/roots?id=26754&pageSize;=35
| パラメータ | 説明 |
| id | 最上位のネームスペースのID |
| pagesize | 返却されるネームスペースのオブジェクト数(オプション)※デフォルト値は25、最小値は5、最大値は100 |
{
"data": [{
"meta":{
"id":26264,
},
"namespace":{
"fqn": "mijin.metal.coins",
"owner": TD3RXTHBLK6J3UD2BH2PXSOFLPWZOTR34WCG4HXH",
"height": 13465
}
},{
"meta":{
"id":25421,
},
"namespace":{
"fqn": "gimre.vouchers",
"owner": TDGIMREMR5NSRFUOMPI5OOHLDATCABNPC5ID2SVA",
"height": 12392
}
}]
}
| Key | 説明 |
|---|---|
| meta | ネームスペースのメタ情報 |
| id | ネームスペースID |
| namespace | ネームスペース情報 |
| fqn | ネームスペース名 |
| owner | ネームスペースの所有者 |
| height | 所有権を取得時のブロックの高さ |
指定されたネームスペースの情報を取得します。
例:http://<ホストのIPアドレス>:7895/namespace?namespace=mijin.metal.coins
| パラメータ | 説明 |
| namespace | ネームスペース名 |
{
"owner": "MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR",
"fqn": "company",
"height": 62184
}
※レスポンス結果は「/namespace/root/page」の「namespace」と同様
独自コインを流通させるための定義になります。
モザイクはルートのネームスペースに属する必要があります。
モザイク名は最大32文字で作成可能です。
モザイク名はアルファベットで始まる文字に限ります。
以下プロパティを設定できます。
| プロパティ | 説明 |
| mosaic id | モザイク名。32文字まで。 |
| description | 概要。512文字まで。 |
| properties | 以下設定可能なプロパティ |
| initialSupply | 初期共有量。デフォルト1000。最大9,000,000,000 |
| divisibility | 小数点何以下に分割できるかの設定。3の場合、0.001 まで分割可能。 |
| supplyMutable | モザイクの供給量変更可否。true or false。 |
| transferable | 定義したモザイクを作成者以外にも転送可能とするかどうか。デフォルト値は true。 |
| levy | モザイク送金手数料の設定 |
| fee type | 以下2つのタイプで設定可能。
|
| recipient | 手数料受取者 |
| mosaic id | 手数料として支払われるモザイク名。 |
| fee | 手数料。 |
指定されたモザイクの情報を取得します。
例:http://<ホストのIPアドレス>:7895/namespace/mosaic/definition/page?namespace=mijin.metal.coins
| パラメータ | 説明 |
| namespace | ネームスペース名 |
| id | 最上位のモザイクID(オプション) |
| pagesize | 返却する mosaic のオブジェクト数(オプション) |
{
"data": [
{
"meta": {
"id": 2
},
"mosaic": {
"creator": "fd5e60ae79d151b675e74f5efa3f72080a3d6658032e0e29a8ade645b2fd33cd",
"description": "検品したかどうか",
"id": {
"namespaceId": "company",
"name": "checked"
},
"properties": [
{
"name": "divisibility",
"value": "0"
},
{
"name": "initialSupply",
"value": "9000000000"
},
{
"name": "supplyMutable",
"value": "false"
},
{
"name": "transferable",
"value": "true"
}
],
"levy": {
"fee": 1,
"recipient": "MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR",
"type": 1,
"mosaicId": {
"namespaceId": "nem",
"name": "xem"
}
}
}
}
]
}
※レスポンス結果は「/account/mosaic/definition/page」と同様
トランザクションとは、あるアカウントからアカウントへの送金を意味します。トランザクションは最初はunconfirmed状態となりネットワークにプールされます。ブロックに含まれることでトランザクションは処理され、指定されたアカウントへ送金処理が行われます。
ブロックチェーンはフォーク(分岐)がしばしば起こります。フォークしたブロックチェーンはロールバックして分岐を解消します。ロールバックできるブロックの最大値は初期デフォルト値では360に設定されています。
トランザクションの作成は以下2つの方法があります。
{"data": "01010000010000604781b90320000000462ee976890916e54f…0000000000000000000000000000000000000000000000000",
"signature": "8584d64446316cafbfa6ea92b772a21cdcb18b72b36ae5f91f…d8605c09c06a3faf905f02de8b68b1069e49e631382c70a09"}
方法 1 と方法 2 の違いは、方法 1の場合、トランザクション生成者の秘密鍵がネットワーク上に流れませんが、方法 2 の場合はトランザクション生成者の秘密鍵がネットワーク上にそのまま流れることになります。
方法 2 を取る場合は、直接クライアント側からPOSTするのではなく、サーバ内で行うなどの対応が望ましいです。
JSONの構造体をシリアライズした data と電子署名からトランザクションを生成します。
JSONの構造体からトランザクションを生成します。
hash 値からトランザクションを取得します。
例:http://<ホストのIPアドレス>:7895/transaction/get?hash=949583a20ebdfdcb58277eb42fef3e66e9e6bbfc47304d8741a82c68f7c53a2
| パラメータ | 説明 |
| hash | トランザクションのハッシュ |
目的に応じて入力フォームの内容をJSON構造体にし、transaction/prepare-announce をコールすることでトランザションが生成されます。
各目的に応じたJSON構造体は以下になります。
あるアカウントからあるアカウントへ送金する際のJSON構造体です。
{
"transaction": {
"timeStamp": 73986093,
"amount": 100,
"fee": 0,
"recipient": "MAENTDV3YWZZTWNAG7COHS3QNXQCJJQTUBF2MY2S",
"type": 257,
"deadline": 73989693,
"message": {
"payload": "",
"type": 1
},
"version": 1610612737,
"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
},
"privateKey": "dd214532115faa938e2982ef0b6a743b2b421fdfx20337b8d05da006235864722"
}
あるアカウントからあるアカウントへ送金する際のJSON構造体です。バージョン2はモザイクも送金可能です。
{
"transaction": {
"timeStamp": 73987329,
"amount": 1000000,
"fee": 0,
"recipient": "MCIDKKNJZGDQMYNAW6TFBTIXRKFUN5WE3MGCPNEW",
"type": 257,
"deadline": 73990929,
"message": {
"payload": "",
"type": 1
},
"version": 1610612738,
"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74",
"mosaics": [
{
"mosaicId": {
"namespaceId": "company",
"name": "checked"
},
"quantity": 2
},
{
"mosaicId": {
"namespaceId": "nem",
"name": "xem"
},
"quantity": 0
}
]
},
"privateKey": "dd214532115faa938e2982ef0b6x2743b2b421fdf90337b8d05da006235864722"
}
| Key | 説明 |
| timeStamp | タイムスタンプ(ネメシスブロックが生成されたときからの時間) |
| amount | 送金料 |
| fee | 手数料 |
| recipient | 受取アカウントのアドレス |
| type | 257(固定) |
| deadline | トランザクションのデットライン |
| message | メッセージを送信する場合に使用 |
| payload | メッセージ(1024byte、16進数化時 2048byte まで) |
| type | メッセージを暗号化するかどうか
|
| version | ネットワークバージョン(1610612737 固定) |
| signer | トランザクションを作成した公開鍵 |
| mosaics | モザイクのオブジェクト |
| mosaicId | モザイクID |
| namespaceId | モザイクのネームスペース |
| name | モザイク名 |
| quantity | 送金するモザイクの量(3分割の場合、ミリ秒単位で送金可能) |
| privateKey | 送信者の秘密鍵 |
マルチシグアカウントとは、マルチシグトランザクションを生成するアカウントになり、複数の署名者によって作られるアカウントです。
3人の署名が必要なマルチシグトランザクションを作成する場合、署名する3人の公開鍵によりマルチシグアカウントを作成し、そのアカウントへ送金を行います。
{
"transaction": {
"timeStamp": 73987491,
"deadline": 73991091,
"fee": 0,
"type": 4097,
"version": 1610612737,
"modifications": [
{
"modificationType": 1,
"cosignatoryAccount": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
},
{
"modificationType": 1,
"cosignatoryAccount": "cdc06d4a01ecdab63585348c767ee0ae83bbe0eac14fa739a2fe2583c811c14f"
},
{
"modificationType": 1,
"cosignatoryAccount": "ed664e20a3b721f6c798d4cf48d74c4b35363cdb438aad8b2485a678adf42185"
},
{
"modificationType": 1,
"cosignatoryAccount": "bc8bc985c790a4187188f240a2a0feecaa93ae48203df24d99799c6729798d66"
},
{
"modificationType": 1,
"cosignatoryAccount": "a29e61009f13d4818072b95c3fab0648692095557403dde7c6b198cd9f7810c4"
}
],
"minCosignatories": {
"relativeChange": 5
},
"signer": "bc97d0365b67c56cc05ecea06f82ac80510e62a93237ba32777dcfc0c12d96a7"
},
"privateKey": "6ad7fad521b316c6cddf4ab939fa28c977ba6d31x9b63ba34426a82186d29d28"
}
| Key | 説明 |
| modificationType | マルチシグ署名者の追加 or 削除
|
| cosignatoryAccount | 署名者のアカウント公開鍵 |
マルチシグアカウント署名者のいずれかが、マルチシグトランザクションを生成することができます。
{
"transaction": {
"timeStamp": 73988038,
"fee": 0,
"type": 4100,
"deadline": 73991638,
"version": 1610612737,
"otherTrans": {
"timeStamp": 73988038,
"amount": 1000000,
"fee": 0,
"recipient": "MAENTDV3YWZZTWNAG7COHS3QNXQCJJQTUBF2MY2S",
"type": 257,
"deadline": 73991638,
"message": {
"payload": "",
"type": 1
},
"mosaics": [
{
"mosaicId": {
"namespaceId": "company",
"name": "checked"
},
"quantity": 1
},
{
"mosaicId": {
"namespaceId": "nem",
"name": "xem"
},
"quantity": 0
}
],
"signer": "bc97d0365b67c56cc05ecea06f82ac80510e62a93237ba32777dcfc0c12d96a7",
"version": 1610612738
},
"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
},
"privateKey": "dd214532115faa938e2982ef0b6a743b2b477fdf90337b8d05da006235864722"
}
マルチシグトランザクションへ署名するトランザクションになります。
{
"transaction": {
"timeStamp": 73988363,
"fee": 0,
"type": 4098,
"deadline": 73991963,
"version": 1610612737,
"signer": "ed664e20a3b721f6c798d4cf48d74c4b35363cdb438aad8b2485a678adf42185",
"otherHash": {
"data": "c1484373c099c91fb4fcdb9bc4aae020360e96911f9526d381a3494599b4baf3"
},
"otherAccount": "MCPW6EIDKATNYBQOCJM266CNTI22WHW7IDIF5Y7E"
},
"privateKey": "a8207ae07e71e16c1a6c985669804b1f1c980ddd794d2627e00a88d8a46c0c32"
}
マルチシグアカウントの署名者を追加、削除するトランザクションになります。
{
"transaction":
{
"timeStamp": 9111526,
"fee": 6000000,
"type": 4100,
"deadline": 9154726,
"version": 1610612737,
"signer": "6083df7119d43e815ed2967c795f806f6b73f8f92a56a7611e3848816ec50958",
"otherTrans": {
"timeStamp": 9111526,
"fee": 16000000,
"type": 4097,
"deadline": 9154726,
"version": 1610612737,
"signer": "a1aaca6c17a24252e674d155713cdf55996ad00175be4af02a20c67b59f9fe8a",
"modifications": [
{
"modificationType": 1,
"cosignatoryAccount": "6c66ea288522990db7a0a63c9c20f532cdcb68dc3c9544fb20f7322c92ceadbb"
}
],
"minCosignatories" : {
"relativeChange": 1
}
},
"signatures":[
]
},
"privateKey": "00be34fdb20a9f6fed51376f0bab9f25ea7b78d610324588a6b203d0a1a6db4bc1"
}
ネームスペースを作成します。
{
"transaction": {
"timeStamp": 73986205,
"fee": 0,
"type": 8193,
"deadline": 73989805,
"rentalFeeSink": "MAMESPACEWH4MKFMBCVFERDPOOP4FK7MTCZTG5E7",
"rentalFee": 5000000000,
"newPart": "company",
"parent": null,
"version": 1610612737,
"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
},
"privateKey": "dd214532115faa938e2982ef0b6a743b2b421fdfpx337b8d05da006235864722"
}
| Key | 説明 |
| timeStamp | 時間 |
| fee | 手数料 |
| type | 8193(固定) |
| deadline | トランザクションの有効期限 |
| version | 1610612737(固定) |
| signer | 作成者の公開鍵 |
| rentalFeeSink | レンタル料が払い出されるアカウントのアドレス(MAMESP-ACEWH4-MKFMBC-VFERDP-OOP4FK-7MTCZT-G5E7 固定) |
| rentalFee | レンタル料 |
| newPart | ネームスペース名 |
| parent | 親ネームスペース名 |
モザイクを作成します。
{
"transaction": {
"timeStamp": 73986393,
"fee": 0,
"type": 16385,
"deadline": 73989993,
"version": 1610612737,
"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74",
"creationFee": 5000000000,
"creationFeeSink": "MBMOSAICOD4F54EE5CDMR23CCBGOAM2XSKYHTOJD",
"mosaicDefinition": {
"creator": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74",
"description": "検品チェック用",
"id": {
"name": "checked",
"namespaceId": "company"
},
"levy": {
"fee": 0,
"mosaicId": {
"name": "xem",
"namespaceId": "nem"
},
"recipient": "MASM3LKYE6KJYHX5RII72UY5RZQNVH5EOKF6V4CZ",
"type": 1
},
"properties": [
{
"name": "divisibility",
"value": "0"
},
{
"name": "initialSupply",
"value": "900000000"
},
{
"name": "supplyMutable",
"value": "false"
},
{
"name": "transferable",
"value": "true"
}
]
}
},
"privateKey": "dd214532115faa938e2982ef0b6a743b2b421fdf90x37b8d05da006235864722"
}
| Key | 説明 |
| timeStamp | 時間 |
| fee | 手数料 |
| type | 16385(固定) |
| deadline | トランザクションの有効期限 |
| version | 1610612737(固定) |
| signer | 作成者の公開鍵 |
| creationFee | 作成手数料 |
| creationFeeSink | 手数料が転送されるアドレス(※ MBMOSA-ICOD4F-54EE5C-DMR23C-CBGOAM-2XSKYH-TOJD 固定) |
| mosaicDefinition | モザイクの定義 |
| creator | モザイクの定義者の公開鍵 |
| id |
namespaceId ... 対応するネームスペース name ... モザイクの定義名 |
| description | モザイクの説明 |
| properties | モザイクの定義 |
| divisibility | モザイクを分割できる最小のサブユニット |
| initialSupply | 最初に作成されるモザイクの数量(最大 9,000,000,000) |
| supplyMutable | 供給量の変更可否(true or false) |
| transferable | モザイク作成者以外に転送可能かどうか(true or false) |
| levy | モザイク転送時の手数料設定 |
| type |
|
| recipient | 手数料受け取り者のアドレス |
| mosaicId | 手数料として徴収するモザイク namespaceId ... ネームスペース name ... モザイク名 |
モザイクの定義を変更する場合は、モザイク作成と同じJSON構造体で行うことができます。
ただし変更できるのは説明(description)部分になり、プロパティを変更する場合はそのモザイクすべてを所有している必要があります。
作成したモザイクが未送信であれば、モザイク作成と同じ jsonの構造体でモザイクの供給量を変更できます。