diff --git a/go.mod b/go.mod index fff4ed7b33..c107a78a31 100644 --- a/go.mod +++ b/go.mod @@ -130,9 +130,9 @@ require ( ) replace ( - github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.67 + github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.64 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/keybase/go-keychain => github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 - github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.13 + github.com/tendermint/tendermint => github.com/sei-protocol/sei-tendermint v0.1.54 google.golang.org/grpc => google.golang.org/grpc v1.33.2 ) diff --git a/go.sum b/go.sum index 200fd7cd3f..cc1038221a 100644 --- a/go.sum +++ b/go.sum @@ -1095,10 +1095,10 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/sei-protocol/sei-cosmos v0.1.67 h1:AdjpHcaryUaGI4X9nnK13YWxPOguDveH2sH+06gBsCw= -github.com/sei-protocol/sei-cosmos v0.1.67/go.mod h1:Oaj7toqHCkwEEb+sDIWxtfTkPZxOpMXBXDMvIIqUjpw= -github.com/sei-protocol/sei-tendermint v0.1.13 h1:uaMXhi+zpaqcUDlshxjqmPmUI/zSZla2a2ZmOtDK5RM= -github.com/sei-protocol/sei-tendermint v0.1.13/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= +github.com/sei-protocol/sei-cosmos v0.1.64 h1:smRXceJpavcGxG+KUoI5ztBdSvPKbebzTf06Bx0oAAM= +github.com/sei-protocol/sei-cosmos v0.1.64/go.mod h1:8C+uqD5ZyLjoZpQIKtQPpRynlD3fWgsrwFIt5NlKJIE= +github.com/sei-protocol/sei-tendermint v0.1.54 h1:T8snsZ5schPUSMa2STd61a0Mt/yoz1H5MTn3HRTbzj8= +github.com/sei-protocol/sei-tendermint v0.1.54/go.mod h1:Olwbjyagrpoxj5DAUhHxMTWDVEfQ3FYdpypaJ3+6Hs8= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= github.com/shirou/gopsutil v2.20.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= diff --git a/loadtest/scripts/populate_genesis_accounts.py b/loadtest/scripts/populate_genesis_accounts.py index 386eb68e03..6f92f1276a 100644 --- a/loadtest/scripts/populate_genesis_accounts.py +++ b/loadtest/scripts/populate_genesis_accounts.py @@ -1,7 +1,13 @@ import json import os +import multiprocessing import subprocess import sys +import threading +import time + +PARALLEISM=32 +LOCK=threading.Lock() def add_genesis_account(account_name, local=False): if local: @@ -30,13 +36,26 @@ def add_genesis_account(account_name, local=False): "mnemonic": mnemonic, } json.dump(data, f) - subprocess.check_call( - [add_account_cmd], - shell=True, - ) + success = False + retry_counter = 5 + sleep_time = 1 + while not success and retry_counter > 0: + try: + with LOCK: + subprocess.check_call( + [add_account_cmd], + shell=True, + ) + success = True + except subprocess.CalledProcessError as e: + print(f"Encountered error {e}, retrying {retry_counter - 1} times") + retry_counter -= 1 + sleep_time += 0.5 + time.sleep(sleep_time) + -def bulk_create_genesis_accounts(number_of_accounts, is_local=False): - for i in range(number_of_accounts): +def bulk_create_genesis_accounts(number_of_accounts, start_idx, is_local=False): + for i in range(start_idx, start_idx + number_of_accounts): print(f"Creating account {i}") add_genesis_account(f"ta{i}", is_local) @@ -46,7 +65,14 @@ def main(): is_local = False if len(args) > 1 and args[1] == "loc": is_local = True - bulk_create_genesis_accounts(number_of_accounts, is_local) + num_processes = number_of_accounts // PARALLEISM + processes = [] + for i in range(0, number_of_accounts, num_processes): + processes.append(multiprocessing.Process(target=bulk_create_genesis_accounts, args=(num_processes, i, is_local))) + for p in processes: + p.start() + for p in processes: + p.join() if __name__ == "__main__": main()