Author Topic: Automated Witness Deployment  (Read 2253 times)

0 Members and 1 Guest are viewing this topic.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
An alternative to bts-tools would be to use pybitshares' publish_feed call .. uptick has a simpme cli interface to it .. also i have started modernize my feed script in github.com/xeroc/bitshares-pricefeed (which uses uptick)

Offline fluxer555

  • Hero Member
  • *****
  • Posts: 749
    • View Profile
Wonderful, thanks Thom. I'll have to take some time to work through this.

Offline Thom

Various witness have built tools to help witnesses. Wackou created bts_tools, which has functionality for deployment, but I'm not sure how complete it is.

I wrote a script to deploy a witness node which I still use. The approach I took was to bundle a number of things in a compressed tar file which is scp'd over to a server as root, extract the setup script from that tarnball and run it.

It updates & upgrades the OS, installs packages, accounts, tools, locks down services such as only allowing public key access via ssh, disables root access remotely and generally ready's the brand new server with all required software and configuration to run a witness with feeds.

Bts_tools provides a web UI to monitor logs, cpu, memory, feeds, witness info such as missed blocks and last published feeds for selected assets, the ability to compile the cli wallet and witness software from github source, and send email notification for various events such as when a witness is voted out or misses a block.

Witness lafona has built an interactive feed monitoring script that charts the feed prices for all witnesses. Each witness can be displayed or removed from the chart. Not sure if particular asset price feeds are selectable such as BitUSD, BitCNY etc, but I think he did build some select-ability for assets.

Checkout wackou's website to learn more about bts_tools.
« Last Edit: April 28, 2017, 10:50:02 pm by Thom »
Injustice anywhere is a threat to justice everywhere - MLK |  Verbaltech2 Witness Reports: https://bitsharestalk.org/index.php/topic,23902.0.html

Offline Fox

I like the idea to wrap it in GUI. Can you provide more details there?

This template does not install any additional tools for price feeds. I have on for the TESTNET which installs python-BitShares. Recall, only elected witness may publish feeds, so not needed for a minimal node install.
Witness: fox

Offline fluxer555

  • Hero Member
  • *****
  • Posts: 749
    • View Profile
This is cool. What I was thinking was using Terraform for infrastructure (as it is provider agnostic) and use Ansible for provisioning (as it's idempotent), then build a high level CLI wrapper for various tasks. I could even build a GUI around it if there was demand for it.

It doesn't seem like your template sets up price feeds, right?

Offline Fox

Welcome back. Your skills are valued.

I have an Azure Template for BitShares on Ubuntu 16.04 LTS:

https://github.com/ryanRfox/azure-quickstart-templates/blob/master/bitshares-ubuntu-vm/README.md
https://github.com/ryanRfox/azure-quickstart-templates/blob/master/bitshares-ubuntu-vm/build_bitshares.sh

I am happy to connect regarding extending automation to other cloud providers.

Best,
Fox
Witness: fox

Offline fluxer555

  • Hero Member
  • *****
  • Posts: 749
    • View Profile
Hi everybody,

I used to be very active here, but have spent the last two years focusing on my skills as a full stack web app developer. A few questions:

1. Are procedural steps documented for how to set up a witness server?
2. Would this community be interested in automated deployment scripts that anyone could use to launch their own witness?
3. Would this community be interested in hiring me as worker to get this done?

I currently do this for my work, and see this as something that could be valuable to this community.

How I'm imagining this, you'd be able to set configuration before launching- your cloud provider, server type, server region. It could come with tools to help monitor the performance of your witness.

Let me know what you guys think, also open to ideas!