Skip to content

Commit

Permalink
create torrent client first, 20 second delay before broadcast peers
Browse files Browse the repository at this point in the history
  • Loading branch information
Aven Dauz authored and Aven Dauz committed Aug 12, 2021
1 parent bfd107f commit 0754e38
Showing 1 changed file with 37 additions and 23 deletions.
60 changes: 37 additions & 23 deletions x/nft/module.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,45 +146,59 @@ func (am AppModule) ExportGenesis(ctx sdk.Context) json.RawMessage {
func (am AppModule) BeginBlock(_ sdk.Context, req abci.RequestBeginBlock) {
}

var once sync.Once

// EndBlock returns the end blocker for the nft module. It returns no validator
// updates.
func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate {
var broadcastPeerOnce sync.Once
var newBtClientOnce sync.Once

func checkBroadcastPeer(ctx sdk.Context, am AppModule) {
err := am.keeper.CheckNftUserExists(ctx, am.keeper.KeyringReader, am.accKeeper)
fmt.Println("Checking nft user exists", err)
if err != nil {
am.keeper.Logger(ctx).Error("nft user does not exist in keyring", "nft", err)
} else {
once.Do(func() {

btClient, err := torrentClient.NewTorrentClient(am.btDirectory, am.btPort)
fmt.Println("Torrent client created", *btClient)
if err != nil {
am.keeper.Logger(ctx).Error("Error creating btClient", "btClient", err)
}

fmt.Println("Bt client before setting", am.keeper.GetBtClient())

am.keeper.SetBtClient(btClient)

fmt.Println("Bt client after setting", am.keeper.BtClient, am.keeper.GetBtClient())
broadcastPeerOnce.Do(func() {
startTorrentClient(ctx, am)

fmt.Println("Doing broadcast register peer")

defer func() {
go func() {
time.Sleep(time.Second)
//err := am.keeper.BroadcastRegisterBtPeer(ctx)
//if err != nil {
// am.keeper.Logger(ctx).Error("Broadcast Register Bt Peer failed", "error", err)
//}
time.Sleep(time.Second * 20000)
err := am.keeper.BroadcastRegisterBtPeer(ctx)
if err != nil {
am.keeper.Logger(ctx).Error("Broadcast Register Bt Peer failed", "error", err)
}
}()
}()
})

}
}

func startTorrentClient(ctx sdk.Context, am AppModule) {
btClient, err := torrentClient.NewTorrentClient(am.btDirectory, am.btPort)
fmt.Println("Torrent client created", *btClient)
if err != nil {
am.keeper.Logger(ctx).Error("Error creating btClient", "btClient", err)
}

fmt.Println("Bt client before setting", am.keeper.GetBtClient())

am.keeper.SetBtClient(btClient)

fmt.Println("Bt client after setting", am.keeper.BtClient, am.keeper.GetBtClient())
}

// EndBlock returns the end blocker for the nft module. It returns no validator
// updates.



func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate {

newBtClientOnce.Do(func() {
startTorrentClient(ctx, am)
})
checkBroadcastPeer(ctx, am)

return []abci.ValidatorUpdate{}
}

0 comments on commit 0754e38

Please sign in to comment.