Browse Source

Merge pull request #21 from patchkez/new_saturday

[WIP] New j2 template changes
revert-24-test_rpcbind_to_assetname
patchkez 7 years ago
committed by GitHub
parent
commit
6cf7c10393
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 85
      dragonriders/dokomodo/cli.py
  2. 16
      dragonriders/dokomodo/templates/docker-compose-new-template.conf.j2
  3. 8
      dragonriders/dokomodo/yaml/config.ini

85
dragonriders/dokomodo/cli.py

@ -57,23 +57,22 @@ save_assets_data()
# This is common function for sending rpc requests to bitcoind and komodod
def send_request(assetchain_name, assetchain_rpcport, method):
assetchain_rpcuser = 'rpcuser'
assetchain_rpcpassword = 'rpcpassword'
def send_request(rpc_host, rpc_port, rpc_user, rpc_password):
# assetchain_rpcuser = 'rpcuser'
# assetchain_rpcpassword = 'rpcpassword'
# request_url = (
# 'http://' + asset_rpcuser + ':' + asset_rpcpassword + '@' + assetchain_name + ':' +
# assetchain_rpcport)
rpc_connection = AuthServiceProxy("http://%s:%s@%s:%s" % (assetchain_rpcuser,
assetchain_rpcpassword, assetchain_name, int(assetchain_rpcport)))
return AuthServiceProxy("http://{}:{}@{}:{}".format(rpc_user,
rpc_password, rpc_host, int(rpc_port)))
sendmethod = rpc_connection + '.' + method
try:
# rpc_connection.sendmany("", ctx.sendtomany_recipients)
sendmethod
except JSONRPCException as e:
click.echo("Error: %s" % e.error['message'])
# try:
# # rpc_connection.sendmany("", ctx.sendtomany_recipients)
# click.echo(rpc_connection.getinfo())
# except JSONRPCException as e:
# click.echo("Error: %s" % e.error['message'])
# Common fucntion for sending any http API request e.g. to iguana
@ -199,7 +198,7 @@ def cli(config):
@pass_config
def generate_docker_compose(ctx, branch):
""" TODO """
filename = 'docker-compose_assets_' + branch + '.yml'
filename = 'docker-compose-assets-' + branch + '.yml'
dirname = "./"
click.echo('Writing new docker compose file into: {}'.format(filename))
template = env.get_template('docker-compose-template.conf.j2')
@ -215,10 +214,13 @@ def generate_docker_compose(ctx, branch):
'test']), prompt=True)
@click.option('-a', '--asset', required=False, help='name of assetchain in capital \
letters e.g. SUPERNET')
@click.option('-i', '--image', required=True, help='name of image used for assetchains, \
it must match image name you use for komodod e.g. kmdplatform_komodod_dev or \
kmdplatform_komodod')
@pass_config
def generate_new_docker_compose(ctx, branch, asset):
def generate_new_docker_compose(ctx, branch, asset, image):
""" TODO """
filename = 'docker-compose_assets_' + branch + '.yml'
filename = 'docker-compose-assets-' + branch + '.yml'
dirname = "./"
click.echo('Writing new docker compose file into: {}'.format(filename))
@ -241,7 +243,7 @@ def generate_new_docker_compose(ctx, branch, asset):
template = env.get_template('docker-compose-new-template.conf.j2')
templatized_config = template.render(items=filtered_yaml(),
seed_ip=ctx.seed_ip2, mined=ctx.mined_coins, btcpubkey=ctx.btcpubkey)
seed_ip=ctx.seed_ip2, mined=ctx.mined_coins, btcpubkey=ctx.btcpubkey, image_name=image)
ctx.write_config(dirname, filename=filename, templatized_config=templatized_config)
@ -307,30 +309,41 @@ def generate_assetchains_conf(ctx, branch, asset):
templatize(assetchain_key)
@click.command('sendmany_assetchains', short_help='WIP - Sendmany to one or many assetchains')
@click.command('importprivkey', short_help='Importprivkey into assetchains')
@click.option('-b', '--branch', required=True, type=click.Choice(['development', 'production',
'test']))
@click.option('-a', '--asset', required=False)
@click.option('-h', '--rpchost', prompt=True, hide_input=False, confirmation_prompt=False,
help='RPC host')
@click.option('-u', '--rpcuser', prompt=True, hide_input=False, confirmation_prompt=False,
help='RPC username')
@click.option('-r', '--rpcpassword', prompt=True, hide_input=False, confirmation_prompt=False,
help='RPC password')
@click.option('-k', '--btcdprivkey', prompt=True, hide_input=True, confirmation_prompt=True,
help='BTCD privkey')
@pass_config
def sendmany_assetchains(ctx, branch, asset):
counter = 0
while counter < float(ctx.number_of_requests):
# click.echo(ctx.config_data['assetchains'][branch])
for assetchain_name in ctx.config_data['assetchains'][branch]:
method = 'sendmany'("", ctx.sendtomany_recipients)
# click.echo(type(assetchain_name))
rpc_port = ctx.config_data['assetchains'][branch][assetchain_name]['rpc_port']
if asset and asset == assetchain_name:
click.echo('Sending request to: {}'.format(assetchain_name))
send_request(assetchain_name, rpc_port, method)
elif asset:
pass
else:
click.echo('Sending request to: {}'.format(assetchain_name))
send_request(assetchain_name, rpc_port, method)
counter += 1
sleep(ctx.delay_between_requests)
def importprivkey(ctx, branch, asset, rpchost, rpcuser, rpcpassword, btcdprivkey):
coins = branch + '_coins_assets'
for assetchain_key in ctx.assetchains[coins].split(', '):
# method = 'importprivkey' + '(privkey=' + btcdprivkey + ' , rescan=False)'
rpcport = int(ctx.new_config_data['assetchains'][assetchain_key]['iguana_payload']['rpc'])
click.echo(ctx.new_config_data['assetchains'][assetchain_key]['iguana_payload']['rpc'])
rpc = send_request(rpc_host=rpchost, rpc_port=rpcport, rpc_user=rpcuser,
rpc_password=rpcpassword)
if asset and asset == assetchain_key:
click.echo('Sending request to: {}'.format(assetchain_key))
# send_request(assetchain_name, rpc_port, method)
click.echo(rpc.importprivkey(btcdprivkey, '', False))
elif asset:
pass
else:
click.echo('Sending request to: {}'.format(assetchain_key))
click.echo(rpc.importprivkey(btcdprivkey, '', False))
# send_request(assetchain_name, rpc_port, method)
# click.echo(rpc.getinfo())
sleep(1)
@click.command('start_iguana', short_help='Add all methods into iguana')
@ -411,7 +424,7 @@ cli.add_command(generate_docker_compose)
cli.add_command(generate_new_docker_compose)
cli.add_command(assetchains)
cli.add_command(generate_assetchains_conf)
cli.add_command(sendmany_assetchains)
cli.add_command(importprivkey)
cli.add_command(start_iguana)

16
dragonriders/dokomodo/templates/docker-compose-new-template.conf.j2

@ -4,7 +4,7 @@ version: '3'
services:
{% for assetname, asset in items.items() %}
{{ assetname }}:
image: kmdplatform_komodo
image: {{ image_name }}
# network_mode: "host"
networks:
- komodo
@ -13,20 +13,26 @@ services:
- "127.0.0.1:{{ asset.iguana_payload.rpc }}:{{ asset.iguana_payload.rpc }}"
{% endif %}
{% if asset.iguana_payload.p2p %}
- "{{ asset.iguana_payload.p2p }}:{{ asset.iguana_payload.p2p }}"
- "127.0.0.1:{{ asset.iguana_payload.p2p }}:{{ asset.iguana_payload.p2p }}"
{% endif %}
volumes:
- komodo-data:/home/komodo/.komodo
- shared-data:/home/komodo/.shared:ro
environment:
- ASSET_RPC_USER=${RPC_USER}
- ASSET_RPC_PASSWORD=${RPC_PASSWORD}
- ASSET_RPC_USER=${ASSET_RPC_USER}
- ASSET_RPC_PASSWORD=${ASSET_RPC_PASSWORD}
- ASSET_RPC_WORKQUEUE=64
- ASSET_BIND=127.0.0.1
- ASSET_RPC_BIND=0.0.0.0
- ASSET_RPC_ALLOWIP=0.0.0.0/0
- ASSET_RPC_PORT={{ asset.iguana_payload.p2p }}
- ASSET_RPC_PORT={{ asset.iguana_payload.rpc }}
- ASSET_NAME={{ assetname }}
- KOMODO_RPC_USER=${KOMODO_RPC_USER}
- KOMODO_RPC_PASSWORD=${KOMODO_RPC_PASSWORD}
# - KOMODO_BIND = ${KOMODO_BIND}
# - KOMODO_RPC_BIND = ${KOMODO_RPC_BIND}
# - KOMODO_RPC_ALLOWIP = ${KOMODO_RPC_ALLOWIP}
command: >
bash -c "komodod -pubkey={{ btcpubkey }}
-ac_name={{ assetname }}

8
dragonriders/dokomodo/yaml/config.ini

@ -1,6 +1,6 @@
[DEFAULT]
btcpubkey = <test_btc_pubkey_replace_me>
btcpubkey = <btcpubkey>
[ASSETCHAINS]
# mined_coins is list of assetchains for which mining will be enabled
@ -30,7 +30,7 @@ write_path_conf = ~/.komodo
# List of assetchains to be started, it does not mean when they ar estarted that they are also notarized!!!
# List is used to create configuration files for assetchains
# to access its data in central registry file
production_coins_assets = REVS, SUPERNET, DEX, PANGEA, JUMBLR, BET, CRYPTO, HODL, MSHARK, BOTS, MGW, COQUI, WLC, KV, CEAL, MESH, MNZ, AXO, ETOMIC, BTCH, VOTE2018, PIZZA, BEER, NINJA, NINJA, OOT, BNTN, CHAIN, PRLPAY
production_coins_assets = REVS, SUPERNET, DEX, PANGEA, JUMBLR, BET, CRYPTO, HODL, MSHARK, BOTS, MGW, COQUI, WLC, KV, CEAL, MESH, MNZ, AXO, ETOMIC, BTCH, VOTE2018, PIZZA, BEER, NINJA, OOT, BNTN, CHAIN, PRLPAY
development_coins_assets = PIZZA, BEER
@ -46,8 +46,8 @@ iguana_url = http://%(iguana_host)s:%(iguana_rpc_port)s
# List of chains which will be notarized!!!
# This will be used mostly for iguana methods, this list will be used in loop and key of coin will be used
# to access its data in central registry file
production_coins = BTC, LTC, KMD, CHIPS, REVS, SUPERNET, DEX, PANGEA, JUMBLR, BET, CRYPTO, HODL, MSHARK, BOTS, MGW, COQUI, WLC, KV, CEAL, MESH, MNZ, AXO, ETOMIC, BTCH, VOTE2018, NINJA, OOT, BNTN, CHAIN, PRLPAY
development_coins = PIZZA, BEER
production_coins = KMD, BTC, LTC, CHIPS, REVS, SUPERNET, DEX, PANGEA, JUMBLR, BET, CRYPTO, HODL, MSHARK, BOTS, MGW, COQUI, WLC, KV, CEAL, MESH, MNZ, AXO, ETOMIC, BTCH, VOTE2018, NINJA, OOT, BNTN, CHAIN, PRLPAY
development_coins = KMD, PIZZA, BEER
[SCALING_TESTING]

Loading…
Cancel
Save