Privacy¶
Подсказка
Правила формирования запросов к ноде приведены в разделе Как использовать REST API.
POST /privacy/sendData¶
Запись конфиденциальных данных в хранилище ноды.
Запрос метода:
{
"sender": "3HYW75PpAeVukmbYo9PQ3mzSHdKUgEytUUz",
"password": "apgJP9atQccdBPA",
"policyId": "4gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaC",
"type": "file",
"info": {
"filename":"Service contract #100/5.doc",
"size": 2048,
"timestamp": 1000000000,
"author": "[email protected]",
"comment": "some comments"
},
"data": "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=",
"hash": "FRog42mnzTA292ukng6PHoEK9Mpx9GZNrEHecfvpwmta"
}
Параметры:
sender - блокчейн-адрес, от которого должны рассылаться данные (соответствуют значению параметра «privacy.owner-address» в конфигурационном файле ноды);
password - пароль для доступа к закрытому ключу keystore ноды;
policyId - идентификатор группы, в рамках которой пересылаются данные;
type - тип данных;
info - информация о данных;
data - данные в бинарном представлении;
hash - хеш от данных.
Ответ метода:
{
"senderPublicKey": "Gt3o1ghh2M2TS65UrHZCTJ82LLcMcBrxuaJyrgsLk5VY",
"policyId": "4gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaC",
"sender": "3HYW75PpAeVukmbYo9PQ3mzSHdKUgEytUUz",
"dataHash": "FRog42mnzTA292ukng6PHoEK9Mpx9GZNrEHecfvpwmta",
"proofs": [
"2jM4tw4uDmspuXUBt6492T7opuZskYhFGW9gkbq532BvLYRF6RJn3hVGNLuMLK8JSM61GkVgYvYJg9UscAayEYfc"
],
"fee": 110000000,
"id": "H3bdFTatppjnMmUe38YWh35Lmf4XDYrgsDK1P3KgQ5aa",
"type": 114,
"timestamp": 1571043910570
}
POST /privacy/sendDataV2¶
Вторая версия метода POST /privacy/sendData, позволяющего выполнять поточную загрузку файлов с конфиденциальными данными в хранилище ноды.
Запрос метода:
{
"sender": "3HYW75PpAeVukmbYo9PQ3mzSHdKUgEytUUz",
"policyId": "4gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaC",
"type": "file",
"hash": "e67ad392ab4d933f39d5234asdd96c18c491140e119d590103e7fd6de15623f9",
"info": {
"filename": "Договор об оказании услуг №100/5.doc",
"size": 2048,
"timestamp": 1000000000,
"author": "[email protected]",
"comment": "la la fam"
},
"fee": 15000000,
"password": "12345qwert",
"timestamp": 0
}
Параметры отличаются от параметров метода POST /privacy/sendData только отсутствием поля Data
. Вместо заполнения данного поля вам необходимо выбрать и приложить файл с данными в соответствующем окне Swagger.
Ответ метода:
{
"senderPublicKey": "Gt3o1ghh2M2TS65UrHZCTJ82LLcMcBrxuaJyrgsLk5VY",
"policyId": "4gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaC",
"sender": "3HYW75PpAeVukmbYo9PQ3mzSHdKUgEytUUz",
"dataHash": "FRog42mnzTA292ukng6PHoEK9Mpx9GZNrEHecfvpwmta",
"proofs": [
"2jM4tw4uDmspuXUBt6492T7opuZskYhFGW9gkbq532BvLYRF6RJn3hVGNLuMLK8JSM61GkVgYvYJg9UscAayEYfc"
],
"fee": 110000000,
"id": "H3bdFTatppjnMmUe38YWh35Lmf4XDYrgsDK1P3KgQ5aa",
"type": 114,
"timestamp": 1571043910570
}
GET /privacy/{policy-id}/recipients¶
Получение адресов всех участников, записанных в группу {policy-id}.
Ответ метода:
[
"3NBVqYXrapgJP9atQccdBPAgJPwHDKkh6A8",
"3Mx2afTZ2KbRrLNbytyzTtXukZvqEB8SkW7"
]
GET /privacy/{policy-id}/owners¶
Получение адресов всех владельцев, записанных в группу {policy-id}.
Ответ метода:
[
"3GCFaCWtvLDnC9yX29YftMbn75gwfdwGsBn",
"3GGxcmNyq8ZAHzK7or14Ma84khwW8peBohJ",
"3GRLFi4rz3SniCuC7rbd9UuD2KUZyNh84pn",
"3GKpShRQRTddF1yYhQ58ZnKMTnp2xdEzKqW"
]
GET /privacy/{policy-id}/hashes¶
Получение массива идентификационный хешей, которые записаны в привязке к {policy-id}.
Ответ метода:
[
"FdfdNBVqYXrapgJP9atQccdBPAgJPwHDKkh6A8",
"eedfdNBVqYXrapgJP9atQccdBPAgJPwHDKkh6A"
]
GET /privacy/{policyId}/getData/{policyItemHash}¶
Получение пакета конфиденциальных данных по идентификационному хешу.
Ответ метода:
c29tZV9iYXNlNjRfZW5jb2RlZF9zdHJpbmc=
GET /privacy/{policyId}/getInfo/{policyItemHash}¶
Получение метаданных для пакета конфиденциальных данных по идентификационному хешу.
Ответ метода:
{
"sender": "3HYW75PpAeVukmbYo9PQ3mzSHdKUgEytUUz",
"policy": "4gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaC",
"type": "file",
"info": {
"filename": "Contract №100/5.doc",
"size": 2048,
"timestamp": 1000000000,
"author": "[email protected]",
"comment": "Comment"
},
"hash": "e67ad392ab4d933f39d5723aeed96c18c491140e119d590103e7fd6de15623f1"
}
POST /privacy/forceSync¶
Запрос на принудительное получение пакета конфиденциальных данных.
Ответ метода:
{
"result": "success" // or "error"
"message": "Address '3NBVqYXrapgJP9atQccdBPAgJPwHDKkh6A8' not in policy 'policyName'"
}
POST /privacy/getInfos¶
Запрос на возвращение массива мета-информации о приватных данных по предоставленным идентификатору группы и хешу данных.
Пример запроса:
{ "policiesDataHashes":
[
{
"policyId": "somepolicyId_1",
"datahashes": [ "datahash_1","datahash_2" ]
},
{
"policyId": "somepolicyId_2",
"datahashes": [ "datahash_3","datahash_4" ]
}
]
}
Ответ метода:
{
"policiesDataInfo":[
{
"policyId":"somepolicyId_1",
"datasInfo":[
{
"hash":"e67ad392ab4d933f39d5723aeed96c18c491140e119d590103e7fd6de15623f1",
"sender":"3HYW75PpAeVukmbYo9PQ3mzSHdKUgEytUUz",
"type":"file",
"info":{
"filename":"Contract №100/5.doc",
"size":2048,
"timestamp":1000000000,
"author":"[email protected]",
"comment":"Comment"
}
},
{
"hash":"e67ad392ab4d933f39d5723aeed96c18c491140e119d590103e7fd6de15623f1",
"sender":"3HYW75PpAeVukmbYo9PQ3mzSHdKUgEytUUz",
"type":"file",
"info":{
"filename":"Contract №101/5.doc",
"size":"2048",
"timestamp":1000000000,
"author":"[email protected]",
"comment":"Comment"
}
}
}
]
]
}