IPC API
IPC API, kullanıcıların blockchain'ler için yayın yapmak üzere UNIX domain soketleri oluşturmasına olanak tanır. Blockchain bir vertex/block kabul ettiğinde, bunu bir sokete yayınlar ve içindeki kararlar başka bir sokete yayınlanır.
Bir düğüm, api-ipcs-enabled=true
ile başlatılmışsa bu API'yi yalnızca açık hale getirir.
IPC Mesaj Formatı
Soket mesajları, BigEndian formatında 64 bit bir tam sayı ile başlar ve ardından bu kadar byte gelir.
Örnek:
Gönderme:
[0x41, 0x76, 0x61, 0x78]
Sokete Yazma:
[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x41, 0x76, 0x61, 0x78]
IPC Soket URL Formatı
Soket adları --
biçimindedir; burada `ya
consensusya da
decisions` olarak belirlenir. Konsensüs soketi, vertex ve blokları alırken; kararlar soketi bireysel işlemleri alır.
Format
Bu API, json 2.0
RPC formatını kullanır.
Uç Nokta
/ext/ipcs
Yöntemler
ipcs.publishBlockchain
Bir blockchain kaydetmek, kabul edilen vertex'leri bir Unix domain soketinde yayımlamasını sağlar.
İmza
ipcs.publishBlockchain({blockchainID: string}) -> {consensusURL: string, decisionsURL: string}
blockchainID
, kabul edilen vertex'leri yayınlayacak blockchain'dir.consensusURL
, vertex'lerin yayınlandığı Unix domain soketinin yoludur.decisionsURL
, işlemlerin yayınlandığı Unix domain soketinin yoludur.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "ipcs.publishBlockchain",
"params":{
"blockchainID":"11111111111111111111111111111111LpoYY"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/ipcs
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"decisionsURL": "/tmp/1-11111111111111111111111111111111LpoYY-consensus",
"consensusURL": "/tmp/1-11111111111111111111111111111111LpoYY-decisions"
},
"id": 1
}
ipcs.unpublishBlockchain
Bir blockchain kaydını iptal ederek artık bir Unix domain soketine yayın yapmasını sağlar.
İmza
ipcs.unpublishBlockchain({blockchainID: string}) -> {success: bool}
blockchainID
, artık bir Unix domain soketine yayın yapmayacak blockchain'dir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "ipcs.unpublishBlockchain",
"params":{
"blockchainID":"11111111111111111111111111111111LpoYY"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/ipcs
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"success": true
},
"id": 1
}