## SendTx
```plantuml
@startuml
actor Alice
participant "Ring" as r
participant "Crypter" as c
participant "TxCheck" as t
participant "Sentry" as s
participant "p2p" as p
participant "nebula" as n

n -> p : SubscribeMessage(rethtx, batchtx)
Alice -> r : SendRawTransaction(ethtx)
r -> c : BatchRecoverTx(ethtx)
c -> r : RethTx
r -> t : BatchCheckTx(rethTx)
t -> r : true
r -> Alice : txhash
r -> r : makeBatchTx
r -> s : LimitInfoRequest
s -> r : LimitInfoResponse
r -> s : CommitBatchTx(batchtx)
r -> p : BroadCastMessage(rethtx, batchtx)
p -> n : Stream(rethtx, batchtx)
n -> n : mineblock(rethtx)
Alice -> r : TransactionReceipt(txhash)
r -> n : TransactionReceipt(txhash)
n -> r : receipt
r -> Alice : receipt
@enduml
```




1.  收交易；
2.  验签
3.  checktx  getnonce  缓存有的用缓存的，缓存没的 向nebula取；（当时讨论的时定时 和nebula同步nonce）
4.  向sentry插叙限流参数；
5.  广播交易
6.  批次排序hash到共识网络；



ring 主要是查block更新了没有，如果更新了，并超时； 广播txs 提交批次；同步地址nonce。