daemon-rpc.md 90.3 KB
Newer Older
1
{% assign version = '2.3.0' | split: '.' %}
2
{% include disclaimer.html translated="true" version=page.version %}
el00ruobuob's avatar
el00ruobuob committed
3
4
## Introduction

5
Voici une liste des appels de procédures distantes (RPC) du démon, leurs entrées et sorties, et des exemples pour chacun d'eux.
el00ruobuob's avatar
el00ruobuob committed
6

7
De nombreux appels RPC utilisent l'interface JSON RPC du démon, alors que d'autres utilisent leurs propres interfaces, comme démontré plus bas.
el00ruobuob's avatar
el00ruobuob committed
8

9
Remarque : "@unité-atomique" réfère à la plus petite fraction de 1 XMR selon l'implémentation monerod. **1 XMR = 1e12 unités atomiques**
el00ruobuob's avatar
el00ruobuob committed
10

11
Remarque 2 : Guide mis à jour à la hauteur du réseau 1562465.
12

13
### [Méthodes JSON RPC](#methodes-json-rpc) :
el00ruobuob's avatar
el00ruobuob committed
14

15
16
17
18
19
20
21
22
23
* [get_block_count](#get_block_count)
* [on_get_block_hash](#on_get_block_hash)
* [get_block_template](#get_block_template)
* [submit_block](#submit_block)
* [get_last_block_header](#get_last_block_header)
* [get_block_header_by_hash](#get_block_header_by_hash)
* [get_block_header_by_height](#get_block_header_by_height)
* [get_block_headers_range](#get_block_headers_range)
* [get_block](#get_block)
el00ruobuob's avatar
el00ruobuob committed
24
25
26
* [get_connections](#get_connections)
* [get_info](#get_info)
* [hard_fork_info](#hard_fork_info)
27
28
29
30
31
32
33
34
35
36
37
38
* [set_bans](#set_bans)
* [get_bans](#get_bans)
* [flush_txpool](#flush_txpool)
* [get_output_histogram](#get_output_histogram)
* [get_version](#get_version)
* [get_coinbase_tx_sum](#get_coinbase_tx_sum)
* [get_fee_estimate](#get_fee_estimate)
* [get_alternate_chains](#get_alternate_chains)
* [relay_tx](#relay_tx)
* [sync_info](#sync_info)
* [get_txpool_backlog](#get_txpool_backlog)
* [get_output_distribution](#get_output_distribution)
el00ruobuob's avatar
el00ruobuob committed
39

40
### [Autres Méthodes RPC](#autres-appels-rpc-du-demon) :
el00ruobuob's avatar
el00ruobuob committed
41

42
* [/get_height](#get_height)
Paul K's avatar
Paul K committed
43
44
45
46
47
* [/get_blocks.bin](#get_blocksbin)
* [/get_blocks_by_height.bin](#get_blocks_by_heightbin)
* [/get_hashes.bin](#get_hashesbin)
* [/get_o_indexes.bin](#get_o_indexesbin)
* [/get_outs.bin](#get_outsbin)
48
49
* [/get_transactions](#get_transactions)
* [/get_alt_blocks_hashes](#get_alt_blocks_hashes)
el00ruobuob's avatar
el00ruobuob committed
50
* [/is_key_image_spent](#is_key_image_spent)
51
52
53
54
55
56
57
58
59
* [/send_raw_transaction](#send_raw_transaction)
* [/start_mining](#start_mining)
* [/stop_mining](#stop_mining)
* [/mining_status](#mining_status)
* [/save_bc](#save_bc)
* [/get_peer_list](#get_peer_list)
* [/set_log_hash_rate](#set_log_hash_rate)
* [/set_log_level](#set_log_level)
* [/set_log_categories](#set_log_categories)
el00ruobuob's avatar
el00ruobuob committed
60
* [/get_transaction_pool](#get_transaction_pool)
Paul K's avatar
Paul K committed
61
* [/get_transaction_pool_hashes.bin](#get_transaction_pool_hashesbin)
62
* [/get_transaction_pool_stats](#get_transaction_pool_stats)
el00ruobuob's avatar
el00ruobuob committed
63
* [/stop_daemon](#stop_daemon)
64
65
66
67
68
69
70
71
72
* [/get_info (not JSON)](#get_info-not-json)
* [/get_limit](#get_limit)
* [/set_limit](#set_limit)
* [/out_peers](#out_peers)
* [/in_peers](#in_peers)
* [/start_save_graph](#start_save_graph)
* [/stop_save_graph](#stop_save_graph)
* [/get_outs](#get_outs)
* [/update](#update)
el00ruobuob's avatar
el00ruobuob committed
73
74
75
76


---

77
## Méthodes JSON RPC
el00ruobuob's avatar
el00ruobuob committed
78

79
La majorité des appels RPC de monerod utilisent l'interface `json_rpc` du démon pour demander des bribes d'information. Ces méthodes suivent toutes une structure similaire, par exemple :
el00ruobuob's avatar
el00ruobuob committed
80
81
82
83

```
IP=127.0.0.1
PORT=18081
84
85
METHOD='get_block_header_by_height'
ALIAS='getblockheaderbyheight'
el00ruobuob's avatar
el00ruobuob committed
86
87
88
89
90
91
92
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'
```

93
Certaines méthodes comportent des paramètres, alors que d'autres non. Chaque méthode JSON RPC est suivit d'exemple(s).
el00ruobuob's avatar
el00ruobuob committed
94

95
### **get_block_count**
el00ruobuob's avatar
el00ruobuob committed
96

97
Cherche combien de blocs sont contenus dans la plus longue chaîne connue du nœud.
el00ruobuob's avatar
el00ruobuob committed
98

99
Alias : *getblockcount*.
100

101
Entrées : *Aucune*.
el00ruobuob's avatar
el00ruobuob committed
102

103
Sorties :
el00ruobuob's avatar
el00ruobuob committed
104

105
106
* *count* - entier non signé; Nombre de blocs dans la plus longue chaîne vue par le nœud.
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
el00ruobuob's avatar
el00ruobuob committed
107

108
Exemple :
el00ruobuob's avatar
el00ruobuob committed
109
110

```
111
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block_count"}' -H 'Content-Type: application/json'  
el00ruobuob's avatar
el00ruobuob committed
112
113
114
115
116
117
118
119
120
121
122
123

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


124
### **on_get_block_hash**
el00ruobuob's avatar
el00ruobuob committed
125

126
Cherche le hachage d'un bloc par sa hauteur de bloc.
el00ruobuob's avatar
el00ruobuob committed
127

128
Alias : *on_getblockhash*.
129

130
Entrées :
el00ruobuob's avatar
el00ruobuob committed
131

132
* *block height* - tableau d'entiers de longueur 1; Hauteur(s) de bloc à rechercher.
133

134
Sorties :
el00ruobuob's avatar
el00ruobuob committed
135

136
* *block hash* - chaîne de caractères; Hachage du bloc correspondant.
el00ruobuob's avatar
el00ruobuob committed
137

138
Exemple :
el00ruobuob's avatar
el00ruobuob committed
139
140

```
141
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"on_get_block_hash","params":[912345]}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
142
143
144
145
146
147
148
149
150

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


151
152
### **get_block_template**

153
Obtenir un modèle de bloc à partir duquel miner un nouveau bloc.
154

155
Alias : *getblocktemplate*.
el00ruobuob's avatar
el00ruobuob committed
156

157
Entrées :
el00ruobuob's avatar
el00ruobuob committed
158

159
160
* *wallet_address* - chaîne de caractères; Adresse du portefeuille à laquelle recevoir la transaction de la base de la pièce si le bloc est miné avec succès.
* *reserve_size* - entier non signé; Taille de réserve.
el00ruobuob's avatar
el00ruobuob committed
161

162
Sorties :
el00ruobuob's avatar
el00ruobuob committed
163

164
165
166
167
168
169
170
171
172
* *blocktemplate_blob* - chaîne de caractères; Forme sur laquelle essayer de miner un nouveau bloc.
* *blockhashing_blob* - chaîne de caractères; Forme sur laquelle essayer de trouver un nonce valide.
* *difficulty* - entier non signé; Difficulté du bloc suivant.
* *expected_reward* - entier non signé; Récompense de la base de la pièce à espérer si le bloc est miné avec succès.
* *height* - entier non signé; Hauteur à laquelle miner.
* *prev_hash* - chaîne de caractères; Hachage du bloc le plus récent sur lequel miner le bloc suivant.
* *reserved_offset* - entier non signé; Déport réservé.
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
* *untrusted* - booléen; Indique si le résultat est obtenu en utilisant un nœud d'amorce, auquel il ne faudrait pas faire confiance (`true`), ou si le démon est totalement synchronisé (`false`).
el00ruobuob's avatar
el00ruobuob committed
173

174
Exemple :
el00ruobuob's avatar
el00ruobuob committed
175
176

```
177
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block_template","params":{"wallet_address":"44GBHzv6ZyQdJkjqZje6KLZ3xSyN1hBSFAnLP6EAqJtCRVzMzZmeXTC2AHKDS9aEDTRKmo6a6o9r9j86pYfhCWDkKjbtcns","reserve_size":60}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
178
179
180
181
182

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
183
184
185
186
187
188
189
190
191
    "blockhashing_blob": "070786a498d705f8dc58791266179087907a2ff4cd883615216749b97d2f12173171c725a6f84a00000000fc751ea4a94c2f840751eaa36138eee66dda15ef554e7d6594395827994e31da10",
    "blocktemplate_blob": "070786a498d705f8dc58791266179087907a2ff4cd883615216749b97d2f12173171c725a6f84a0000000002aeab5f01fff2aa5f01e0a9d0f2f08a01028fdb3d5b5a2c363d36ea17a4add99a23a3ec7935b4c3e1e0364fcc4295c7a2ef5f01f912b15f5d17c1539d4722f79d8856d8654c5af87f54cfb3a4ff7f6b512b2a08023c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1755090c809421d69873c161e7969b8bf33cee3b451dd4859bfc244a705f0b4900498f804b6023e13fa023a0fb759e8b7c9a39506a21442bc47077beeedc6b78d34c4ebdae91bd96097ccc9a882bc5056568b0d2f1f06559368fea4acba8e745444e883e53156d5083c1fd260edf05292934c8b40c098b81fe4e261720bdd272b209e317247a1d2c55dc4718891af0d16273c5a610f36f382a3bf50f54808aaa6a508e51d4601dd0d8fbf8b3b1685066ce121666a1409e8ac7a4d673c1cc36d10b825f764af647441f53230518e4d2efbcf8791c6060912c76e90db4982a66d51bbd96290bbb34db8080b216c2940cec407260bf5e2c3a5ee280835f15298f0801e9d98c4d414792282fbc2c28c3e20bc0fcb1829b5c3ad8f8d20847be8fdb2a949fd96f0205fbd6d271c880c5d8c83e9813606cd803a44d377fdeae45bfa67112132af601e9b3b0613ba7dff2ec3d4b935c447b47bfe39f7b950981b2f4c66c0d853e2218f1f69229a9b608c3d98be09b6d4d640a9f6ff0e920dbacf7e58b59554c0b398b1ae4b1d497104b4e4e745d850eed7eddb8aa93437427bf442ae5beb22cbf10a8fa738ea38cfa5d86dfd30675d4be11a38016e36936fd5601e52643e8b8bc433702ea7ae6149309c95b898cc854850e73fe0b95c5b8879b7325ecd4",
    "difficulty": 61043624293,
    "expected_reward": 4771949057248,
    "height": 1561970,
    "prev_hash": "f8dc58791266179087907a2ff4cd883615216749b97d2f12173171c725a6f84a",
    "reserved_offset": 129,
    "status": "OK",
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
192
193
194
195
196
  }
}
```


197
### **submit_block**
el00ruobuob's avatar
el00ruobuob committed
198

199
Soumettre un bloc miné au réseau.
el00ruobuob's avatar
el00ruobuob committed
200

201
Alias : *submitblock*.
202

203
Entrées :
el00ruobuob's avatar
el00ruobuob committed
204

205
* *Block blob data* - liste de chaînes de caractères; Liste des formes de blocs qui ont été minées.  Voir [get_block_template](#get_block_template) pour obtenir une forme sur laquelle miner.
el00ruobuob's avatar
el00ruobuob committed
206

207
Sorties :
el00ruobuob's avatar
el00ruobuob committed
208

209
* *status* - chaîne de caractères; Statut de la soumission du bloc.
el00ruobuob's avatar
el00ruobuob committed
210

211
Dans cet exemple, un bloc qui n'a pas été miné est soumis :
212
213
214
215
216
217
218
219
220
221
222
223
224
225

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

{
  "id": "0",
  "jsonrpc": "2.0",
  "error": {
    "code": -7,
    "message": "Block not accepted"
  }
}
```

el00ruobuob's avatar
el00ruobuob committed
226

227
### **get_last_block_header**
el00ruobuob's avatar
el00ruobuob committed
228

229
Les informations d'entête du bloc le plus récent sont facilement récupérées avec cette méthode. Aucune entrée n'est nécessaire.
el00ruobuob's avatar
el00ruobuob committed
230

231
Alias : *getlastblockheader*.
232

233
Entrées : *Aucune*.
el00ruobuob's avatar
el00ruobuob committed
234

235
Sorties :
el00ruobuob's avatar
el00ruobuob committed
236

237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
* *block_header* - Une structure contenant les informations d'entête du bloc.
  * *block_size* - entier non signé; La taille du bloc en octets.
  * *depth* -  entier non signé; Le nombre de blocs succédant à ce bloc dans la chaîne de blocs. Un plus grand nombre signifie un bloc plus ancien.
  * *difficulty* - entier non signé; La robustesse du réseau Monero basé sur la puissance d'extraction minière.
  * *hash* - chaîne de caractères; Le hachage de ce bloc.
  * *height* - entier non signé; Le nombre de blocs précédant ce bloc sur la chaîne de blocs.
  * *major_version* - entier non signé; La version majeure du protocole Monero à cette hauteur de bloc.
  * *minor_version* - entier non signé; La version mineure du protocole Monero à cette hauteur de bloc.
  * *nonce* - entier non signé; Un nombre cryptographique aléatoire à usage unique utilisé dans l'extraction minière d'un bloc Monero.
  * *num_txes* - entier non signé; Nombre de transactions dans le bloc, sans compter la transaction de la base de la pièce.
  * *orphan_status* - booléen; Habituellement `false`. Si `true`, ce bloc ne fait pas partie de la chaîne la plus longue.
  * *prev_hash* - chaîne de caractères; Le hachage du bloc précédent immédiatement ce bloc dans la chaîne de blocs.
  * *reward* - entier non signé; Le montant de nouvelles @unités-atomiques généré dans ce bloc et fournies en récompense au mineur. Remarque : 1 XMR = 1e12 @unités-atomiques.
  * *timestamp* - entier non signé; Le temps Unix auquel ce bloc à été enregistré dans la chaîne de blocs.
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
* *untrusted* - booléen; Indique si le résultat est obtenu en utilisant un nœud d'amorce, auquel il ne faudrait pas faire confiance (`true`), ou si le démon est totalement synchronisé (`false`).
el00ruobuob's avatar
el00ruobuob committed
253

254
Dans cette exmemple, le bloc le plus récent (1562023 à ce moment-là) est retourné :
el00ruobuob's avatar
el00ruobuob committed
255
256

```
257
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_last_block_header"}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
258
259
260
261
262
263

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "block_header": {
264
      "block_size": 62774,
el00ruobuob's avatar
el00ruobuob committed
265
      "depth": 0,
266
267
268
269
270
271
272
      "difficulty": 60097900840,
      "hash": "3a289b8fa88b10e2163826c230b45d79f2be37d14fa3153ee58ff8a427782d14",
      "height": 1562023,
      "major_version": 7,
      "minor_version": 7,
      "nonce": 3789681204,
      "num_txes": 5,
el00ruobuob's avatar
el00ruobuob committed
273
      "orphan_status": false,
274
275
276
      "prev_hash": "743e5d0a26849efe27b96086f2c4ecc39a0bc744bf21473dad6710221aff6ac3",
      "reward": 4724029079703,
      "timestamp": 1525029411
el00ruobuob's avatar
el00ruobuob committed
277
    },
278
279
    "status": "OK",
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
280
281
282
283
284
  }
}
```


285
### **get_block_header_by_hash**
el00ruobuob's avatar
el00ruobuob committed
286

287
Les informations d'entête de bloc peuvent être récupérées en utilisant soit un hachage, soit une hauteur de bloc. Cette méthode inclue un hachage de bloc comme paramètre d'entrée pour récupérer les informations basiques du bloc.
el00ruobuob's avatar
el00ruobuob committed
288

289
Alias : *getblockheaderbyhash*.
290

291
Entrées :
el00ruobuob's avatar
el00ruobuob committed
292

293
* *hash* - chaîne de caractères; Le hachage sha256 du bloc.
el00ruobuob's avatar
el00ruobuob committed
294

295
Sorties :
el00ruobuob's avatar
el00ruobuob committed
296

297
298
299
* *block_header* - Une structure contenant les informations d'entête du bloc. Voir [get_last_block_header](#get_last_block_header).
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
* *untrusted* - booléen; Indique si le résultat est obtenu en utilisant un nœud d'amorce, auquel il ne faudrait pas faire confiance (`true`), ou si le démon est totalement synchronisé (`false`).
el00ruobuob's avatar
el00ruobuob committed
300

301
Dans cet exemple, le bloc 912345 est recherché par son hachage :
el00ruobuob's avatar
el00ruobuob committed
302
303

```
304
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block_header_by_hash","params":{"hash":"e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6"}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
305
306
307
308
309
310

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "block_header": {
311
312
      "block_size": 210,
      "depth": 649717,
el00ruobuob's avatar
el00ruobuob committed
313
314
315
316
317
318
      "difficulty": 815625611,
      "hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
      "height": 912345,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 1646,
319
      "num_txes": 0,
el00ruobuob's avatar
el00ruobuob committed
320
321
322
323
324
      "orphan_status": false,
      "prev_hash": "b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78",
      "reward": 7388968946286,
      "timestamp": 1452793716
    },
325
326
    "status": "OK",
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
327
328
329
330
331
  }
}
```


332
### **get_block_header_by_height**
el00ruobuob's avatar
el00ruobuob committed
333

334
Similaire à [get_block_header_by_hash](#get_block_header_by_hash) ci-dessus, cette méthode prend la hauteur de bloc comme paramètre d'entrée pour récupérer les informations basiques du bloc.
335

336
Alias : *getblockheaderbyheight*.
el00ruobuob's avatar
el00ruobuob committed
337

338
Entrées :
el00ruobuob's avatar
el00ruobuob committed
339

340
* *height* - entier non signé; La hauteur du bloc.
el00ruobuob's avatar
el00ruobuob committed
341

342
Sorties :
el00ruobuob's avatar
el00ruobuob committed
343

344
345
346
* *block_header* - Une structure contenant les informations d'entête du bloc. Voir [get_last_block_header](#get_last_block_header).
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
* *untrusted* - booléen; Indique si le résultat est obtenu en utilisant un nœud d'amorce, auquel il ne faudrait pas faire confiance (`true`), ou si le démon est totalement synchronisé (`false`).
el00ruobuob's avatar
el00ruobuob committed
347

348
Dans cet exemple, le bloc 912345 est recherché par sa hauteur (remarquez que les informations renvoyées sont les mêmes que dans l'exemple précédent) :
el00ruobuob's avatar
el00ruobuob committed
349
350

```
351
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block_header_by_height","params":{"height":912345}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
352
353
354
355
356
357

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "block_header": {
358
359
      "block_size": 210,
      "depth": 649721,
el00ruobuob's avatar
el00ruobuob committed
360
361
362
363
364
365
      "difficulty": 815625611,
      "hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
      "height": 912345,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 1646,
366
      "num_txes": 0,
el00ruobuob's avatar
el00ruobuob committed
367
368
369
370
371
      "orphan_status": false,
      "prev_hash": "b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78",
      "reward": 7388968946286,
      "timestamp": 1452793716
    },
372
373
374
375
376
377
378
379
    "status": "OK",
    "untrusted": false
  }
}
```

### **get_block_headers_range**

380
Similaire à [get_block_header_by_height](#get_block_header_by_height) ci-dessus, mais pour une plage de blocs. Cette méthode nécessite une hauteur de bloc de départ et une hauteur de bloc de fin comme paramètres pour récupérer les informations basiques de la plage de blocs.
381

382
Alias : *getblockheadersrange*.
383

384
Entrées :
385

386
387
* *start_height* - entier non signé; La hauteur de bloc de départ.
* *end_height* - entier non signé; La hauteur de bloc de fin.
388

389
Sorties :
390

391
392
393
* *headers* - liste de `block_header` (Une structure contenant les informations d'entête du bloc. Voir [get_last_block_header](#get_last_block_header)).
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
* *untrusted* - booléen; Indique si le résultat est obtenu en utilisant un nœud d'amorce, auquel il ne faudrait pas faire confiance (`true`), ou si le démon est totalement synchronisé (`false`).
394

395
Dans cet exemple, la plage de bloc de la hauteur 1545999 à la hauteur 1546000 est recherchée (remarquez que les informations renvoyées sont dans l'ordre ascendant et qu'il s'agit du moment de la mise à jour réseau d'Avril 2018) :
396
397
398
399
400
401
402
403
404
405
406
407
408
409
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

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

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "headers": [{
      "block_size": 301413,
      "depth": 16085,
      "difficulty": 134636057921,
      "hash": "86d1d20a40cefcf3dd410ff6967e0491613b77bf73ea8f1bf2e335cf9cf7d57a",
      "height": 1545999,
      "major_version": 6,
      "minor_version": 6,
      "nonce": 3246403956,
      "num_txes": 20,
      "orphan_status": false,
      "prev_hash": "0ef6e948f77b8f8806621003f5de24b1bcbea150bc0e376835aea099674a5db5",
      "reward": 5025593029981,
      "timestamp": 1523002893
    },{
      "block_size": 13322,
      "depth": 16084,
      "difficulty": 134716086238,
      "hash": "b408bf4cfcd7de13e7e370c84b8314c85b24f0ba4093ca1d6eeb30b35e34e91a",
      "height": 1546000,
      "major_version": 7,
      "minor_version": 7,
      "nonce": 3737164176,
      "num_txes": 1,
      "orphan_status": false,
      "prev_hash": "86d1d20a40cefcf3dd410ff6967e0491613b77bf73ea8f1bf2e335cf9cf7d57a",
      "reward": 4851952181070,
      "timestamp": 1523002931
    }],
    "status": "OK",
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
435
436
437
438
439
  }
}
```


440
### **get_block**
el00ruobuob's avatar
el00ruobuob committed
441

442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
Les informations complètes d'un bloc peuvent être récupérées soit par sa hauteur, soit par son hachage, comme pour les appels précédents. Pour les informations complètes du bloc, les deux recherches utilisent la même méthode, mais avec des paramètres d'entrées différents.

Alias : *getblock*.

Entrées (choisir l'un des suivant) :

* *height* - entier non signé; La hauteur du bloc.
* *hash* - chaîne de caractères; Le hachage du bloc.

Sorties :

* *blob* - chaîne de caractères; Forme au format hexadécimal des informations du bloc.
* *block_header* - Une structure contenant les informations d'entête du bloc. Voir [get_last_block_header](#get_last_block_header).
* *json* - chaîne de caractères json; détail du bloc au format JSON :
  * *major_version* - Comme dans l'entête du bloc.
  * *minor_version* - Comme dans l'entête du bloc.
  * *timestamp* - Comme dans l'entête du bloc.
  * *prev_id* - Comme `prev_hash` dans l'entête du bloc.
  * *nonce* - Comme dans l'entête du bloc.
  * *miner_tx* - Information de la transaction du mineur.
    * *version* - Numéro de version de la transaction.
    * *unlock_time* - La hauteur de bloc à laquelle la transaction de la base de la pièce peut être dépensée.
    * *vin* - Liste des entrées de la transaction :
      * *gen* - Les transactions du mineur sont des transactions de la base de la pièce, ou "gen".
        * *height* - Cette hauteur de bloc, c.a.d lorsque la transaction de la base de la pièce est générée.
    * *vout* - Liste des sorties de la transaction. Chaque sortie contient :
      * *amount* - Le montant de la sortie, en @unités-atomiques.
469
470
      * *target* -
        * *key* -
471
472
473
474
475
    * *extra* - Habituellement appelé "ID de transaction" mais peut inclure n'importe quelle chaîne de 32 octets ou 64 caractères hexadécimaux.
    * *signatures* - Contient les signatures des signataires de la transaction. Les transactions de la base de la pièce n'ont pas de signatures.
  * *tx_hashes* - Liste des hachages des transactions autres que la transaction de la base de la pièce. S'il n'y a pas d'autre transaction, cette liste sera vide.
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
* *untrusted* - booléen; Indique si le résultat est obtenu en utilisant un nœud d'amorce, auquel il ne faudrait pas faire confiance (`true`), ou si le démon est totalement synchronisé (`false`).
el00ruobuob's avatar
el00ruobuob committed
476

477
**Recherche par hauteur :**
el00ruobuob's avatar
el00ruobuob committed
478

479
Dans l'exemple ci-desous, le bloc 912345 est recherché par sa hauteur. Remarquez que le bloc 912345 n'a pas de transactions autre que la transaction de la base de la pièce. (voir l'exemple suivant pour un bloc avec d'autres transactions):
el00ruobuob's avatar
el00ruobuob committed
480
481

```
482
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block","params":{"height":912345}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
483
484
485
486
487

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
488
    "blob": "0102f4bedfb405b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff786e0600000195d83701ffd9d73704ee84ddb42102378b043c1724c92c69d923d266fe86477d3a5ddd21145062e148c64c5767700880c0fc82aa020273733cbd6e6218bda671596462a4b062f95cfe5e1dbb5b990dacb30e827d02f280f092cbdd080247a5dab669770da69a860acde21616a119818e1a489bb3c4b1b6b3c50547bc0c80e08d84ddcb01021f7e4762b8b755e3e3c72b8610cc87b9bc25d1f0a87c0c816ebb952e4f8aff3d2b01fd0a778957f4f3103a838afda488c3cdadf2697b3d34ad71234282b2fad9100e02080000000bdfc2c16c00",
el00ruobuob's avatar
el00ruobuob committed
489
    "block_header": {
490
491
      "block_size": 210,
      "depth": 649772,
el00ruobuob's avatar
el00ruobuob committed
492
493
494
495
496
497
      "difficulty": 815625611,
      "hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
      "height": 912345,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 1646,
498
      "num_txes": 0,
el00ruobuob's avatar
el00ruobuob committed
499
500
501
502
503
504
      "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}",
505
506
507
    "miner_tx_hash": "c7da3965f25c19b8eb7dd8db48dcd4e7c885e2491db77e289f0609bf8e08ec30",
    "status": "OK",
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
508
509
510
511
  }
}
```

512
**Recherche par hachage :**
el00ruobuob's avatar
el00ruobuob committed
513

514
Dans cet exemple, le bloc 993056 est recherché par son hachage. Remarquez que le bloc 993056 a 3 transactions autres que la transaction de la base de la pièce :
el00ruobuob's avatar
el00ruobuob committed
515
516

```
517
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block","params":{"hash":"510ee3c4e14330a7b96e883c323a60ebd1b5556ac1262d0bc03c24a3b785516f"}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
518
519
520
521
522

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
523
    "blob": "0102a3978cb7050ea4af6547c05c965afc8df6d31509ff3105dc7ae6b10172521d77e09711fd6df407000001dcce3c01ffa0ce3c049da8bece070259e9d685b3484886bc7b47c133e6099ecdf212d5eaa16ce19cd58e8c3c1e590a80d88ee16f024c5e2f542d25513c46b9e3b7d40140a22d0ae5314bfcae492ad9f56fff8185f080d0b8e1981a0213dd8ffdac9e6a2f71e327dad65328198dc879a492d145eae72677c0703a351580c0f9decfae010262bda00341681dccbc066757862da593734395745bdfe1fdc89b5948c86a5d4c2b01b691851cf057b9c302a3dbca879e1cba4cc45061ca55aaa6e03cdc67ab9e455002080000000c617fdf160379c6b9f00db027bde151705aafe85c495883aae2597d5cb8e1adb2e0f3ae1d07d715db73331abc3ec588ef07c7bb195786a4724b08dff431b51ffa32a4ce899bb197066426c0ed89f0b431fe171f7fd62bc95dd29943daa7cf3585cf1fdfc99d",
el00ruobuob's avatar
el00ruobuob committed
524
    "block_header": {
525
526
      "block_size": 3981,
      "depth": 569068,
el00ruobuob's avatar
el00ruobuob committed
527
528
529
530
531
532
      "difficulty": 964985344,
      "hash": "510ee3c4e14330a7b96e883c323a60ebd1b5556ac1262d0bc03c24a3b785516f",
      "height": 993056,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 2036,
533
      "num_txes": 3,
el00ruobuob's avatar
el00ruobuob committed
534
535
536
537
538
539
      "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}",
540
    "miner_tx_hash": "372395aeac5e5ad2c40b4c546b0bad00c4242fb2bd88e2e25f4e43231876f81e",
el00ruobuob's avatar
el00ruobuob committed
541
    "status": "OK",
542
543
    "tx_hashes": ["79c6b9f00db027bde151705aafe85c495883aae2597d5cb8e1adb2e0f3ae1d07","d715db73331abc3ec588ef07c7bb195786a4724b08dff431b51ffa32a4ce899b","b197066426c0ed89f0b431fe171f7fd62bc95dd29943daa7cf3585cf1fdfc99d"],
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
544
545
546
547
548
549
550
  }
}
```


### **get_connections**

551
Récupère les informations des connexions entrantes et sortantes de votre nœud.
el00ruobuob's avatar
el00ruobuob committed
552

553
Alias : *Aucun*.
554

555
Entrées : *Aucune*.
el00ruobuob's avatar
el00ruobuob committed
556

557
Sorties :
el00ruobuob's avatar
el00ruobuob committed
558

559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
* *connections* - Liste de toutes les connexions et leurs infos :
  * *address* - chaîne de caractères; L'adresse de l'homologue, actuellement IPv4 & port
  * *avg_download* - entier non signé; Moyenne des octets de données téléchargés par le nœud.
  * *avg_upload* - entier non signé; Moyenne des octets de données téléversés par le nœud.
  * *connection_id* - chaîne de caractères; L'ID de connexion
  * *current_download* - entier non signé; Octets actuellement téléchargés par le nœud.
  * *current_upload* - entier non signé; Octets actuellement téléversés par le nœud.
  * *height*- entier non signé; La hauteur de bloc de l'homologue.
  * *host* - chaîne de caractères; L'hôte de l'homologue.
  * *incoming* - booléen; Est-ce que l'homologue récupère des informations depuis votre nœud ?
  * *ip* - chaîne de caractères; L'adresse IP du nœud.
  * *live_time* - entier non signé
  * *local_ip* - booléen
  * *localhost* - booléen
  * *peer_id* - chaîne de caractères; L'ID du nœud sur le réseau.
  * *port* - chaîne de caractères; Le port utilisé par le nœud pour se connecter au réseau.
  * *recv_count* - entier non signé
  * *recv_idle_time* - entier non signé
  * *send_count* - entier non signé
  * *send_idle_time* - entier non signé
  * *state* - chaîne de caractères
  * *support_flags* - entier non signé
el00ruobuob's avatar
el00ruobuob committed
581

582
Ci-dessous un exemple de `get_connections` et son retour :
el00ruobuob's avatar
el00ruobuob committed
583
584
585
586
587
588
589
590
591

```
$ 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": [{
592
      "address": "173.90.69.136:62950",
el00ruobuob's avatar
el00ruobuob committed
593
      "avg_download": 0,
594
595
      "avg_upload": 2,
      "connection_id": "083c301a3030329a487adb12ad981d2c",
el00ruobuob's avatar
el00ruobuob committed
596
      "current_download": 0,
597
598
599
600
601
602
      "current_upload": 2,
      "height": 1562127,
      "host": "173.90.69.136",
      "incoming": true,
      "ip": "173.90.69.136",
      "live_time": 8,
el00ruobuob's avatar
el00ruobuob committed
603
604
      "local_ip": false,
      "localhost": false,
605
606
607
608
609
610
611
612
      "peer_id": "c959fbfbed9e44fb",
      "port": "62950",
      "recv_count": 259,
      "recv_idle_time": 8,
      "send_count": 24342,
      "send_idle_time": 8,
      "state": "state_normal",
      "support_flags": 0
el00ruobuob's avatar
el00ruobuob committed
613
614
615
616
617
618
619
620
621
622
623
    },{
    ...
    }],
    "status": "OK"
  }
}
```


### **get_info**

624
Récupère les informations générales à propos de l'état de votre nœud et du réseau.
el00ruobuob's avatar
el00ruobuob committed
625

626
Alias :
627
628
629
630

* */get_info*
* */getinfo*

631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
Voir l'autre appel RPC du démon [/get_info (not JSON)](#get_info-not-json)

Entrées : *Aucune*.

Sorties :

* *alt_blocks_count* - entier non signé; Nombre de bloc alternatifs jusqu'à la chaîne principale.
* *block_size_limit* - entier non signé; Taille de bloc maximale autorisée.
* *block_size_median* - entier non signé; Taille de bloc médiane des 100 derniers blocs.
* *bootstrap_daemon_address* - chaîne de caractères; @nœud-d'amorce permettant d'utiliser immédiatement des portefeuilles durant la synchronisation en proxyfiant le RPC vers celui-ci. (Remarque : les réponses pourraient ne pas être digne de confiance).
* *cumulative_difficulty* - entier non signé; Cumule de difficulté de tous les blocs de la chaîne de blocs.
* *difficulty* - entier non signé; Difficulté du réseau (analogue à la robustesse du réseau)
* *free_space* - entier non signé; Espace disque disponible sur le nœud.
* *grey_peerlist_size* - entier non signé; Taille de la liste grise d'homologues.
* *height* - entier non signé; Longueur actuelle de la plus longue chaîne connue du démon.
* *height_without_bootstrap* - entier non signé; Longueur actuelle de la chaîne locale du démon.
* *incoming_connections_count* - entier non signé; Nombre d'homologue connectés et se synchronisant depuis notre nœud.
* *mainnet* - booléen; Indique si le nœud est sur le mainnet (`true`) ou non (`false`).
* *offline* - booléen; Indique si le nœud est hors ligne (`true`) ou en ligne (`false`).
* *outgoing_connections_count* - entier non signé; Nombre d'homologues auxquels vous êtes connectés et auprès desquels cous récupérez des informations.
* *rpc_connections_count* - entier non signé; Nombre de client RPC connectés au démon (cette requête RPC comprise).
* *stagenet* - booléen; Indique si le nœud est sur le stagenet (`true`) ou non (`false`).
* *start_time* - entier non signé; Heure de démarage du démon, au format UNIX.
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
* *target* - entier non signé; Cible actuel pour la prochaine preuve de travail.
* *target_height* - entier non signé; La hauteur du prochain bloc dans la chaîne.
* *testnet* - booléen; Indique si le nœud est sur le testnet (`true`) ou non (`false`).
* *top_block_hash* - chaîne de caractères; Hachage du plus haut bloc dans la chaîne.
* *tx_count* - entier non signé; Nombre total de transactions (hors transactions de la base de la pièce) dans la chaîne.
* *tx_pool_size* - entier non signé; Nombre de transactions qui ont été diffusées mais pas incluses dans un bloc.
* *untrusted* - booléen; Indique si le résultat est obtenu en utilisant un nœud d'amorce, auquel il ne faudrait pas faire confiance (`true`), ou si le démon est totalement synchronisé (`false`).
* *was_bootstrap_ever_used* - booléen; Indique si un nœud d'amorce à jamais été utilisé depuis le démarrage du démon.
* *white_peerlist_size* - entier non signé; Taille de la liste blanche d'homologues.

Ci-dessous un exemple d'appel `get_info` et de son retour :
el00ruobuob's avatar
el00ruobuob committed
666
667
668
669
670
671
672
673

```
$ 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": {
674
675
676
677
678
679
680
681
682
683
684
685
686
    "alt_blocks_count": 6,
    "block_size_limit": 600000,
    "block_size_median": 129017,
    "bootstrap_daemon_address": "",
    "cumulative_difficulty": 14121125493385685,
    "difficulty": 60580751777,
    "free_space": 138758750208,
    "grey_peerlist_size": 4998,
    "height": 1562168,
    "height_without_bootstrap": 1562168,
    "incoming_connections_count": 2,
    "mainnet": true,
    "offline": false,
el00ruobuob's avatar
el00ruobuob committed
687
    "outgoing_connections_count": 8,
688
689
690
    "rpc_connections_count": 2,
    "stagenet": false,
    "start_time": 1524751757,
el00ruobuob's avatar
el00ruobuob committed
691
    "status": "OK",
692
693
    "target": 120,
    "target_height": 1562063,
el00ruobuob's avatar
el00ruobuob committed
694
    "testnet": false,
695
696
697
698
699
700
    "top_block_hash": "7a7ba647080844073fdd8e3a069e00554c773d6e6863354dba1dec45a43f5592",
    "tx_count": 2759894,
    "tx_pool_size": 755,
    "untrusted": false,
    "was_bootstrap_ever_used": false,
    "white_peerlist_size": 1000
el00ruobuob's avatar
el00ruobuob committed
701
702
703
704
705
706
707
  }
}
```


### **hard_fork_info**

708
Recherche des informations concernant le vote et la disponibilité d'une mise à jour réseau.
el00ruobuob's avatar
el00ruobuob committed
709

710
Alias : *Aucun*.
711

712
Entrées : *Aucune*.
el00ruobuob's avatar
el00ruobuob committed
713

714
Sorties :
el00ruobuob's avatar
el00ruobuob committed
715

716
717
718
719
720
721
722
723
724
* *earliest_height* - entier non signé; Hauteur de bloc à laquelle la mise à jour réseau sera activée si elle est votée.
* *enabled* - booléen; Indique si la mise à jour réseau est appliquée.
* *state* - entier non signé; Statut actuel de mise à jour réseau : 0 (il semble y avoir une mise à jour du réseau), 1 (une mise à jour logicielle est nécessaire pour suivre la mise à jour du réseau) ou 2 (tout va bien).
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
* *threshold* - entier non signé; Pourcentage de vote minimum nécessaire pour déclencher la mise à jour du réseau. 80 par défaut.
* *version* - entier non signé; La verion de bloc majeure pour cette mise mise à jour réseau.
* *votes* - entier non signé; Nombre de votes en faveur de la mise à jour réseau.
* *voting* - entier non signé; Statut du vote de la mise à jour réseau
* *window* - entier non signé; Nombre de blocs sur lesquels les votes actuels sont diffusés. 10080 blocs par défaut.
el00ruobuob's avatar
el00ruobuob committed
725

726
Exemple :
el00ruobuob's avatar
el00ruobuob committed
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748

```
$ 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
  }
}
```


749
### **set_bans**
el00ruobuob's avatar
el00ruobuob committed
750

751
Bannir un autre nœud par son IP.
el00ruobuob's avatar
el00ruobuob committed
752

753
Alias : *Aucun*.
754

755
Entrées :
el00ruobuob's avatar
el00ruobuob committed
756

757
758
759
760
761
* *bans* - Une liste de nœuds à bannir :
  * *host* - chaîne de caractères; Hôte à bannir (IP au format A.B.C.D - supportera des adresses I2P à l'avenir).
  * *ip* - entier non signé; Adresse IP à bannir, sous forme d'entier.
  * *ban* - booléen; Spécifier `true` pour bannir.
  * *seconds* - entier non signé; Nombre de secondes pendant lesquelles bannir le nœud.
762

763
Sorties :
el00ruobuob's avatar
el00ruobuob committed
764

765
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
el00ruobuob's avatar
el00ruobuob committed
766

767
768
Examples:

769
**bannir par hôte**
770

771
Dans l'exemple ci-dessous, un hôte est banni avec son adresse IP sous la forme d'une chaîne de caractères A.B.C.D :
772
773
774
775
776
777
778
779
780
781
782
783
784

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

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

785
**bannir par ip**
786

787
Dans l'exemple ci-dessous, une adresse IP au format entier est bannie :
el00ruobuob's avatar
el00ruobuob committed
788
789

```
790
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"set_bans","params":{"bans":[{"ip":838969536,"ban":true,"seconds":30}]}}' -H  'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
791
792
793
794
795
796
797
798
799
800
801

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


802
803
### **get_bans**

804
Obtenir la liste des IPs bannies.
805

806
Alias : *Aucun*.
el00ruobuob's avatar
el00ruobuob committed
807

808
Entrées : *Aucune*.
el00ruobuob's avatar
el00ruobuob committed
809

810
Sorties :
el00ruobuob's avatar
el00ruobuob committed
811

812
813
814
815
816
* *bans* - Liste des nœuds bannis :
  * *host* - chaîne de caractères; Hôte banni (IP au format A.B.C.D).
  * *ip* - entier non signé; Adresse IP bannie, au format entier.
  * *seconds* - entier non signé; Temps Unix local jusqu'auquel cette IP est bannie.
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
el00ruobuob's avatar
el00ruobuob committed
817

818
Exemple :
el00ruobuob's avatar
el00ruobuob committed
819
820

```
821
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_bans"}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
822
823
824
825
826
827

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "bans": [{
828
829
830
831
832
      "host": "102.168.1.51",
      "ip": 855746662,
      "seconds": 22
    },{
      "host": "192.168.1.50",
el00ruobuob's avatar
el00ruobuob committed
833
      "ip": 838969536,
834
      "seconds": 28
el00ruobuob's avatar
el00ruobuob committed
835
836
837
838
839
840
841
    }],
    "status": "OK"
  }
}
```


842
### **flush_txpool**
el00ruobuob's avatar
el00ruobuob committed
843

844
Vide le pool de transactions de certains ids de tx.
el00ruobuob's avatar
el00ruobuob committed
845

846
Alias : *Aucun*.
el00ruobuob's avatar
el00ruobuob committed
847

848
Entrées :
el00ruobuob's avatar
el00ruobuob committed
849

850
* *txids* - liste de chaînes de caractères; Optionnel, liste d'IDs de transactions à vider du pool (tous les ids de tx sont vidés si vide).
el00ruobuob's avatar
el00ruobuob committed
851

852
Sorties :
el00ruobuob's avatar
el00ruobuob committed
853

854
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
el00ruobuob's avatar
el00ruobuob committed
855

856
Exemple :
el00ruobuob's avatar
el00ruobuob committed
857

858
859
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"flush_txpool","params":{"txids":["dc16fa8eaffe1484ca9014ea050e13131d3acf23b419f33bb4cc0b32b6c49308",""]}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
860

861
862
863
864
865
866
867
868
869
870
871
{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "status": "OK"
  }
}
```

### **get_output_histogram**

872
873
Obtenir un histogramme des montant des sorties. Pour tous les montants (pouvant être filtrés par les paramètres), fournit le nombre de sorties sur la chaîne pour chaque montant.
Les sorties des transactions confidentielles de cercle comptent comme un montant de 0.
874

875
Entrées :
876

877
878
879
880
881
* *amounts* - liste d'entiers non signés
* *min_count* - entier non signé
* *max_count* - entier non signé
* *unlocked* - booléen
* *recent_cutoff* - entier non signé
el00ruobuob's avatar
el00ruobuob committed
882

883
Sorties :
el00ruobuob's avatar
el00ruobuob committed
884

885
886
887
888
889
890
891
* *histogram* - liste d'entrées de l'histogramme, avec la structure suivante :
  * *amount* - entier non signé; Montant des sorties en @unités-atomiques
  * *total_instances* - entier non signé;
  * *unlocked_instances* - entier non signé;
  * *recent_instances* - entier non signé;
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
* *untrusted* - booléen; Indique si le résultat est obtenu en utilisant un nœud d'amorce, auquel il ne faudrait pas faire confiance (`true`), ou si le démon est totalement synchronisé (`false`).
892

893
Exemple :
el00ruobuob's avatar
el00ruobuob committed
894
895

```
896
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_output_histogram","params":{"amounts":[20000000000]}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
897
898

{
899
900
901
902
903
904
905
906
907
908
909
910
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "histogram": [{
      "amount": 20000000000,
      "recent_instances": 0,
      "total_instances": 381458,
      "unlocked_instances": 0
    }],
    "status": "OK",
    "untrusted": false
  }
el00ruobuob's avatar
el00ruobuob committed
911
912
913
914
}
```


915
### **get_coinbase_tx_sum**
el00ruobuob's avatar
el00ruobuob committed
916

917
Obtenir la somme des montants des transactions de la base de la pièce et des frais des n derniers blocs en débutant à une certaine hauteur.
918

919
Alias : *Aucun*.
el00ruobuob's avatar
el00ruobuob committed
920

921
Entrées :
el00ruobuob's avatar
el00ruobuob committed
922

923
924
* *height* - entier non signé; Hauteur de bloc à partir de laquelle récupérer les montants.
* *count* - entier non signé; Nombre de bloc à inclure dans la somme.
el00ruobuob's avatar
el00ruobuob committed
925

926
Sorties :
el00ruobuob's avatar
el00ruobuob committed
927

928
929
930
* *emission_amount* - entier non signé; Montant des récompenses de la base de la pièce en @unités-atomiques
* *fee_amount* - entier non signé; Montant des frais en @unités-atomiques
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
931

932
Exemple :
el00ruobuob's avatar
el00ruobuob committed
933
934

```
935
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_coinbase_tx_sum","params":{"height":1563078,"count":2}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
936
937

{
938
939
940
941
942
943
944
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "emission_amount": 9387854817320,
    "fee_amount": 83981380000,
    "status": "OK"
  }
el00ruobuob's avatar
el00ruobuob committed
945
946
947
948
}
```


949
950
### **get_version**

951
Indique la version actuelle du nœud
952

953
Alias : *Aucun*.
954

955
Entrées : *Aucune*.
956

957
Sorties :
958

959
960
961
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
* *untrusted* - booléen; Indique si le résultat est obtenu en utilisant un nœud d'amorce, auquel il ne faudrait pas faire confiance (`true`), ou si le démon est totalement synchronisé (`false`).
* *version* - entier non signé;
962

963
Exemple :
el00ruobuob's avatar
el00ruobuob committed
964
965

```
966
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_version"}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
967
968

{
969
970
971
972
973
974
975
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "status": "OK",
    "untrusted": false,
    "version": 65555
  }
el00ruobuob's avatar
el00ruobuob committed
976
977
978
979
}
```


980
### **get_fee_estimate**
el00ruobuob's avatar
el00ruobuob committed
981

982
Donne une estimation des frais par kO.
983

984
Alias : *Aucun*.
el00ruobuob's avatar
el00ruobuob committed
985

986
Entrées :
el00ruobuob's avatar
el00ruobuob committed
987

988
* *grace_blocks* - entier non signé; Optionnel
el00ruobuob's avatar
el00ruobuob committed
989

990
Sorties :
el00ruobuob's avatar
el00ruobuob committed
991

992
993
994
* *fee* - entier non signé; Montant estimé des frais par kO en @unités-atomiques
* *status* - chaîne de caractères; Code erreur général RPC. "OK" signifie que tout va bien.
* *untrusted* - booléen; Indique si le résultat est obtenu en utilisant un nœud d'amorce, auquel il ne faudrait pas faire confiance (`true`), ou si le démon est totalement synchronisé (`false`).
el00ruobuob's avatar
el00ruobuob committed
995

996
Exemple :
el00ruobuob's avatar
el00ruobuob committed
997
998

```
999
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_fee_estimate"}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
1000