Gathering detailed insights and metrics for symbol-bootstrap
Gathering detailed insights and metrics for symbol-bootstrap
Gathering detailed insights and metrics for symbol-bootstrap
Gathering detailed insights and metrics for symbol-bootstrap
get-symbol-description
Gets the description of a Symbol. Handles `Symbol()` vs `Symbol('')` properly when possible.
is-symbol
Determine if a value is an ES6 Symbol or not.
@babel/plugin-transform-typeof-symbol
This transformer wraps all typeof expressions with a method that replicates native behaviour. (ie. returning “symbol” for symbols)
es6-symbol
ECMAScript 6 Symbol polyfill
npm install symbol-bootstrap
[1.1.10] - Apr-14-2023
Published on 14 Apr 2023
[1.1.9] - Nov-09-2022
Published on 09 Nov 2022
[1.1.8] - Oct-25-2022
Published on 25 Oct 2022
[1.1.6] - Mar-16-2022
Published on 16 Mar 2022
[1.1.5] - Mar-01-2022
Published on 01 Mar 2022
[1.1.4] - Feb-04-2022
Published on 04 Feb 2022
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
47 Stars
278 Commits
27 Forks
27 Watching
18 Branches
10 Contributors
Updated on 01 Apr 2024
TypeScript (94.4%)
Mustache (3.07%)
JavaScript (1.1%)
HTML (0.87%)
Shell (0.56%)
Cumulative downloads
Total Downloads
Last day
45%
1,759
Compared to previous day
Last week
-18.8%
12,325
Compared to previous week
Last month
2,385.4%
45,682
Compared to previous month
Last year
285.5%
54,402
Compared to previous year
22
37
Symbol CLI tool that allows you creating, configuring and running Symbol blockchain complete networks or nodes to be sync with existing networks.
Yaml files that define the configuration and layout of the network and nodes. It defines how many nodes, database, rest gateways, the modes, keys, etc.
Presets are defined at 4 levels from general to specific:
--customPreset
param) that could override some or all properties in the out-of-the-box presets.Properties in each file override the previous values (by object deep merge).
mainnet
: Used to create nodes connected to Symbol's Mainnet network. The nemesis block is copied over.testnet
: Used to create nodes connected to Symbol's Testnet network. The nemesis block is copied over.bootstrap
: Used to create new private networks with dual currency configuration, network and harvest currencies. Nemesis block is generated.peer
: A standard peer-only node that contains 1 peer node.api
: A standard API node that contains 1 Mongo database, 1 API node, 1 REST gateway, and 1 broker.dual
: A standard dual node that contains 1 Mongo database, 1 API node, 1 REST gateway, 1 broker, and 1 peer node.demo
: A dual node with an additional explorer and faucet for test and demonstration purposes.multinode
: A special assembly that contains 1 API node and 2 peer-only nodes. This assembly is for testing, it showcases how a private network with 3 nodes runs.services
: A special docker compose that includes the Explorer, Faucet and HTTPS proxy. This is an easy and quick way of running Symbol services when creating a new network. Note that the services are not HA, it's not for production environments.It's the way you can tune the network without modifying the code. It's a yml file (--customPreset
param) that could override some or all properties in the out-of-the-box presets.
Custom presets give Symbol Bootstrap its versatility. Check out the custom preset guides!
The folder where the generated config, docker files and data are stored.
The folder structure is:
./preset.yml
: The final generated preset.yml that it's used to configure bootstrap, the nodes, docker, etc../addresses.yml
: Randomly generated data that wasn't provided in the preset. e.g.: SSL keys, nodes' keys, nemesis accounts, generation hash seed, etc../nodes
: It holds the configuration, data and logs for all the defined node instances../gateways
: It holds the configuration and logs for all the defined node rest gateways../nemesis
: The folder used to hold the nemesis block. Block 1 data is generated via nemgen
tool for new networks. For existing network, it is copied over../databases
: The location where the mongo data is stored for the different database instances../docker
: The generated docker-compose.yml, mongo init scripts and server basic bash scripts../explorers
: The generated explorer configuration../reports
: The location of the generated reports.Note: The target folder should not be manually modified. This tool may override any file in the target folder when doing upgrades. Any custom configuration should be provided via a custom preset. Check out the custom preset guides!
Check your user can run docker without sudo:
1docker run hello-world
If you see an error like:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
Please follow this guide.
It's recommended to run the commands from en empty working dir.
The network configuration, data and docker files will be created inside the target folder ('./target') by default.
1mkdir my-networks 2cd my-networks
Once in the working dir:
1$ npm install -g symbol-bootstrap 2$ symbol-bootstrap COMMAND 3running command... 4$ symbol-bootstrap (-v|--version|version) 5symbol-bootstrap/1.1.7 linux-x64 node-v12.22.10 6$ symbol-bootstrap --help [COMMAND] 7USAGE 8 $ symbol-bootstrap COMMAND 9...
Validate your environment by running:
1symbol-bootstrap verify
The general usage would be:
1symbol-bootstrap config -p testnet -a dual 2symbol-bootstrap compose 3symbol-bootstrap run
You can aggregate all these commands with this one liner:
1symbol-bootstrap start -p testnet -a dual
If you need to start fresh, you many need to sudo remove the target folder (docker volumes dirs may be created using sudo). Example:
1sudo rm -rf ./target
Network presets and assemblies can be combined to generate different types of nodes. Some examples:
$ symbol-bootstrap start -p mainnet -a dual -c customPreset.yml
$ symbol-bootstrap start -p testnet -a peer -c customPreset.yml
$ symbol-bootstrap start -p testnet -a demo -c customPreset.yml
$ symbol-bootstrap start -p bootstrap -a multinode -c customPreset.yml
$ symbol-bootstrap start -p bootstrap -a demo -c customPreset.yml
$ symbol-bootstrap start -p bootstrap -a dual -c customPreset.yml
$ symbol-bootstrap start -p testnet -a services -c customServicesPreset.yml
Although some combinations can be done, they may not be really useful. Examples that are NOT useful:
$ symbol-bootstrap start -p mainnet -a multinode
$ symbol-bootstrap start -p testnet -a multinode
A custom network preset file can also be provided. This is useful when you have your own custom Symbol network, and you want other nodes to join.
For this case, you provide your own networkPreset.yml
and nemesis feed folder. The node admin can then run:
$ symbol-bootstrap start -p customNetworkPreset.yml -a dual -c customNodePreset.yml
$ symbol-bootstrap start -p customNetworkPreset.yml -a services -c customServicesPreset.yml
The demo
assemblies starts a local Explorer http://localhost:90 and Faucet http://localhost:100.
If this is your first time creating a node, it's recommended to use the Wizard. Just follow the instructions:
1symbol-bootstrap wizard
If you want to contribute to this tool, clone this repo and run:
1npm install -g
Then, symbol-bootstrap
runs from the source code. You can now try your features after changing the code.
Pull Requests are appreciated! Please follow the contributing guidelines.
Note: cloning this repo is only for people that want to tune the tool in a way it cannot be configured. If this is your case, please provide a feature request. General users should install this tool like any other node module.
To format the source code, verify/fix lint issues, and generate the commands docs, run:
1npm run style:fix
Symbol Bootstrap is a personal project maintained on my free time.
If you like it, please consider supporting it by delegating your Symbol account to my node:
name: symbol-node-dual-1.tawa.solutions
publicKey: 6DB275B83F4839768821FF621DD90358F99A84EC61EB7DE1F6947E5B0926B9BB
If you don't like it, let me know by creating issues on GitHub. Pull Requests are welcome!
symbol-bootstrap autocomplete
- display autocomplete installation instructionssymbol-bootstrap clean
- It removes the target folder deleting the generated configuration and datasymbol-bootstrap compose
- It generates the docker-compose.yml
file from the configured network.symbol-bootstrap config
- Command used to set up the configuration files and the nemesis block for the current networksymbol-bootstrap decrypt
- It decrypts a yml file using the provided password. The source file can be a custom preset file, a preset.yml file or an addresses.yml.symbol-bootstrap encrypt
- It encrypts a yml file using the provided password. The source files would be a custom preset file, a preset.yml file or an addresses.yml.symbol-bootstrap healthCheck
- It checks if the services created with docker compose are up and running.symbol-bootstrap help
- display help for symbol-bootstrapsymbol-bootstrap link
- It announces VRF and Voting Link transactions to the network for each node with 'Peer' or 'Voting' roles. This command finalizes the node registration to an existing network.symbol-bootstrap modifyMultisig
- Create or modify a multisig accountsymbol-bootstrap pack
- It configures and packages your node into a zip file that can be uploaded to the final node machine.symbol-bootstrap renewCertificates
- It renews the SSL certificates of the node regenerating the node.csr.pem files but reusing the current private keys.symbol-bootstrap report
- it generates reStructuredText (.rst) reports describing the configuration of each node.symbol-bootstrap resetData
- It removes the data keeping the generated configuration, certificates, keys and block 1.symbol-bootstrap run
- It boots the network via docker using the generated docker-compose.yml
file and configuration. The config and compose methods/commands need to be called before this method. This is just a wrapper for the docker-compose up
bash call.symbol-bootstrap start
- Single command that aggregates config, compose and run in one line!symbol-bootstrap stop
- It stops the docker-compose network if running (symbol-bootstrap started with --detached). This is just a wrapper for the docker-compose down
bash call.symbol-bootstrap updateVotingKeys
- It updates the voting files containing the voting keys when required.symbol-bootstrap verify
- It tests the installed software in the current computer reporting if there is any missing dependency, invalid version, or software related issue.symbol-bootstrap wizard
- An utility command that will help you configuring node!No vulnerabilities found.
Reason
no dangerous workflow patterns detected
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
dependency not pinned by hash detected -- score normalized to 5
Details
Reason
Found 9/23 approved changesets -- score normalized to 3
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
19 existing vulnerabilities detected
Details
Score
Last Scanned on 2024-11-25
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More