npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

coinicles-launcher

v0.1.0-git

Published

manages the coinicles network suite of software primarily for service node operation

Downloads

3

Readme

Requirements

  • nodejs versions 8.x to 12.x are supported
  • npm usually installed with nodejs (only for distribution and easy install of this software, we do not use ANY external NPMs for security reasons)
  • Linux (though macos does works and Windows kind of works)
  • xz (xz-utils apt package) to be able to download and extract updated Linux binaries
  • setcap (libcap2-bin) to be enable coiniclesnet to not need to run as root on Linux

Why use the launcher over DEBs

The goal of the launcher is to make it easier to run a service node, however the DEBs installation and upgrade process can be much easier if you're running a debian-based OS. However we do have some additional advantages:

  • Safer, we have additional checks in configuration, like to make sure you don't create port conflicts. We also have other checks that can detect unwanted patterns of behavior between apps and be able to take action
  • Easier config management, one config file to manage all 3 binaries, also reduces the chance of you having to resolve config conflicts during upgrades
  • Firewall Notification, lets you know if you're blocking any required ports. DEBs will open them in ufw but this won't help if you're using an different or external firewall.
  • NAT support, Launcher automatically configures your outgoing interface and public IP. DEBs you have to manually set up your network interface and public ip. Neither will help you set up port forwarding though.
  • Prequal tool, know for sure your situation meets our minimum requirements
  • Easy to downgrade path: if an upgrade is causing you problems, you can manually pull older releases off github and replace the binaries in /opt/coinicles-launcher/bin and simply restart the launcher with the older binary until your node is stable.
  • Diveristy of the network, in the highly unlikely event that Debian ever gets a serious bug, we want the service node network to be diverse enough to not be largely effective. Being able to support multiple operating systems is good for the coinicles ecosystem.
  • Robust distribution system: Launcher relies on Microsoft/GitHub infrastructure, the DEBs are ran by our developer on his server. You could argue Microsoft/GitHub has more people keeping an eye on security and availability of their system. (And while we use NPM to distribute coinicles-launcher we do not use any NPM modules in this project)
  • Interactive client sessions, so you don't have coiniclesd start up delays for each command you want to run
  • Unified subsystem reporting, get the status or versions of all 3 subsystems (blockchain, storage, network) from one command

Launcher is maintained at cost of the coinicles Foundation and if it's not found to be of use, maybe unfunded. Please consider supporting this great tool by using it.

How to do a fresh service node install

This will use npm to install the launcher

sudo npm install -g coinicles-launcher

This will create any needed directories and make sure everything has the proper permissions to run as a specified user such as snode in this example

sudo coinicles-launcher set-perms snode

Now make sure sure you running the following commands as the user specified or you may run into permission problems (EPERM).

After it's installed, you can ask to prequalify your server to be a service node

coinicles-launcher prequal

you can also ask it to download the coinicles binaries if you don't already have them

coinicles-launcher download-binaries

How to use without systemd

coinicles-launcher start

Running it once should start the suite of services into the background or give you a message why it can't. This isn't recommended for long term uses as there is nothing to restart launcher if it dies/exits.

Running coinicles-launcher client, will give you an interactive terminal to coiniclesd (the copy running from the current directory if you have multiple). exit will stop your service node. If you just want to exit the interactive terminal, please use ctrl-c.

You can pass most command line parameters that you would give to coiniclesd to coinicles-launcher start

You can make a launcher config file in /etc/coinicles-launcher/launcher.ini and change various settings, Check our wiki for details on options.

How to keep the launcher up to date

Update your launcher without systemd

Stop your service node if it's running (you can use coinicles-launcher status to check)

coinicles-launcher stop

Update the launcher

sudo npm install -g coinicles-launcher

And be sure to make sure you restart your service node (if it's staked) by

coinicles-launcher start

Get the latest coinicles software versions

coinicles-launcher download-binaries

And be sure to make sure you restart your service node (if it's staked) by

coinicles-launcher start

Other

upgrading from coiniclesd 3.0.6 with systemd to use the launcher

Popular linux distribution instructions to install NodeJS

Ubuntu NodeJS installation:

curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -

then

sudo apt-get install -y nodejs

Software the launcher manages

To get the required software you can run coinicles-launcher download-binaries and they will be placed in /opt/coinicles-launcher/bin

or

You can download the coinicles binaries (faster) from each above page's release section

or

You can build from source. Make sure you select the correct repos/branches/versions as not all versions will work with each other.

And if you don't have the dependencies to build from source check out contrib/dependency_helper/

Changelog

For more indepth details, be sure to check out our weekly dev reports

  • 1.0.13
    • lower storage file descriptor requirement to just a warning instead of exiting
  • 1.0.12
    • NEW storage lmq_port port (22020) must be open to the public
    • storage NOW required 16384 available file descriptors, check-systemd should upgrade this for you
    • download-binaries now requires root, so it can always fix the capabilities on coiniclesnet
    • you will be suggested to install libcap2-bin if you don't have getcap in your path
    • remove immediate storage watchdog check on start up
    • write exception logs to /tmp instead of / so it's always writable
    • check-systemd now runs daemon-reload for you and detect and warn about a conflicting DEBs install
    • refactor all the testing calling to remove callback hell
    • added all binaries versions to "version" mode
  • 1.0.11
    • fix storage server watchdog
    • make storage server watchdog run every 10mins instead of 60mins
    • handle storage server exit code 1 exits better (restart instead of exit) as crash can also cause code 1
    • now attempts coiniclesd restart if storage server fails to communicate with it for 2-3 mins
    • handle storage server not being set better
    • always chomp pid file to make testing easier
    • status: if launcher isnn't running, always check to see if coiniclesd's rpc port is in use or not
    • interactive-debug mode: SIGUSR1 hides, SIGUSR2 shows peridotic status reports
    • logging messages adjustments and fixes
  • 1.0.10
    • coinicles repo rename to coinicles-core support
  • 1.0.9
    • fix bug in port validation when upgrading from 5.x
  • 1.0.8*
    • include storage/network last failure in status
    • check for port conflicts
    • connect to client when stopping the launcher, so you can see what the blockchain is taking so long
    • fix-perms fix network data_dir permissions fix
    • fix network status
    • add ifname validation
    • add p2p/zmq bind-ip processing
    • change definition of start up success (require storage_rpc, storageServer, network)
    • fix ECONNREFUSED exception in client mode
    • fix setcap exceptions in checkConfig
    • prequal can't bind fix
    • set network.public_port even in pre 6.x
    • if cimode exit
    • fix git rev output parsing
    • various pre 6.x support fixes (only passing quorumnet-port in 6.x)
  • 1.0.7*
    • fix bug with qun_port not getting passed to coiniclesd
    • Fix trying to load port numbers from coinicles.conf
  • 1.0.6*
    • Don't commit to saying started unless coiniclesnet can be started
    • made sure network binary is set for fix-perms
    • prequal: inform that quorumnet is not a suggestion but required / grammar fixes
    • only show full status if launcher is running
    • adjust start up process for coinicles-storage DH and create warning accordingly
    • fix stop race condition message
    • turn off debugging in interactive mode
    • move coiniclesKey from storage to blockchain
    • decrease port test failure timeout to 10s instead of 60s
    • fix VERSION detection race
    • fix duplicate socket server error logging
    • handle coiniclesnet EPERM condition better
    • various logging clean up
  • 1.0.5*
    • enable coiniclesnet
    • changed default storage server port from 23023 to 22021 (SO UPDATE YOUR FIREWALLS)
    • remove service-node-seed / keyPath from coiniclesnet
    • add seedMode to coiniclesnet
    • remove coiniclesnet solo-mode (without blockchain/storage)
    • bind storage server to 0.0.0.0
    • improve prequal
    • interactive mode improvements
    • require new port checks on startup
    • adjust coiniclesnet snode config to be more inline with debs
    • don't use github pre-releases at all
    • add coiniclesnet files to fix-perms
    • set data_dir for coiniclesnet
    • fix-perms handle no user passed and can't lookup user better
    • include (re)start time in status
    • download-binaries make architecture aware
    • make status check storage rpc port
    • check on storage server every hour and restart if rpc does not respond
    • timer adjustments/better cancelations for speed improvements
  • 1.0.4*
    • Add coiniclesd 6.x prequal tests
  • 1.0.3
    • disable 1.0.2 workaround
  • 1.0.2
    • add xenial workaround
  • 1.0.0
    • fix storage server pipe that would lock up storage server
    • make sure storage server is running before starting startup is successful
    • fix storage server stderr handler typo
    • SIGHUP guard fix
    • double check running pid
    • use SIGTERM instead of SIGINT to stop processes
    • handle socket write errors better
    • test socket for connectivity in status
    • clear stale pid and socket files
    • move uncaught exception log into var_path
  • 0.0.13
    • change storage server default port from 8080 to 23023
    • storage server/coiniclesnet start up now waits for blockchain rpc port to be open
    • fix linux pipe race condition (would say started but then launcher would die)
    • unhandle exception logger
    • add more retries on failure
    • don't check open storage server port twice
  • 0.0.12
    • 4.0 release changes
      • storage server open port check enforced on start
      • and actually updating the prequal to be 4.0 ready
    • 3.x detection for backwards compatibility
    • start now waits for rpc port to be open before saying it's a success
    • pass info if coiniclesd/storage server exit before it's declared started
    • stop launchers before certain modes
    • exited with warning if not root instead of throwing EPERMs
    • fixes coinicles.conf file parsing
    • interactive mode bug
    • update ifconfig.me's URL
  • 0.0.11 - removes coiniclesd key search requirement for non-testnet
  • 0.0.10* - fixes 3.0.7 release breaking testnet
  • 0.0.9* - fixes missing INI library (issue #34)
  • 0.0.8* - upgrade testnet to support 4.x binaries and enables storage server in testnet
  • 0.0.7 - initial public release (compatible with 3.0.x coiniclesd versions)

[1] deprecated and not longer available because they were not found to be functioning as expected