---
# System prepended metadata

title: L2 Node API(blockbook edition)

---

# L2 Node API(blockbook edition)

> В итоге для работы с любым блокчейном нужно сформировать 3 группы API - Для установки актуального состояния; Для публикации истории; Для гарантирования актуального состояния стороне, не имеющей возможности отслеживать блокчейн транзакции онлайн. 
 
## L2 State API(REST). 

1. **INIT_STATE**(L2) - это API нужен для передачи и/или получения новой транзакции начального cтейта, вызывается перед подписанием транзакции ребалансировки, вызывается до формирования транзакции ребаланса, в случаях если трейдер является стороной заинтересованной в ребалансировке.

> это API устанавливает или запрашивает формирования новой транзакции начального состояния, перед вызовом API REBALANCE, на выходе у стороны публикующией в L1 транзакцию должна быть на руках транзакция устанавливающая состояние до публикации.

2. **REBALANCE**(L1) - это API используется для формирования транзакций предназначенных к публикации в блокчейн, изменяющих емкость канала.

> **если заинтересован трейдер(он выводит, или добавляет финансирование)** - то это запрос на формирование подписи на стороне биржи в ответе получаем подпись - такая транзакция(дополненная подписью трейдера) должна быть опубликовано трейдером в блокчейне. 

> **если заинтересованна биржа(она выводит, или добавляет финансирование)** - то это передача подписи мультисига, сформированной на стороне клиента - такая транзакция(дополненная подписью биржи) должна быть опубликовано биржей. 

3. **TRANSFER**(L2)  - это API нужен для передачи и/или получения заинтересованной стороной артефактов для формирования актуальной транзакции состояния(офф-чейн)

> **если заинтересован трейдер(L3->L2)** - то это запрос на формирование подписи на стороне биржи включает ключ отзыва от предыдущего состояния в ответе получаем подпись - такая транзакция(дополненная подписью трейдера) может быть опубликовано трейдером, а отозвана биржей. 

> **если заинтересованна биржа(L2->L3)** - то это передача подписи, сформированной на стороне клиента и получение артефактов(нонса и хеша отзыва) для следующей транзакции - такая транзакция(дополненная подписью биржи) может быть опубликовано биржей, а отозвана трейдером. 

## L2 History API

```
Поставщик исторических данных, о неактуальных транзакциях состояния. 
Такие транзакции поставляются без подписей сторон.

Важно - предусмотреть в этом API вывод актуального нонса, 
который трейдер может использовать для формирования адреса 
для следующей транзакции(биржа то не проебет, а вот трейдер может)
```

## Keyless Observer API

```
Охранная система для тонких клиентов, не имеющих возможность следить 24/7 за блокчейном

Для тех случаев когда биржа или трейдер ушли в офлайн, и опонент 
решив воспользоватся сложившимся положением решает опубликовать 
в блокчейне транзакцию !!!не-актуального!!! состояния
```

## Контракты каналов состояний

### 1. BTC

### 2. EOS

### 3. TRON

### 4. ETH

### 5. QTUM

### 6. NEO

## Сценарии тестирования контрактов состояний

1. Предотвращение попытки публикации.
2. Закрытие канала при отсутствии одной из сторон.
3. Штатный режим, подсчет комиисии.
4. Штатный режим открытие-закрытие канала.