Skip to content

Commit

Permalink
update chain interface and type and event
Browse files Browse the repository at this point in the history
  • Loading branch information
AstaFrode committed Jan 23, 2024
1 parent b8de078 commit 6af4376
Show file tree
Hide file tree
Showing 11 changed files with 165 additions and 102 deletions.
18 changes: 4 additions & 14 deletions chain/audit.go
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ func (c *chainClient) SubmitServiceProof(serviceProof []types.U8) (string, error
}
}

func (c *chainClient) SubmitIdleProofResult(totalProofHash []types.U8, front, rear types.U64, accumulator pattern.Accumulator, result types.Bool, signature pattern.TeeSignature, tee_acc []byte) (string, error) {
func (c *chainClient) SubmitIdleProofResult(totalProofHash []types.U8, front, rear types.U64, accumulator pattern.Accumulator, result types.Bool, sig pattern.TeeSig, teePuk pattern.WorkerPublicKey) (string, error) {
c.lock.Lock()
defer func() {
c.lock.Unlock()
Expand All @@ -306,12 +306,7 @@ func (c *chainClient) SubmitIdleProofResult(totalProofHash []types.U8, front, re
return txhash, pattern.ERR_RPC_CONNECTION
}

teeacc, err := types.NewAccountID(tee_acc)
if err != nil {
return txhash, errors.Wrap(err, "[NewAccountID]")
}

call, err := types.NewCall(c.metadata, pattern.TX_AUDIT_SUBMITIDLEPROOFRESULT, totalProofHash, front, rear, accumulator, result, signature, *teeacc)
call, err := types.NewCall(c.metadata, pattern.TX_AUDIT_SUBMITIDLEPROOFRESULT, totalProofHash, front, rear, accumulator, result, sig, teePuk)
if err != nil {
err = fmt.Errorf("rpc err: [%s] [tx] [%s] NewCall: %v", c.GetCurrentRpcAddr(), pattern.TX_AUDIT_SUBMITIDLEPROOFRESULT, err)
c.SetChainState(false)
Expand Down Expand Up @@ -397,7 +392,7 @@ func (c *chainClient) SubmitIdleProofResult(totalProofHash []types.U8, front, re
}
}

func (c *chainClient) SubmitServiceProofResult(result types.Bool, signature pattern.TeeSignature, bloomFilter pattern.BloomFilter, tee_acc []byte) (string, error) {
func (c *chainClient) SubmitServiceProofResult(result types.Bool, sign pattern.TeeSig, bloomFilter pattern.BloomFilter, teePuk pattern.WorkerPublicKey) (string, error) {
c.lock.Lock()
defer func() {
c.lock.Unlock()
Expand All @@ -415,12 +410,7 @@ func (c *chainClient) SubmitServiceProofResult(result types.Bool, signature patt
return txhash, pattern.ERR_RPC_CONNECTION
}

teeacc, err := types.NewAccountID(tee_acc)
if err != nil {
return txhash, errors.Wrap(err, "[NewAccountID]")
}

call, err := types.NewCall(c.metadata, pattern.TX_AUDIT_SUBMITSERVICEPROOFRESULT, result, signature, bloomFilter, *teeacc)
call, err := types.NewCall(c.metadata, pattern.TX_AUDIT_SUBMITSERVICEPROOFRESULT, result, sign, bloomFilter, teePuk)
if err != nil {
err = fmt.Errorf("rpc err: [%s] [tx] [%s] NewCall: %v", c.GetCurrentRpcAddr(), pattern.TX_AUDIT_SUBMITSERVICEPROOFRESULT, err)
c.SetChainState(false)
Expand Down
4 changes: 4 additions & 0 deletions chain/chain.go
Original file line number Diff line number Diff line change
Expand Up @@ -351,3 +351,7 @@ func (c *chainClient) VerifyPolkaSignatureWithBase58(account, msg, signature str
ok := pub.Verify([]byte(message), sign_bytes)
return ok, nil
}

func subkeytest() {

}
4 changes: 2 additions & 2 deletions chain/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ func (c *chainClient) RetrieveEvent_Audit_SubmitIdleVerifyResult(blockhash types
if err != nil {
continue
}
result.Tee = *accid
result.Miner = *accid
return result, nil
}
}
Expand Down Expand Up @@ -277,7 +277,7 @@ func (c *chainClient) RetrieveEvent_Audit_SubmitServiceVerifyResult(blockhash ty
if err != nil {
continue
}
result.Tee = *accid
result.Miner = *accid
return result, nil
}
}
Expand Down
27 changes: 5 additions & 22 deletions chain/fileBank.go
Original file line number Diff line number Diff line change
Expand Up @@ -1437,7 +1437,7 @@ func (c *chainClient) RestoralComplete(restoralFragmentHash string) (string, err
}
}

func (c *chainClient) CertIdleSpace(idleSignInfo pattern.SpaceProofInfo, teeSignWithAcc, teeSign pattern.TeeSignature, teeWorkAcc string) (string, error) {
func (c *chainClient) CertIdleSpace(idleSignInfo pattern.SpaceProofInfo, teeSign pattern.TeeSig, teePuk pattern.WorkerPublicKey) (string, error) {
c.lock.Lock()
defer func() {
c.lock.Unlock()
Expand All @@ -1454,16 +1454,8 @@ func (c *chainClient) CertIdleSpace(idleSignInfo pattern.SpaceProofInfo, teeSign
if !c.GetChainState() {
return txhash, pattern.ERR_RPC_CONNECTION
}
tee_acc, err := utils.ParsingPublickey(teeWorkAcc)
if err != nil {
return txhash, errors.Wrap(err, fmt.Sprintf("[ParsingPublickey(%s)]", teeWorkAcc))
}
acc, err := types.NewAccountID(tee_acc)
if err != nil {
return txhash, errors.Wrap(err, "[NewAccountID]")
}

call, err := types.NewCall(c.metadata, pattern.TX_FILEBANK_CERTIDLESPACE, idleSignInfo, teeSignWithAcc, teeSign, *acc)
call, err := types.NewCall(c.metadata, pattern.TX_FILEBANK_CERTIDLESPACE, idleSignInfo, teeSign, teePuk)
if err != nil {
err = fmt.Errorf("rpc err: [%s] [tx] [%s] NewCall: %v", c.GetCurrentRpcAddr(), pattern.TX_FILEBANK_CERTIDLESPACE, err)
c.SetChainState(false)
Expand Down Expand Up @@ -1549,7 +1541,7 @@ func (c *chainClient) CertIdleSpace(idleSignInfo pattern.SpaceProofInfo, teeSign
}
}

func (c *chainClient) ReplaceIdleSpace(idleSignInfo pattern.SpaceProofInfo, teeSignWithAcc, teeSign pattern.TeeSignature, teeWorkAcc string) (string, error) {
func (c *chainClient) ReplaceIdleSpace(idleSignInfo pattern.SpaceProofInfo, teeSign pattern.TeeSig, teePuk pattern.WorkerPublicKey) (string, error) {
c.lock.Lock()
defer func() {
c.lock.Unlock()
Expand All @@ -1566,17 +1558,8 @@ func (c *chainClient) ReplaceIdleSpace(idleSignInfo pattern.SpaceProofInfo, teeS
if !c.GetChainState() {
return txhash, pattern.ERR_RPC_CONNECTION
}
tee_acc, err := utils.ParsingPublickey(teeWorkAcc)
if err != nil {
return txhash, errors.Wrap(err, fmt.Sprintf("[ParsingPublickey(%s)]", teeWorkAcc))
}

acc, err := types.NewAccountID(tee_acc)
if err != nil {
return txhash, errors.Wrap(err, "[NewAccountID]")
}

call, err := types.NewCall(c.metadata, pattern.TX_FILEBANK_REPLACEIDLESPACE, idleSignInfo, teeSignWithAcc, teeSign, *acc)
call, err := types.NewCall(c.metadata, pattern.TX_FILEBANK_REPLACEIDLESPACE, idleSignInfo, teeSign, teePuk)
if err != nil {
err = fmt.Errorf("rpc err: [%s] [tx] [%s] NewCall: %v", c.GetCurrentRpcAddr(), pattern.TX_FILEBANK_REPLACEIDLESPACE, err)
c.SetChainState(false)
Expand Down Expand Up @@ -1662,7 +1645,7 @@ func (c *chainClient) ReplaceIdleSpace(idleSignInfo pattern.SpaceProofInfo, teeS
}
}

func (c *chainClient) ReportTagCalculated(teeSig pattern.TeeSignature, tagSigInfo pattern.TagSigInfo) (string, error) {
func (c *chainClient) ReportTagCalculated(teeSig pattern.TeeSig, tagSigInfo pattern.TagSigInfo) (string, error) {
c.lock.Lock()
defer func() {
c.lock.Unlock()
Expand Down
13 changes: 2 additions & 11 deletions chain/sminer.go
Original file line number Diff line number Diff line change
Expand Up @@ -1279,7 +1279,7 @@ func (c *chainClient) RegisterSminerAssignStaking(beneficiaryAcc string, peerId
}
}

func (c *chainClient) RegisterSminerPOISKey(poisKey pattern.PoISKeyInfo, teeSignWithAcc, teeSign pattern.TeeSignature, teeWorkAcc string) (string, error) {
func (c *chainClient) RegisterSminerPOISKey(poisKey pattern.PoISKeyInfo, teeSignWithAcc, teeSign pattern.TeeSig, teePuk pattern.WorkerPublicKey) (string, error) {
c.lock.Lock()
defer func() {
c.lock.Unlock()
Expand All @@ -1299,16 +1299,7 @@ func (c *chainClient) RegisterSminerPOISKey(poisKey pattern.PoISKeyInfo, teeSign
return txhash, pattern.ERR_RPC_CONNECTION
}

pubkey, err := utils.ParsingPublickey(teeWorkAcc)
if err != nil {
return txhash, fmt.Errorf("[DecodeToPub(%s)] %v", teeWorkAcc, err)
}
teeWorkAccount, err := types.NewAccountID(pubkey)
if err != nil {
return txhash, errors.Wrap(err, "[NewAccountID]")
}

call, err = types.NewCall(c.metadata, pattern.TX_SMINER_REGISTERPOISKEY, poisKey, teeSignWithAcc, teeSign, *teeWorkAccount)
call, err = types.NewCall(c.metadata, pattern.TX_SMINER_REGISTERPOISKEY, poisKey, teeSignWithAcc, teeSign, teePuk)
if err != nil {
err = fmt.Errorf("rpc err: [%s] [tx] [%s] NewCall: %v", c.GetCurrentRpcAddr(), pattern.TX_SMINER_REGISTERPOISKEY, err)
c.SetChainState(false)
Expand Down
65 changes: 41 additions & 24 deletions chain/tee.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ import (
"github.com/pkg/errors"
)

func (c *chainClient) QueryTeeWorkerMap(puk []byte) (pattern.TeeWorkerMap, error) {
func (c *chainClient) QueryTeeWorkerMap(puk []byte) (pattern.TeeWorkerInfo, error) {
defer func() {
if err := recover(); err != nil {
log.Println(utils.RecoverError(err))
}
}()

var data pattern.TeeWorkerMap
var data pattern.TeeWorkerInfo

if !c.GetChainState() {
return data, pattern.ERR_RPC_CONNECTION
Expand Down Expand Up @@ -70,16 +70,26 @@ func (c *chainClient) QueryTeeInfo(puk []byte) (pattern.TeeInfo, error) {
if err != nil {
return data, err
}
data.EndPoint = string(teeWorkerInfo.EndPoint)
data.WorkAccount, _ = utils.EncodePublicKeyAsCessAccount(teeWorkerInfo.WorkAccount[:])
data.TeeType = uint8(teeWorkerInfo.TeeType)
data.PeerId = []byte(string(teeWorkerInfo.PeerId[:]))
if teeWorkerInfo.BondStash.HasValue() {
ok, val := teeWorkerInfo.BondStash.Unwrap()
if ok {
data.StashAccount, _ = utils.EncodePublicKeyAsCessAccount(val[:])
data.Pubkey = string(teeWorkerInfo.Pubkey[:])
data.EcdhPubkey = string(teeWorkerInfo.EcdhPubkey[:])
data.Version = uint32(teeWorkerInfo.Version)
data.LastUpdated = uint64(teeWorkerInfo.LastUpdated)
if teeWorkerInfo.StashAccount.HasValue() {
if ok, puk := teeWorkerInfo.StashAccount.Unwrap(); ok {
data.StashAccount, _ = utils.EncodePublicKeyAsCessAccount(puk[:])
}
}
if teeWorkerInfo.AttestationProvider.HasValue() {
if ok, val := teeWorkerInfo.AttestationProvider.Unwrap(); ok {
data.AttestationProvider = uint8(val)
}
}
data.ConfidenceLevel = uint8(teeWorkerInfo.ConfidenceLevel)
data.Features = make([]uint32, len(teeWorkerInfo.Features))
for i := 0; i < len(teeWorkerInfo.Features); i++ {
data.Features[i] = uint32(teeWorkerInfo.Features[i])
}
data.WorkerRole = uint8(teeWorkerInfo.Role)
return data, nil
}

Expand Down Expand Up @@ -112,14 +122,14 @@ func (c *chainClient) QueryTeePodr2Puk() ([]byte, error) {
return []byte(string(data[:])), nil
}

func (c *chainClient) QueryAllTeeWorkerMap() ([]pattern.TeeWorkerMap, error) {
func (c *chainClient) QueryAllTeeWorkerMap() ([]pattern.TeeWorkerInfo, error) {
defer func() {
if err := recover(); err != nil {
log.Println(utils.RecoverError(err))
}
}()

var list []pattern.TeeWorkerMap
var list []pattern.TeeWorkerInfo

if !c.GetChainState() {
return list, pattern.ERR_RPC_CONNECTION
Expand All @@ -138,7 +148,7 @@ func (c *chainClient) QueryAllTeeWorkerMap() ([]pattern.TeeWorkerMap, error) {

for _, elem := range set {
for _, change := range elem.Changes {
var teeWorker pattern.TeeWorkerMap
var teeWorker pattern.TeeWorkerInfo
if err := codec.Decode(change.StorageData, &teeWorker); err != nil {
fmt.Println(err)
continue
Expand All @@ -156,19 +166,26 @@ func (c *chainClient) QueryAllTeeInfo() ([]pattern.TeeInfo, error) {
}
var results = make([]pattern.TeeInfo, len(teelist))
for k, v := range teelist {
results[k].EndPoint = string(v.EndPoint[:])
results[k].PeerId = []byte(string(v.PeerId[:]))
results[k].TeeType = uint8(v.TeeType)
results[k].WorkAccount, _ = utils.EncodePublicKeyAsCessAccount(v.WorkAccount[:])
if v.BondStash.HasValue() {
ok, acc := v.BondStash.Unwrap()
if ok {
results[k].StashAccount, err = utils.EncodePublicKeyAsCessAccount(acc[:])
if err != nil {
return results, err
}
results[k].Pubkey = string(v.Pubkey[:])
results[k].EcdhPubkey = string(v.EcdhPubkey[:])
results[k].Version = uint32(v.Version)
results[k].LastUpdated = uint64(v.LastUpdated)
if v.StashAccount.HasValue() {
if ok, puk := v.StashAccount.Unwrap(); ok {
results[k].StashAccount, _ = utils.EncodePublicKeyAsCessAccount(puk[:])
}
}
if v.AttestationProvider.HasValue() {
if ok, val := v.AttestationProvider.Unwrap(); ok {
results[k].AttestationProvider = uint8(val)
}
}
results[k].ConfidenceLevel = uint8(v.ConfidenceLevel)
results[k].Features = make([]uint32, len(v.Features))
for i := 0; i < len(v.Features); i++ {
results[k].Features[i] = uint32(v.Features[i])
}
results[k].WorkerRole = uint8(v.Role)
}
return results, nil
}
56 changes: 53 additions & 3 deletions core/event/events.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import (
// ------------------------Audit-------------------
type Event_VerifyProof struct {
Phase types.Phase
TeeWorker types.AccountID
TeeWorker pattern.WorkerPublicKey
Miner types.AccountID
Topics []types.Hash
}
Expand Down Expand Up @@ -49,15 +49,15 @@ type Event_SubmitServiceProof struct {

type Event_SubmitIdleVerifyResult struct {
Phase types.Phase
Tee types.AccountID
Tee pattern.WorkerPublicKey
Miner types.AccountID
Result types.Bool
Topics []types.Hash
}

type Event_SubmitServiceVerifyResult struct {
Phase types.Phase
Tee types.AccountID
Tee pattern.WorkerPublicKey
Miner types.AccountID
Result types.Bool
Topics []types.Hash
Expand Down Expand Up @@ -340,6 +340,49 @@ type Event_Exit struct {
Topics []types.Hash
}

type Event_MasterKeyLaunched struct {
Phase types.Phase
Topics []types.Hash
}

type Event_KeyfairyAdded struct {
Phase types.Phase
Pubkey pattern.WorkerPublicKey
AttestationProvider types.Option[types.U8]
ConfidenceLevel types.U8
Topics []types.Hash
}

type Event_WorkerUpdated struct {
Phase types.Phase
Pubkey pattern.WorkerPublicKey
AttestationProvider types.Option[types.U8]
ConfidenceLevel types.U8
Topics []types.Hash
}

type Event_MasterKeyRotated struct {
Phase types.Phase
RotationId types.U64
MasterPubkey pattern.WorkerPublicKey
Topics []types.Hash
}

type Event_MasterKeyRotationFailed struct {
Phase types.Phase
RotationLock types.Option[types.U64]
KeyfairyRotationId types.U64
Topics []types.Hash
}

type Event_MinimumCesealVersionChangedTo struct {
Phase types.Phase
Elem1 types.U32
Elem2 types.U32
Elem3 types.U32
Topics []types.Hash
}

// ------------------------Oss---------------------------
type Event_OssRegister struct {
Phase types.Phase
Expand Down Expand Up @@ -477,6 +520,13 @@ type EventRecords struct {
TeeWorker_RegistrationTeeWorker []Event_RegistrationTeeWorker
TeeWorker_UpdatePeerId []Event_UpdatePeerId
TeeWorker_Exit []Event_Exit
TeeWorker_MasterKeyLaunched []Event_MasterKeyLaunched
TeeWorker_KeyfairyAdded []Event_KeyfairyAdded

TeeWorker_WorkerUpdated []Event_WorkerUpdated
TeeWorker_MasterKeyRotated []Event_MasterKeyRotated
TeeWorker_MasterKeyRotationFailed []Event_MasterKeyRotationFailed
TeeWorker_MinimumCesealVersionChangedTo []Event_MinimumCesealVersionChangedTo

// system
ElectionProviderMultiPhase_ElectionFinalized []Event_ElectionFinalized
Expand Down
13 changes: 10 additions & 3 deletions core/event/eventsName.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,14 @@ const (
StorageHandlerRenewalSpace = "StorageHandler.RenewalSpace"

// TeeWorker
TeeWorkerRegistrationTeeWorker = "TeeWorker.RegistrationTeeWorker"
TeeWorkerUpdatePeerId = "TeeWorker.UpdatePeerId"
TeeWorkerExit = "TeeWorker.Exit"
TeeWorkerRegistrationTeeWorker = "TeeWorker.RegistrationTeeWorker"
TeeWorkerUpdatePeerId = "TeeWorker.UpdatePeerId"
TeeWorkerExit = "TeeWorker.Exit"
TeeWorkerMasterKeyLaunched = "TeeWorker.MasterKeyLaunched"
TeeWorkerKeyfairyAdded = "TeeWorker.KeyfairyAdded"
TeeWorkerWorkerAdded = "TeeWorker.WorkerAdded"
TeeWorkerWorkerUpdated = "TeeWorker.WorkerUpdated"
TeeWorkerMasterKeyRotated = "TeeWorker.MasterKeyRotated"
TeeWorkerMasterKeyRotationFailed = "TeeWorker.MasterKeyRotationFailed"
TeeWorkerMinimumCesealVersionChangedTo = "TeeWorker.MinimumCesealVersionChangedTo"
)
Loading

0 comments on commit 6af4376

Please sign in to comment.