Merge branch 'hunjixin-hunjixin/feat/batchmsg' into master
This commit is contained in:
commit
9c17ac5bde
@ -207,6 +207,15 @@ type FullNode interface {
|
|||||||
// based on current chain conditions
|
// based on current chain conditions
|
||||||
MpoolPushMessage(ctx context.Context, msg *types.Message, spec *MessageSendSpec) (*types.SignedMessage, error)
|
MpoolPushMessage(ctx context.Context, msg *types.Message, spec *MessageSendSpec) (*types.SignedMessage, error)
|
||||||
|
|
||||||
|
// MpoolBatchPush batch pushes a signed message to mempool.
|
||||||
|
MpoolBatchPush(context.Context, []*types.SignedMessage) ([]cid.Cid, error)
|
||||||
|
|
||||||
|
// MpoolBatchPushUntrusted batch pushes a signed message to mempool from untrusted sources.
|
||||||
|
MpoolBatchPushUntrusted(context.Context, []*types.SignedMessage) ([]cid.Cid, error)
|
||||||
|
|
||||||
|
// MpoolBatchPushMessage batch pushes a unsigned message to mempool.
|
||||||
|
MpoolBatchPushMessage(context.Context, []*types.Message, *MessageSendSpec) ([]*types.SignedMessage, error)
|
||||||
|
|
||||||
// MpoolGetNonce gets next nonce for the specified sender.
|
// MpoolGetNonce gets next nonce for the specified sender.
|
||||||
// Note that this method may not be atomic. Use MpoolPushMessage instead.
|
// Note that this method may not be atomic. Use MpoolPushMessage instead.
|
||||||
MpoolGetNonce(context.Context, address.Address) (uint64, error)
|
MpoolGetNonce(context.Context, address.Address) (uint64, error)
|
||||||
|
@ -131,6 +131,10 @@ type FullNodeStruct struct {
|
|||||||
MpoolGetNonce func(context.Context, address.Address) (uint64, error) `perm:"read"`
|
MpoolGetNonce func(context.Context, address.Address) (uint64, error) `perm:"read"`
|
||||||
MpoolSub func(context.Context) (<-chan api.MpoolUpdate, error) `perm:"read"`
|
MpoolSub func(context.Context) (<-chan api.MpoolUpdate, error) `perm:"read"`
|
||||||
|
|
||||||
|
MpoolBatchPush func(ctx context.Context, smsgs []*types.SignedMessage) ([]cid.Cid, error) `perm:"write"`
|
||||||
|
MpoolBatchPushUntrusted func(ctx context.Context, smsgs []*types.SignedMessage) ([]cid.Cid, error) `perm:"write"`
|
||||||
|
MpoolBatchPushMessage func(ctx context.Context, msgs []*types.Message, spec *api.MessageSendSpec) ([]*types.SignedMessage, error) `perm:"sign"`
|
||||||
|
|
||||||
MinerGetBaseInfo func(context.Context, address.Address, abi.ChainEpoch, types.TipSetKey) (*api.MiningBaseInfo, error) `perm:"read"`
|
MinerGetBaseInfo func(context.Context, address.Address, abi.ChainEpoch, types.TipSetKey) (*api.MiningBaseInfo, error) `perm:"read"`
|
||||||
MinerCreateBlock func(context.Context, *api.BlockTemplate) (*types.BlockMsg, error) `perm:"write"`
|
MinerCreateBlock func(context.Context, *api.BlockTemplate) (*types.BlockMsg, error) `perm:"write"`
|
||||||
|
|
||||||
@ -616,6 +620,18 @@ func (c *FullNodeStruct) MpoolPushMessage(ctx context.Context, msg *types.Messag
|
|||||||
return c.Internal.MpoolPushMessage(ctx, msg, spec)
|
return c.Internal.MpoolPushMessage(ctx, msg, spec)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *FullNodeStruct) MpoolBatchPush(ctx context.Context, smsgs []*types.SignedMessage) ([]cid.Cid, error) {
|
||||||
|
return c.Internal.MpoolBatchPush(ctx, smsgs)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *FullNodeStruct) MpoolBatchPushUntrusted(ctx context.Context, smsgs []*types.SignedMessage) ([]cid.Cid, error) {
|
||||||
|
return c.Internal.MpoolBatchPushUntrusted(ctx, smsgs)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *FullNodeStruct) MpoolBatchPushMessage(ctx context.Context, msgs []*types.Message, spec *api.MessageSendSpec) ([]*types.SignedMessage, error) {
|
||||||
|
return c.Internal.MpoolBatchPushMessage(ctx, msgs, spec)
|
||||||
|
}
|
||||||
|
|
||||||
func (c *FullNodeStruct) MpoolSub(ctx context.Context) (<-chan api.MpoolUpdate, error) {
|
func (c *FullNodeStruct) MpoolSub(ctx context.Context) (<-chan api.MpoolUpdate, error) {
|
||||||
return c.Internal.MpoolSub(ctx)
|
return c.Internal.MpoolSub(ctx)
|
||||||
}
|
}
|
||||||
|
@ -70,6 +70,9 @@
|
|||||||
* [MinerCreateBlock](#MinerCreateBlock)
|
* [MinerCreateBlock](#MinerCreateBlock)
|
||||||
* [MinerGetBaseInfo](#MinerGetBaseInfo)
|
* [MinerGetBaseInfo](#MinerGetBaseInfo)
|
||||||
* [Mpool](#Mpool)
|
* [Mpool](#Mpool)
|
||||||
|
* [MpoolBatchPush](#MpoolBatchPush)
|
||||||
|
* [MpoolBatchPushMessage](#MpoolBatchPushMessage)
|
||||||
|
* [MpoolBatchPushUntrusted](#MpoolBatchPushUntrusted)
|
||||||
* [MpoolClear](#MpoolClear)
|
* [MpoolClear](#MpoolClear)
|
||||||
* [MpoolGetConfig](#MpoolGetConfig)
|
* [MpoolGetConfig](#MpoolGetConfig)
|
||||||
* [MpoolGetNonce](#MpoolGetNonce)
|
* [MpoolGetNonce](#MpoolGetNonce)
|
||||||
@ -1697,6 +1700,54 @@ The Mpool methods are for interacting with the message pool. The message pool
|
|||||||
manages all incoming and outgoing 'messages' going over the network.
|
manages all incoming and outgoing 'messages' going over the network.
|
||||||
|
|
||||||
|
|
||||||
|
### MpoolBatchPush
|
||||||
|
MpoolBatchPush batch pushes a signed message to mempool.
|
||||||
|
|
||||||
|
|
||||||
|
Perms: write
|
||||||
|
|
||||||
|
Inputs:
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
null
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Response: `null`
|
||||||
|
|
||||||
|
### MpoolBatchPushMessage
|
||||||
|
MpoolBatchPushMessage batch pushes a unsigned message to mempool.
|
||||||
|
|
||||||
|
|
||||||
|
Perms: sign
|
||||||
|
|
||||||
|
Inputs:
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"MaxFee": "0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Response: `null`
|
||||||
|
|
||||||
|
### MpoolBatchPushUntrusted
|
||||||
|
MpoolBatchPushUntrusted batch pushes a signed message to mempool from untrusted sources.
|
||||||
|
|
||||||
|
|
||||||
|
Perms: write
|
||||||
|
|
||||||
|
Inputs:
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
null
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Response: `null`
|
||||||
|
|
||||||
### MpoolClear
|
### MpoolClear
|
||||||
MpoolClear clears pending messages from the mpool
|
MpoolClear clears pending messages from the mpool
|
||||||
|
|
||||||
|
@ -187,6 +187,42 @@ func (a *MpoolAPI) MpoolPushMessage(ctx context.Context, msg *types.Message, spe
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *MpoolAPI) MpoolBatchPush(ctx context.Context, smsgs []*types.SignedMessage) ([]cid.Cid, error) {
|
||||||
|
var messageCids []cid.Cid
|
||||||
|
for _, smsg := range smsgs {
|
||||||
|
smsgCid, err := a.Mpool.Push(smsg)
|
||||||
|
if err != nil {
|
||||||
|
return messageCids, err
|
||||||
|
}
|
||||||
|
messageCids = append(messageCids, smsgCid)
|
||||||
|
}
|
||||||
|
return messageCids, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *MpoolAPI) MpoolBatchPushUntrusted(ctx context.Context, smsgs []*types.SignedMessage) ([]cid.Cid, error) {
|
||||||
|
var messageCids []cid.Cid
|
||||||
|
for _, smsg := range smsgs {
|
||||||
|
smsgCid, err := a.Mpool.PushUntrusted(smsg)
|
||||||
|
if err != nil {
|
||||||
|
return messageCids, err
|
||||||
|
}
|
||||||
|
messageCids = append(messageCids, smsgCid)
|
||||||
|
}
|
||||||
|
return messageCids, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *MpoolAPI) MpoolBatchPushMessage(ctx context.Context, msgs []*types.Message, spec *api.MessageSendSpec) ([]*types.SignedMessage, error) {
|
||||||
|
var smsgs []*types.SignedMessage
|
||||||
|
for _, msg := range msgs {
|
||||||
|
smsg, err := a.MpoolPushMessage(ctx, msg, spec)
|
||||||
|
if err != nil {
|
||||||
|
return smsgs, err
|
||||||
|
}
|
||||||
|
smsgs = append(smsgs, smsg)
|
||||||
|
}
|
||||||
|
return smsgs, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (a *MpoolAPI) MpoolGetNonce(ctx context.Context, addr address.Address) (uint64, error) {
|
func (a *MpoolAPI) MpoolGetNonce(ctx context.Context, addr address.Address) (uint64, error) {
|
||||||
return a.Mpool.GetNonce(addr)
|
return a.Mpool.GetNonce(addr)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user