daemon-rpc.md 36.4 KB
Newer Older
zofiazinha's avatar
zofiazinha committed
1
## Wprowadzenie
2

zofiazinha's avatar
zofiazinha committed
3
Poniżej znajduje się lista funkcji RPC demona monerod, ich wejścia i wyników oraz przykłady.
4

zofiazinha's avatar
zofiazinha committed
5
Wiele funkcji RPC korzysta z interfejsu demona JSON RPC, podczas gdy inne używają własnego interfejsu, jak przedstawiono poniżej.
6

7
Uwaga: "jednostki atomowe (@atomic-unit)" dotyczą najmniejszego ułamka 1 XMR, zgodnie z implementacją monerod. **1 XMR = 1e12 jednostek atomowych.**
8

zofiazinha's avatar
zofiazinha committed
9
### [Metody JSON RPC](#json-rpc-methods):
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

* [getblockcount](#getblockcount)
* [on_getblockhash](#on_getblockhash)
* [getblocktemplate](#getblocktemplate)
* [submitblock](#submitblock)
* [getlastblockheader](#getlastblockheader)
* [getblockheaderbyhash](#getblockheaderbyhash)
* [getblockheaderbyheight](#getblockheaderbyheight)
* [getblock](#getblock)
* [get_connections](#get_connections)
* [get_info](#get_info)
* [hard_fork_info](#hard_fork_info)
* [setbans](#setbans)
* [getbans](#getbans)

zofiazinha's avatar
zofiazinha committed
25
### [Pozostałe metody RPC](#other-daemon-rpc-calls):
26
27
28
29
30
31
32
33
34
35
36

* [/getheight](#getheight)
* [/gettransactions](#gettransactions)
* [/is_key_image_spent](#is_key_image_spent)
* [/sendrawtransaction](#sendrawtransaction)
* [/get_transaction_pool](#get_transaction_pool)
* [/stop_daemon](#stop_daemon)


---

zofiazinha's avatar
zofiazinha committed
37
## Metody JSON RPC
38

zofiazinha's avatar
zofiazinha committed
39
Większość funkcji RPC monerod korzysta z interfejsu demona `json_rpc`, aby żądać różnych informacji. Wszystkie te metody mają podobną strukturę, na przykład:
40
41
42
43
44
45
46
47
48
49
50
51

```
IP=127.0.0.1
PORT=18081
METHOD='getblockheaderbyheight'
PARAMS='{"height":912345}'
curl \
    -X POST http://$IP:$PORT/json_rpc \
    -d '{"jsonrpc":"2.0","id":"0","method":"'$METHOD'","params":'$PARAMS'}' \
    -H 'Content-Type: application/json'
```

zofiazinha's avatar
zofiazinha committed
52
Niektóre metody zawierają parametry, a inne nie. Poniżej znajdują się przykłady każdej z funkcji JSON RPC.
53
54
55

### **getblockcount**

zofiazinha's avatar
zofiazinha committed
56
Sprawdza ile bloków znajduje się w najdłuższym łańcuchu znanym węzłowi.
57

zofiazinha's avatar
zofiazinha committed
58
Wejście: *brak*.
59

zofiazinha's avatar
zofiazinha committed
60
Wynik:
61

zofiazinha's avatar
zofiazinha committed
62
63
* *count* - niepodpisana liczba całkowita; liczba bloków w najdłuższym łańcuchu znanym węzłowi.
* *status* - ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
64

zofiazinha's avatar
zofiazinha committed
65
Przykład:
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblockcount"}' -H 'Content-Type: application/json'  

{  
  "id": "0",  
  "jsonrpc": "2.0",  
  "result": {  
    "count": 993163,  
    "status": "OK"  
  }  
}  
```


### **on_getblockhash**

zofiazinha's avatar
zofiazinha committed
83
Wyszukuje hasz bloku za pomocą jego wysokości.
84

zofiazinha's avatar
zofiazinha committed
85
Wejście:
86

zofiazinha's avatar
zofiazinha committed
87
* wysokość bloku (liczba całkowita szeregu o długości 1)
88

zofiazinha's avatar
zofiazinha committed
89
Wynik:
90

zofiazinha's avatar
zofiazinha committed
91
* hasz bloku (ciąg)
92

zofiazinha's avatar
zofiazinha committed
93
Przykład:
94
95
96
97
98
99
100
101
102
103
104
105
106
107

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"on_getblockhash","params":[912345]}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6"
}
```


### **getblocktemplate**

zofiazinha's avatar
zofiazinha committed
108
Wejście:
109

zofiazinha's avatar
zofiazinha committed
110
111
* *wallet_address* - ciąg; Adres portfela, który otrzyma transakcję coinbase, jeśli blok zostanie pomyślnie wydobyty.
* *reserve_size* - niepodpisana liczba całkwita; Wielkość rezerwy.
112

zofiazinha's avatar
zofiazinha committed
113
Wynik:
114

zofiazinha's avatar
zofiazinha committed
115
116
117
118
119
120
* *blocktemplate_blob* - ciąg; Blob, na którym próbuje się wydobyć nowy blok.
* *difficulty* - niepodpisana liczba całkowita; Trudność następnego bloku.
* *height* - niepodpisana liczba całkowita; Wysokość, na której się wydobywa.
* *prev_hash* - ciąg; Hasz ostatniego bloku, po którym wydobywa się następny blok.
* *reserved_offset* - niepodpisana liczba całkowita; Zarezerwowany offset.
* *status* - ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
121

zofiazinha's avatar
zofiazinha committed
122
Przykład:
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblocktemplate","params":{"wallet_address":"44GBHzv6ZyQdJkjqZje6KLZ3xSyN1hBSFAnLP6EAqJtCRVzMzZmeXTC2AHKDS9aEDTRKmo6a6o9r9j86pYfhCWDkKjbtcns","reserve_size":60}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "blocktemplate_blob": "01029af88cb70568b84a11dc9406ace9e635918ca03b008f7728b9726b327c1b482a98d81ed83000000000018bd03c01ffcfcf3c0493d7cec7020278dfc296544f139394e5e045fcda1ba2cca5b69b39c9ddc90b7e0de859fdebdc80e8eda1ba01029c5d518ce3cc4de26364059eadc8220a3f52edabdaf025a9bff4eec8b6b50e3d8080dd9da417021e642d07a8c33fbe497054cfea9c760ab4068d31532ff0fbb543a7856a9b78ee80c0f9decfae01023ef3a7182cb0c260732e7828606052a0645d3686d7a03ce3da091dbb2b75e5955f01ad2af83bce0d823bf3dbbed01ab219250eb36098c62cbb6aa2976936848bae53023c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f12d7c87346d6b84e17680082d9b4a1d84e36dd01bd2c7f3b3893478a8d88fb3",
    "difficulty": 982540729,
    "height": 993231,
    "prev_hash": "68b84a11dc9406ace9e635918ca03b008f7728b9726b327c1b482a98d81ed830",
    "reserved_offset": 246,
    "status": "OK"
  }
}
```


### **submitblock**

zofiazinha's avatar
zofiazinha committed
144
Zatwierdza wydobyty blok do sieci.
145

zofiazinha's avatar
zofiazinha committed
146
Wejście:
147

zofiazinha's avatar
zofiazinha committed
148
* Dane blobu bloku - ciąg
149

zofiazinha's avatar
zofiazinha committed
150
Wynik:
151

zofiazinha's avatar
zofiazinha committed
152
* *status* - ciąg; Status zatwierdzenia bloku.
153
154
155
156


### **getlastblockheader**

zofiazinha's avatar
zofiazinha committed
157
Dzięki tej metodzie łatwo jest znaleźć informacje o nagłówku ostatniego bloku. Nie wymaga żadnych wejść.
158

zofiazinha's avatar
zofiazinha committed
159
Wejście: *brak*.
160

zofiazinha's avatar
zofiazinha committed
161
Wynik:
162

zofiazinha's avatar
zofiazinha committed
163
164
165
166
167
168
169
170
171
172
173
174
175
* *block_header* - struktura zawierająca informacje o nagłówku bloku.
  * *depth* -  niepodpisana liczba całkowita; liczba bloków następujących po danym bloku w łańcuchu, większa liczba oznacza starszy blok.
  * *difficulty* - niepodpisana liczba całkowita; siła sieci Monero na podstawie mocy wydobycia.
  * *hash* - ciąg; hasz danego bloku.
  * *height* - niepodpisana liczba całkowita; liczba bloków poprzedzających dany blok w łańcuchu.
  * *major_version* - niepodpisana liczba całkowita; główna wersja protokołu Monero na danej wysokości bloku.
  * *minor_version* - niepodpisana liczba całkowita; podrzędna wersja protokołu Monero na danej wysokości bloku.
  * *nonce* - niepodpisana liczba całkowita; losowy i jednorazowy numer kryptograficzny użyty do wydobycia bloku Monero.
  * *orphan_status* - logiczny typ danych; zazwyczaj `false`. Jeśli `true`, dany blok nie jest częścią najdłuższego łańcucha.
  * *prev_hash* - ciąg; hasz bloku bezpośrednio poprzedzającego dany blok w łańcuchu.
  * *reward* - niepodpisana liczba całkowita; liczba nowych jednostek atomowych wytworzonych w danym bloku i przyznanych górnikowi. 	Zauważ: 1 XMR = 1e12 jednostek atomowych.
  * *timestamp* - niepodpisana liczba całkowita; czas, kiedy blok został zapisany w łańcuchu.
* *status* - ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
176

zofiazinha's avatar
zofiazinha committed
177
W tym przypadku wynikiem jest ostatni blok (wtedy był to blok 990793):
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getlastblockheader"}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "block_header": {
      "depth": 0,
      "difficulty": 746963928,
      "hash": "ac0f1e226268d45c99a16202fdcb730d8f7b36ea5e5b4a565b1ba1a8fc252eb0",
      "height": 990793,
      "major_version": 1,
      "minor_version": 1,
      "nonce": 1550,
      "orphan_status": false,
      "prev_hash": "386575e3b0b004ed8d458dbd31bff0fe37b280339937f971e06df33f8589b75c",
      "reward": 6856609225169,
      "timestamp": 1457589942
    },
    "status": "OK"
  }
}
```


### **getblockheaderbyhash**

zofiazinha's avatar
zofiazinha committed
207
Informacja o nagłówku bloku może zostać znaleziona przy użyciu haszu bloku lub jego wysokości. Ta metoda polega na wykorzystaniu bloku haszu jako parametru wejścia w celu uzyskania podstawowych informacji na temat bloku.
208

zofiazinha's avatar
zofiazinha committed
209
Wejście:
210

zofiazinha's avatar
zofiazinha committed
211
* *hash* - ciąg; hasz sha256 bloku.
212

zofiazinha's avatar
zofiazinha committed
213
Wynik:
214

zofiazinha's avatar
zofiazinha committed
215
* *block_header* - struktura zawierająca informacje o nagłówku bloku. Zobacz [getlastblockheader](#getlastblockheader).
216

zofiazinha's avatar
zofiazinha committed
217
W tym przypadku wyszukano blok 912345 za pomocą jego haszu:
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblockheaderbyhash","params":{"hash":"e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6"}}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "block_header": {
      "depth": 78376,
      "difficulty": 815625611,
      "hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
      "height": 912345,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 1646,
      "orphan_status": false,
      "prev_hash": "b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78",
      "reward": 7388968946286,
      "timestamp": 1452793716
    },
    "status": "OK"
  }
}
```


### **getblockheaderbyheight**

zofiazinha's avatar
zofiazinha committed
247
Podobnie do funkcji `getblockheaderbyhash` wspomnianej wcześniej, metoda ta bierze pod uwagę wysokość bloku jako parametr wejścia, aby otrzymać podstawowe informacje na temat bloku.
248

zofiazinha's avatar
zofiazinha committed
249
Wejście:
250

zofiazinha's avatar
zofiazinha committed
251
* *height* - niepodpisana liczba całkowita; wysokość bloku.
252

zofiazinha's avatar
zofiazinha committed
253
Wynik:
254

zofiazinha's avatar
zofiazinha committed
255
* *block_header* - Struktura zawierająca informacje na temat nagłówka bloku. Zobacz funkcję [getlastblockheader](#getlastblockheader).
256

zofiazinha's avatar
zofiazinha committed
257
W tym przypadku wyszukano blok 912345 za pomocą jego wysokości (zauważ, że wyszukane informacje są takie same jak w poprzednim przykładzie):
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblockheaderbyheight","params":{"height":912345}}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "block_header": {
      "depth": 78376,
      "difficulty": 815625611,
      "hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
      "height": 912345,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 1646,
      "orphan_status": false,
      "prev_hash": "b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78",
      "reward": 7388968946286,
      "timestamp": 1452793716
    },
    "status": "OK"
  }
}
```


### **getblock**

zofiazinha's avatar
zofiazinha committed
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
Pełne informacje na temat bloku mogą być wyszukane za pomocą wysokości bloku lub jego hasza, podobnie do wcześniej opisanych funkcji wyszukania nagłówka bloku. Dla pełnych informacji na temat bloku, obydwa rodzaje wyszukiwania korzystają z tej samej metody, jednak z różnymi paramterami wejścia.

Wejście (wybierz jedno z następujących):

* *height* - niepodpisana liczba całkowita; wysokość bloku.
* *hash* - ciąg; hasz bloku.

Wynik:

* *blob* - ciąg; heksadecymalny blok zawierający informacje o bloku.
* *block_header* - struktura zwierająca informacje na temat nagłówka bloku. Zobacz [getlastblockheader](#getlastblockheader).
* *json* - ciąg json; szczegóły bloku w formacie JSON:
  * *major_version* - to samo co w nagłówku bloku.
  * *minor_version* - to samo co w nagłówku bloku.
  * *timestamp* - to samo co w nagłówku bloku.
  * *prev_id* - to samo co `prev_hash` w nagłówku bloku
  * *nonce* - to samo co w nagłówku bloku.
  * *miner_tx* - informacje na temat transakcji górnika.
    * *version* - numer wersji transakcji.
    * *unlock_time* - wysokość bloku gdy transakcja coinbase stanie się zdolna do wydania.
    * *vin* - lista wejść transakcji:
      * *gen* - transakcje górnika są transakcjami coinbase, inaczej "gen".
        * *height* - wysokość danego bloku, czyli kiedy coinbase został wygenerowany.
    * *vout* - lista wyjść transakcji. Każde wyjście zawiera:
      * *amount* - kwotę wyjścia w jednostkach atomowych.
312
313
      * *target* -
        * *key* -
zofiazinha's avatar
zofiazinha committed
314
315
316
317
    * *extra* - zazwyczaj nazywane "numerem identyfikacyjnym transakcji", może być użyte do zawarcia jakiegokolwiek ciągu 32-		bajtowego/64-znakowego heksadecymalnego.
    * *signatures* - zawiera podpisy uczestników transakcji. Transakcje coinbase nie posiadają podpisów.
  * *tx_hashes* - lista haszy transakcji nie-coinbase w bloku. Jeśli nie było takich transakcji, lista będzie pusta.
* *status* -  ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
318

zofiazinha's avatar
zofiazinha committed
319
**Wyszukiwanie przy użyciu wysokości:**
320

zofiazinha's avatar
zofiazinha committed
321
W poniższym przykładzie wyszukano blok 912345 za pomocą jego wysokości. Zauważ, że blok ten nie posiada żadnych transakcji nie-coinbase (zobacz blok z dodatkowymi transakcjami w następnym przykładzie):
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblock","params":{"height":912345}}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "blob": "...",
    "block_header": {
      "depth": 80694,
      "difficulty": 815625611,
      "hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
      "height": 912345,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 1646,
      "orphan_status": false,
      "prev_hash": "b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78",
      "reward": 7388968946286,
      "timestamp": 1452793716
    },
    "json": "{\n  \"major_version\": 1, \n  \"minor_version\": 2, \n  \"timestamp\": 1452793716, \n  \"prev_id\": \"b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78\", \n  \"nonce\": 1646, \n  \"miner_tx\": {\n    \"version\": 1, \n    \"unlock_time\": 912405, \n    \"vin\": [ {\n        \"gen\": {\n          \"height\": 912345\n        }\n      }\n    ], \n    \"vout\": [ {\n        \"amount\": 8968946286, \n        \"target\": {\n          \"key\": \"378b043c1724c92c69d923d266fe86477d3a5ddd21145062e148c64c57677008\"\n        }\n      }, {\n        \"amount\": 80000000000, \n        \"target\": {\n          \"key\": \"73733cbd6e6218bda671596462a4b062f95cfe5e1dbb5b990dacb30e827d02f2\"\n        }\n      }, {\n        \"amount\": 300000000000, \n        \"target\": {\n          \"key\": \"47a5dab669770da69a860acde21616a119818e1a489bb3c4b1b6b3c50547bc0c\"\n        }\n      }, {\n        \"amount\": 7000000000000, \n        \"target\": {\n          \"key\": \"1f7e4762b8b755e3e3c72b8610cc87b9bc25d1f0a87c0c816ebb952e4f8aff3d\"\n        }\n      }\n    ], \n    \"extra\": [ 1, 253, 10, 119, 137, 87, 244, 243, 16, 58, 131, 138, 253, 164, 136, 195, 205, 173, 242, 105, 123, 61, 52, 173, 113, 35, 66, 130, 178, 250, 217, 16, 14, 2, 8, 0, 0, 0, 11, 223, 194, 193, 108\n    ], \n    \"signatures\": [ ]\n  }, \n  \"tx_hashes\": [ ]\n}",
    "status": "OK"
  }
}
```

zofiazinha's avatar
zofiazinha committed
350
**Wyszukiwanie za pomocą hasza:**
351

zofiazinha's avatar
zofiazinha committed
352
W poniższym przykładzie wyszukano blok 993056 za pomocą jego hasza. Zauważ, że ten blok posiada 3 transakcje nie-coinbase:
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblock","params":{"hash":"510ee3c4e14330a7b96e883c323a60ebd1b5556ac1262d0bc03c24a3b785516f"}}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "blob": "...",
    "block_header": {
      "depth": 12,
      "difficulty": 964985344,
      "hash": "510ee3c4e14330a7b96e883c323a60ebd1b5556ac1262d0bc03c24a3b785516f",
      "height": 993056,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 2036,
      "orphan_status": false,
      "prev_hash": "0ea4af6547c05c965afc8df6d31509ff3105dc7ae6b10172521d77e09711fd6d",
      "reward": 6932043647005,
      "timestamp": 1457720227
    },
    "json": "{\n  \"major_version\": 1, \n  \"minor_version\": 2, \n  \"timestamp\": 1457720227, \n  \"prev_id\": \"0ea4af6547c05c965afc8df6d31509ff3105dc7ae6b10172521d77e09711fd6d\", \n  \"nonce\": 2036, \n  \"miner_tx\": {\n    \"version\": 1, \n    \"unlock_time\": 993116, \n    \"vin\": [ {\n        \"gen\": {\n          \"height\": 993056\n        }\n      }\n    ], \n    \"vout\": [ {\n        \"amount\": 2043647005, \n        \"target\": {\n          \"key\": \"59e9d685b3484886bc7b47c133e6099ecdf212d5eaa16ce19cd58e8c3c1e590a\"\n        }\n      }, {\n        \"amount\": 30000000000, \n        \"target\": {\n          \"key\": \"4c5e2f542d25513c46b9e3b7d40140a22d0ae5314bfcae492ad9f56fff8185f0\"\n        }\n      }, {\n        \"amount\": 900000000000, \n        \"target\": {\n          \"key\": \"13dd8ffdac9e6a2f71e327dad65328198dc879a492d145eae72677c0703a3515\"\n        }\n      }, {\n        \"amount\": 6000000000000, \n        \"target\": {\n          \"key\": \"62bda00341681dccbc066757862da593734395745bdfe1fdc89b5948c86a5d4c\"\n        }\n      }\n    ], \n    \"extra\": [ 1, 182, 145, 133, 28, 240, 87, 185, 195, 2, 163, 219, 202, 135, 158, 28, 186, 76, 196, 80, 97, 202, 85, 170, 166, 224, 60, 220, 103, 171, 158, 69, 80, 2, 8, 0, 0, 0, 12, 97, 127, 223, 22\n    ], \n    \"signatures\": [ ]\n  }, \n  \"tx_hashes\": [ \"79c6b9f00db027bde151705aafe85c495883aae2597d5cb8e1adb2e0f3ae1d07\", \"d715db73331abc3ec588ef07c7bb195786a4724b08dff431b51ffa32a4ce899b\", \"b197066426c0ed89f0b431fe171f7fd62bc95dd29943daa7cf3585cf1fdfc99d\"\n  ]\n}",
    "status": "OK",
    "tx_hashes": ["79c6b9f00db027bde151705aafe85c495883aae2597d5cb8e1adb2e0f3ae1d07","d715db73331abc3ec588ef07c7bb195786a4724b08dff431b51ffa32a4ce899b","b197066426c0ed89f0b431fe171f7fd62bc95dd29943daa7cf3585cf1fdfc99d"]
  }
}
```


### **get_connections**

zofiazinha's avatar
zofiazinha committed
385
Wyszukuje informacje na temat przychodzących i wychodzących połączeń z twoim węzłem.
386

zofiazinha's avatar
zofiazinha committed
387
Wejście: *brak*.
388

zofiazinha's avatar
zofiazinha committed
389
Wynik:
390

zofiazinha's avatar
zofiazinha committed
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
* *connections* - lista wszystkich połączeń i ich informacje:
  * *avg_download* - niepodpisana liczba całkowita; średnia bajtów ściągniętych przez węzeł.
  * *avg_upload* - niepodpisana liczba całkowita; średnia bajtów przesłanych przez węzeł.
  * *current_download* - niepodpisana liczba całkowita; aktualna liczba bajtów ściągniętych przez węzeł.
  * *current_upload* - niepodpisana liczba całkowita; aktualna liczba bajtów przesłanych przez węzeł.
  * *incoming* - logiczny typ danych; czy dany węzeł otrzymuje informacje z twojego węzła?
  * *ip* - ciąg; adres IP danego węzła.
  * *live_time* - niepodpisana liczba całkowita
  * *local_ip* - logiczny typ danych
  * *localhost* - logiczny typ danych
  * *peer_id* - ciąg; ID węzła w sieci.
  * *port* - ciąg; port używany przez węzeł do połączenia z siecią.
  * *recv_count* - niepodpisana liczba całkowita
  * *recv_idle_time* - niepodpisana liczba całkowita
  * *send_count* - niepodpisana liczba całkowita
  * *send_idle_time* - niepodpisana liczba całkowita
  * *state* - ciąg
408

zofiazinha's avatar
zofiazinha committed
409
Poniżej znajduje się przykład funkcji `get_connections` i jej wyniki:
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_connections"}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "connections": [{
      "avg_download": 0,
      "avg_upload": 0,
      "current_download": 0,
      "current_upload": 0,
      "incoming": false,
      "ip": "76.173.170.133",
      "live_time": 1865,
      "local_ip": false,
      "localhost": false,
      "peer_id": "3bfe29d6b1aa7c4c",
      "port": "18080",
      "recv_count": 116396,
      "recv_idle_time": 23,
      "send_count": 176893,
      "send_idle_time": 1457726610,
      "state": "state_normal"
    },{
    ...
    }],
    "status": "OK"
  }
}
```


### **get_info**

zofiazinha's avatar
zofiazinha committed
446
Wyszukuje podstawowe informacje na temat stanu twojego węzła oraz sieci.
447

zofiazinha's avatar
zofiazinha committed
448
Wejście: *brak*.
449

zofiazinha's avatar
zofiazinha committed
450
Wynik:
451

zofiazinha's avatar
zofiazinha committed
452
453
454
455
456
457
458
459
460
461
462
463
464
465
* *alt_blocks_count* - niepodpisana liczba całkowita; liczba alternatywnych bloków głównego łańcucha.
* *difficulty* - niepodpisana liczba całkowita; trudność sieci (analogiczna do siły sieci).
* *grey_peerlist_size* - niepodpisana liczba całkowita; rozmiar szarej listy peerów.
* *height* - niepodpisana liczba całkowita; aktualna długość najdłuższego łańcucha znanego demonowi.
* *incoming_connections_count* - niepodpisana liczba całkowita; liczba peerów podłączonych i korzystających z twojego węzła.
* *outgoing_connections_count* - niepodpisana liczba całkowita; liczba peerów, do których jesteś podłączony i od których pobierasz 	informacje.
* *status* - ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
* *target* - niepodpisana liczba całkowita; aktualny cel następnego dowodu pracy.
* *target_height* - niepodpisana liczba całkowita; wysokość następnego bloku w łańcuchu.
* *testnet* - logiczny typ danych; określa, czy węzeł jest w sieci testowej ("true") lub sieci głównej ("false").
* *top_block_hash* - ciąg; hasz najwyższego bloku w łańcuchu.
* *tx_count* - niepodpisana liczba całkowita; łączna liczba transakcji nie-coinbase w łańcuchu.
* *tx_pool_siz* - niepodpisana liczba całkowita; liczba transakcji, które zostały nadane, ale nie uwzględnione w bloku.
* *white_peerlist_size* - niepodpisana liczba całkowita; rozmiar białej listy peerów.
466

zofiazinha's avatar
zofiazinha committed
467
Poniżej znajduje się przykład funkcji `get_info` i jej wyniki:
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "alt_blocks_count": 5,
    "difficulty": 972165250,
    "grey_peerlist_size": 2280,
    "height": 993145,
    "incoming_connections_count": 0,
    "outgoing_connections_count": 8,
    "status": "OK",
    "target": 60,
    "target_height": 993137,
    "testnet": false,
    "top_block_hash": "",
    "tx_count": 564287,
    "tx_pool_size": 45,
    "white_peerlist_size": 529
  }
}
```


### **hard_fork_info**

zofiazinha's avatar
zofiazinha committed
497
Wyszukuje informacje na temat głosowania na hard fork oraz jego gotowości.
498

zofiazinha's avatar
zofiazinha committed
499
Wejście: *brak*.
500

zofiazinha's avatar
zofiazinha committed
501
Wynik:
502

zofiazinha's avatar
zofiazinha committed
503
504
505
506
507
508
509
510
511
* *earliest_height* - niepodpisana liczba całkowita; wysokość bloku, na której hard fork byłby dokonany, jeśli przegłosowany.
* *enabled* - logiczny typ danych; okreśa, czy hard fork został wyegzekwowany.
* *state* -niepodpisana liczba całkowita; aktualny stan hard forku: 0 (hard fork jest prawdopodobny), 1 (aktualizacja jest konieczna do prawidłowego forku), or 2 (wszystko jest w porządku).
* *status* - ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
* *threshold* - niepodpisana liczba całkowita; minimalny procent głosów wymagany do rozpoczęcia hard forku. Domyślną liczbą jest 80.
* *version* - niepodpisana liczba całkowita; główna wersja bloku do hard forku.
* *votes* - niepodpisana liczba całkowita; liczba głosów za hard forkiem.
* *voting* - niepodpisana liczba całkowita; status głosowania za hard forkiem.
* *window* - niepodpisana liczba całkowita; liczba bloków, w których oddano głosy. Domyślną liczbą jest 10080 bloków.
512

zofiazinha's avatar
zofiazinha committed
513
Przykład:
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"hard_fork_info"}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "earliest_height": 1009827,
    "enabled": false,
    "state": 2,
    "status": "OK",
    "threshold": 0,
    "version": 1,
    "votes": 7277,
    "voting": 2,
    "window": 10080
  }
}
```


### **setbans**

zofiazinha's avatar
zofiazinha committed
538
Banuje inny węzeł za pomocą IP.
539

zofiazinha's avatar
zofiazinha committed
540
Wejście:
541

zofiazinha's avatar
zofiazinha committed
542
543
544
545
* *bans* - lista węzłów do zbanowania:
  * *ip* - niepodpisana liczba całkowita; adres IP do zbanowania w formacie numerycznym.
  * *ban* - logiczny typ danych; ustaw `true`, aby zbanować.
  * *seconds* - niepodpisana liczba całkowita; liczba sekund do zbanowania węzła.
546

zofiazinha's avatar
zofiazinha committed
547
Wynik:
548

zofiazinha's avatar
zofiazinha committed
549
* *status* - ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
550

zofiazinha's avatar
zofiazinha committed
551
Przykład:
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"setbans","params":{"bans":[{"ip":838969536,"ban":true,"seconds":30}]}}' -H  'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "status": "OK"
  }
}
```


### **getbans**

zofiazinha's avatar
zofiazinha committed
568
Wejście: *brak*.
569

zofiazinha's avatar
zofiazinha committed
570
Wynik:
571

zofiazinha's avatar
zofiazinha committed
572
573
574
575
* *bans* - list zbanowanych węzłów:
  * *ip* - niepodpisana liczba całkowita; zbanowany adres IP w formacie numerycznym.
  * *seconds* - niepodpisana liczba całkowita; lokalny czas uniksowy, do kiedy dany adres IP jest zbanowany.
* *status* - ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
576

zofiazinha's avatar
zofiazinha committed
577
Przykład:
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getbans"}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "bans": [{
      "ip": 838969536,
      "seconds": 1457748792
    }],
    "status": "OK"
  }
}
```


---

zofiazinha's avatar
zofiazinha committed
598
## Pozostałe funkcje demona RPC
599

zofiazinha's avatar
zofiazinha committed
600
Nie wszystkie funkcje demona RPC korzystają z interfejsu JSON_RPC. Ta sekcja objaśnia przykłady takich funkcji.
601

zofiazinha's avatar
zofiazinha committed
602
Struktura danych w tych funkcjach jest inna niż w funkcjacj JSON RPC. Podczas gdy metody JSON RPC są stosowane przy użyciu rozszerzenia `/json_rpc` i określeniu metody, poniższe funkcje są stosowane z własnymi rozszerzeniami. Na przykład:
603
604
605
606
607
608
609
610
611
612

    IP=127.0.0.1
    PORT=18081
    METHOD='gettransactions'
	PARAMS='{"txs_hashes":["d6e48158472848e6687173a91ae6eebfa3e1d778e65252ee99d7515d63090408"]}'
	curl \
		-X POST http://$IP:$PORT/$METHOD \
		-d $PARAMS \
		-H 'Content-Type: application/json'

zofiazinha's avatar
zofiazinha committed
613
Zauważ: zaleca się używanie funkcji JSON RPC, gdy jest to możliwe, na przykład zalecanym sposobem na wyszukanie wysokości węzła jest zastosowanie metody JSON RPC [get_info](#getinfo) lub [getlastblockheader](#getlastblockheader), a nie poniższej [getheight](#getheight).
614
615
616
617


### **/getheight**

zofiazinha's avatar
zofiazinha committed
618
Wyszukanie aktualnej wysokości węzła.
619

zofiazinha's avatar
zofiazinha committed
620
Wejście: *brak*.
621

zofiazinha's avatar
zofiazinha committed
622
Wynik:
623

zofiazinha's avatar
zofiazinha committed
624
* *height* - niepodpisana liczba całkowita; aktualna długość najdłuższego łańcucha znanego demonowi.
625
626
627
628
629
630
631
632
633
634
635
636
637

```
$ curl -X POST http://127.0.0.1:18081/getheight -H 'Content-Type: application/json'

{
  "height": 993488,
  "status": "OK"
}
```


### **/gettransactions**

zofiazinha's avatar
zofiazinha committed
638
Wyszukuje jedną lub więcej transakcji za pomocą hasza.
639

zofiazinha's avatar
zofiazinha committed
640
Wejście:
641

zofiazinha's avatar
zofiazinha committed
642
643
* *txs_hashes* - lista ciągów; listra haszów transakcji do wyszukania.
* *decode_as_json* - logiczny typ danych; opcjonalny. Jeśli ustawiony jako `true`, znalezione informacje na temat transakcji będą dekodowane, a nie 	binarne.
644

zofiazinha's avatar
zofiazinha committed
645
Wynik:
646

zofiazinha's avatar
zofiazinha committed
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
* *status* - kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
* *txs_as_hex* - ciąg; pełna informacja na temat transakcji jako ciąg heksadecymalny.
* *txs_as_json* - ciąg json; (opcjonalny - znaleziony, jeśli tak wskazano w wejściu); lista informacji na temat transakcji:
  * *version* - wersja transakcji.
  * *unlock_time* - jeśli różne od 0, informuje o czasie, kiedy wyjście transakcji będzie gotowe do wydania.
  * *vin* - lista wkładów do transakcji:
    * *key* - publiczny klucz poprzedniego wyjścia, wydanego w tej transakcji.
      * *amount* - kwota wkładu w jednostkach atomowych.
      * *key_offsets* - lista numerycznych offsetów wkładu.
      * *k_image* - obraz klucza danego wkładu.
  * *vout* - lista wyjść transakcji:
    * *amount* - kwota wyjścia transakcji w jednostkach atomowych.
    * *target* - informacje na temat celu wyjścia:
      * *key* - jednorazowy klucz publiczny odbiorcy. Ktokolwiek posiada prywatny klucz połączony z tym kluczem, kontroluje wyjście tej 	transakcji.
  * *extra* - zazwyczaj nazywane "numerem identyfikacyjnym płatności", może zostać użyte do włączenia dowolnych 32 bajtów.
  * *signatures* - lista podpisów użytych w podpisie pierścieniowym w celu ukrycia prawdziwego pochodzenia transakcji.

Przykład 1: wynik jest informacją na temat transakcji w formacie binarnym.
665
666
667
668
669
670
671
672
673
674
675

```
$ curl -X POST http://127.0.0.1:18081/gettransactions -d '{"txs_hashes":["d6e48158472848e6687173a91ae6eebfa3e1d778e65252ee99d7515d63090408"]}' -H 'Content-Type: application/json'

{
  "status": "OK",
  "txs_as_hex": ["..."]
}
```


zofiazinha's avatar
zofiazinha committed
676
Przykład 2: zdekoduj otrzymane informacje na temat transakcji w formacie JSON. Zauważ, że lista "vout" została skrócona w podanym wyniku ze względu na jej obszerność.
677
678
679
680
681
682
683
684
685
686
687
688
689
690

```
$ curl -X POST http://127.0.0.1:18081/gettransactions -d '{"txs_hashes":["d6e48158472848e6687173a91ae6eebfa3e1d778e65252ee99d7515d63090408"],"decode_as_json":true}' -H 'Content-Type: application/json'

{
  "status": "OK",
  "txs_as_hex": ["..."],
  "txs_as_json": ["{\n  \"version\": 1, \n  \"unlock_time\": 0, \n  \"vin\": [ {\n      \"key\": {\n        \"amount\": 70000000, \n        \"key_offsets\": [ 35952\n        ], \n        \"k_image\": \"d16908468dff9438a9814fe96bdaa575f06fe8da85772b72e54926428712293d\"\n      }\n    }, {\n      \"key\": {\n        \"amount\": 400000000000000, \n        \"key_offsets\": [ 6830\n        ], \n        \"k_image\": \"c7a7024b763df1181ae6fe821b70669735e38a68162ac02362e33acbe829b605\"\n      }\n    }\n  ], \n  \"vout\": [ {\n      \"amount\": 50000, \n      \"target\": {\n        \"key\": \"f6be43f7be4f06adcb1d06f4a07c637c7359e009cf3e57bb32b8c9ea636509c3\"\n      }\n    }, {\n      \"amount\": 200000, \n      \"target\": {\n        \"key\": \"b0a7a8e32f2b5302552bcd8d85112c62838b1f56cccd844eb9b63e0a732d0353\"\n      }\n    },  ...  \n  ], \n  \"extra\": [ 1, 225, 240, 98, 34, 169, 73, 47, 237, 117, 192, 30, 192, 60, 155, 47, 4, 115, 20, 21, 11, 13, 252, 219, 129, 13, 174, 37, 36, 78, 191, 141, 109\n  ], \n  \"signatures\": [ \"e6a3be8003d481d2855c8127f56871de3d28a4fb52385b999eb986c831c5cc08361c126b0db24a21b6c4299b438ee2be201d44d57a371230b9cd04395ab8c400\", \"8309851abaf2cf2a7091e0cdb9c83704fa7d68838a7a8ef8c178bb55a1e93a038dd18bb4a7549dc056b7a70e037cabd80911a03f427e36f712756d4c00f38f0b\"]\n}"]
}
```


### **/is_key_image_spent**

zofiazinha's avatar
zofiazinha committed
691
Sprawdza, czy wyjścia zostały wydane przy użyciu obrazu klucza powiązanego z wyjściem.
692

zofiazinha's avatar
zofiazinha committed
693
Wejście:
694

zofiazinha's avatar
zofiazinha committed
695
* *key_images* - lista ciągów; lista ciągów heksadecymalnych obrazu klucza do sprawdzenia.
696

zofiazinha's avatar
zofiazinha committed
697
Wynik:
698

zofiazinha's avatar
zofiazinha committed
699
700
* *spent_status* - lista niepodpisanych liczb całkowitych; lista statusów każdego sprawdzonego obrazu. Statusy są następujące: 0 = niewydany, 1 = wydany w łańcuchu bloków, 2 = wydany w puli transakcji.
* *status* - ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
701

zofiazinha's avatar
zofiazinha committed
702
Przykład:
703
704
705
706
707
708
709
710
711
712
713
714
715

```
$ curl -X POST http://127.0.0.1:18081/is_key_image_spent -d '{"key_images":["8d1bd8181bf7d857bdb281e0153d84cd55a3fcaa57c3e570f4a49f935850b5e3","7319134bfc50668251f5b899c66b005805ee255c136f0e1cecbb0f3a912e09d4"]}' -H 'Content-Type: application/json'

{
  "spent_status": [1,2],
  "status": "OK"
}
```


### **/sendrawtransaction**

zofiazinha's avatar
zofiazinha committed
716
Nadaje surową transakcję do sieci.
717

zofiazinha's avatar
zofiazinha committed
718
Wejście:
719

zofiazinha's avatar
zofiazinha committed
720
* *tx_as_hex* - ciąg; pełna inforacja na temat transakcji jako ciąg heksadecymalny.
721

zofiazinha's avatar
zofiazinha committed
722
Wynik:
723

zofiazinha's avatar
zofiazinha committed
724
725
726
727
728
729
730
731
* *status* - ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku. Jakikolwiek inny wynik oznacza, że coś poszło 	nie tak.
* *double_spend* - logiczny typ danych;  Transakcja jest dwukrotnym wydaniem (`true`) lub nie (`false`).
* *fee_too_low* - logiczny typ danych; opłata jest za niska (`true`) lub nie (`false`).
* *invalid_input* - logiczny typ danych; wejście jest nieprawidłowe (`true`) lub prawidłowe (`false`).
* *invalid_output* - logiczny typ danych; wyjście jest nieprawidłowe (`true`) lub prawidłowe (`false`).
* *low_mixin* - logiczny typ danych; liczba Mixin jest zbyt niska (`true`) lub nie (`false`).
* *not_rct* - logiczny typ danych; transakcja nie jest transakcją pierścieniową (`true`) lub jest transakcją pierścieniową (`false`).
* *not_relayed* - logiczny typ danych; transakcja nie została przekazana (`true`) lub została przekazana (`false`).
732
* *overspend* - logiczny typ danych; transakcja korzysta z większej kwoty niż to możliwe (`true`) lub nie (`false`).
zofiazinha's avatar
zofiazinha committed
733
734
* *reason* - ciąg; dodatkowe informacje. Obecnie puste lub "Not relayed", jeśli transakcja została zaakceptowana, ale nie przekazana.
* *too_big* - logiczny typ danych; rozmiar transakcji jest zbyt duży (`true`) lub nie (`false`).
735
736


zofiazinha's avatar
zofiazinha committed
737
Przykład (informacja zwrotna nie została tu zawarta):
738
739
740
741
742
743
744
745
746


```
$ curl -X POST http://127.0.0.1:18081/sendrawtransaction -d '{"tx_as_hex":"de6a3..."}' -H 'Content-Type: application/json'
```


### **/get_transaction_pool**

zofiazinha's avatar
zofiazinha committed
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
Wyszukuje informacje na temat ważnych transakcji widocznych przez węzeł, które nie zostały jeszcze wydobyte w bloku, oraz informacje na temat obrazu klucza wydawania w pamięci węzła.

Wejście: *brak*.

Wynik:

* *spent_key_images* - lista obrazów klucza wydawania wyjścia:
  * *id_hash* - ciąg; hasz numeru identyfikacyjnego obrazu klucza.
  * *txs_hashes* - lista ciągów; hasze transakcji obrazu klucza.
* *status* - ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
* *transactions* - lista transakcji w puli pamięci, które nie zostały uwzględnione w bloku:
  * *blob_size* - niepodpisana liczba całkowita; rozmiar pełnego blobu transakcji.
  * *fee* - niepodpisana liczba całkowita; kwota opłaty wydobywczej uwzględnionej w transakcji w jednostkach atomowych.
  * *id_hash* - ciąg; hasz numeru identyfikacyjnego transakcji.
  * *kept_by_block* - logiczny typ danych; nie akceptujemy transakcji, które skończyły się wcześsniej, chyba że ustawiono jako `true`.
  * *last_failed_height* - niepodpisana liczba całkowita; jeśli transakcja skończyła się wcześniej, funckja ta określa, na jakiej 	wysokości się to stało.
  * *last_failed_id_hash* - ciąg; podobnie do poprzedniej, funkcja ta określa poprzedni hasz numeru identyfikacyjnego transakcji.
  * *max_used_block_height* - niepodpisana liczba całkowita; określa wysokość ostatniego bloku z wyjściem użytym do tej transakcji.
  * *max_used_block_hash* - ciąg; określa hasz ostatniego bloku z wyjściem użytym do tej transakcji.
  * *receive_time* - niepodpisana liczba całkowita; uniksowy czas, kiedy transakcja została zauważona w sieci po raz pierwszy przez 	węzeł.
  * *tx_json* - ciąg json; struktura JSON wszystkich informacji o transakcji:
    * *version* - wersja transakcji.
    * *unlock_time* - jeśli różne od 0, określa czas, kiedy wyjście transakcji będzie możliwe do wydania.
 * *vin* - lista wkładów do transakcji:
    * *key* - publiczny klucz poprzedniego wyjścia, wydanego w tej transakcji.
      * *amount* - kwota wkładu w jednostkach atomowych.
      * *key_offsets* - lista numerycznych offsetów wkładu.
      * *k_image* - obraz klucza danego wkładu.
  * *vout* - lista wyjść transakcji:
    * *amount* - kwota wyjścia transakcji w jednostkach atomowych.
    * *target* - informacje na temat celu wyjścia:
      * *key* - jednorazowy klucz publiczny odbiorcy. Ktokolwiek posiada prywatny klucz połączony z tym kluczem, kontroluje wyjście tej 	transakcji.
  * *extra* - zazwyczaj nazywane "numerem identyfikacyjnym płatności", może zostać użyte do włączenia dowolnych 32 bajtów.
  * *signatures* - lista podpisów użytych w podpisie pierścieniowym w celu ukrycia prawdziwego pochodzenia transakcji.

Przykład (zauważ, że niektóre z list w poniższym wyniku zostały skrócone ze względu na ich obszerność):
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815

```
$ curl -X POST http://127.0.0.1:18081/get_transaction_pool -H 'Content-Type: application/json'

{
  "spent_key_images": [{
    "id_hash": "1edb9ecc39602040282d326070ad22cb473c952c0d6280c9c4c3b853fb34f3bc",
    "txs_hashes": ["409911b2be02e3f0e930b326c67ab9e74675885ce23d71bb3bd28b62bc3e7803"]
  },{
    "id_hash": "4adb4bb63b3397027340ca4e6c45f4ce2147dfb3a4e0fafdec18834ae594a05e",
    "txs_hashes": ["946f1f4c52e3426a41959c93b60078f314813bc4bdebcf69b8ee11d593b2bd14"]
  },
  ...],
  "status": "OK",
  "transactions": [{
    "blob_size": 25761,
    "fee": 290000000000,
    "id_hash": "11d4cff23e610fac6a2b89187ad61d429a5e226652693dcac5d83d506eb92b96",
    "kept_by_block": false,
    "last_failed_height": 0,
    "last_failed_id_hash": "0000000000000000000000000000000000000000000000000000000000000000",
    "max_used_block_height": 954508,
    "max_used_block_id_hash": "03f96b374778bc059e47b96e2beec2e6d4d9e0ad39afeabdbcd77e1bd5a62f81",
    "receive_time": 1457676127,
    "tx_json": "{\n  \"version\": 1, \n  \"unlock_time\": 0, \n  \"vin\": [ {\n      \"key\": {\n        \"amount\": 70000000000, \n        \"key_offsets\": [ 63408, 18978, 78357, 16560\n        ], \n        \"k_image\": \"7319134bfc50668251f5b899c66b005805ee255c136f0e1cecbb0f3a912e09d4\"\n      }\n    },  ...  ], \n  \"vout\": [ {\n      \"amount\": 80000000000, \n      \"target\": {\n        \"key\": \"094e6a1b187385533665f89db741149f42d95fdc50bdd2a2384bcd1dc5209c55\"\n      }\n    },  ...  ], \n  \"extra\": [ 2, 33, 0, 15, 56, 190, 21, 169, 77, 13, 182, 209, 51, 35, 54, 96, 89, 237, 96, 23, 24, 107, 240, 79, 40, 86, 64, 68, 45, 166, 119, 192, 17, 225, 23, 1, 31, 159, 145, 15, 173, 255, 165, 192, 55, 84, 127, 154, 163, 25, 85, 204, 212, 127, 147, 133, 118, 218, 166, 52, 78, 188, 131, 235, 9, 159, 105, 158\n  ], \n  \"signatures\": [ \"966e5a67fbdbf72d7dc0364b705121a58e0ced7e2ab45747b6b154c05a1afe04fac4aac7f64faa2dc6dd4d51b8277f11e2f2ec7729fac225088befe3b8399c0b71a4cb55b9d0e20f93d305c78cebceff1bcfcfaf225428dfcfaaec630c88720ab65bf5d3399dd1ac82ea0ecf308b3f80d9780af7742fb157692cd60515a7e2086878f082117fa80fff3d257de7d3a2e9cc8b3472ef4a5e545d90e1159523a60f38d16cece783579627124776813334bdb2a2df4171ef1fa12bf415da338ce5085c01e7a715638ef5505aebec06a0625aaa72d13839838f7d4f981673c8f05f08408e8b372f900af7227c49cfb1e1febab6c07dd42b7c26f921cf010832841205\",  ...  ]\n}"
  },
  ...]
}
```


### **/stop_daemon**

zofiazinha's avatar
zofiazinha committed
816
Wysyła polecenie do demona, aby bezpiecznie się rozłączyć i wyłączyć.
817

zofiazinha's avatar
zofiazinha committed
818
Wejście: *brak*.
819

zofiazinha's avatar
zofiazinha committed
820
Wynik:
821

zofiazinha's avatar
zofiazinha committed
822
* *status* - ciąg; kod generalnego błędu RPC. "OK" oznacza, że wszystko jest w porządku.
823

zofiazinha's avatar
zofiazinha committed
824
Przykład:
825
826
827
828
829
830
831

```
$ curl -X POST http://127.0.0.1:18081/stop_daemon -H 'Content-Type: application/json'

{
  "status": "OK"
}
zofiazinha's avatar
zofiazinha committed
832
```