ghostcloud is an innovative web hosting blockchain powered by Cosmos SDK and the CometBFT consensus engine.
Before setting up ghostcloud, ensure your system meets the following prerequisites:
- Go programming language, version 1.25 or higher
To jumpstart your ghostcloud blockchain development, run the following command:
CHAIN_ID="local-1" HOME_DIR="~/.gc" TIMEOUT_COMMIT="500ms" CLEAN=true sh scripts/test_node.sh
See the configuration options available in the scripts/test_node.sh script to customize your local blockchain setup.
This section describes how to interact with your ghostcloud blockchain using the command-line interface (CLI).
To create a new deployment on your blockchain, use the command format below:
ghostcloudd tx ghostcloud create [NAME] [PAYLOAD] --from [KEY] --gas auto --yeswhere
[NAME]is your chosen name for the deployment.[PAYLOAD]is the path to either a directory or a zip file containing your deployment's content.[KEY]is the name of the key used for signing the transaction.
Optional flags:
--description "[DESCRIPTION]"- A brief description of the deployment (optional).--domain [DOMAIN]- The domain that will be associated with this deployment (optional).
Important considerations:
- The
[PAYLOAD]must have anindex.htmlfile located at the root. - The size of the
[PAYLOAD]is limited to a maximum of 5MB.
Example usage:
ghostcloudd tx ghostcloud create foobar ~/foobar.zip --from alice --gas auto --yesIn the example above, a new deployment named foobar is created using the contents of ~/foobar.zip, signed with the key alice.
The transaction is set to calculate the gas automatically and is confirmed without further prompts.
ghostcloudd tx ghostcloud update [NAME] [DESCRIPTION] [DOMAIN] [flags] --from [KEY] --gas auto --yeswhere
[NAME]is the name of the deployment to update.[DESCRIPTION]is the new description for the deployment.[DOMAIN]is the new domain associated with the deployment.[KEY]is the name of the key to use for signing the transaction.
Available flags:
--website-payload [PATH]- (Optional) Provide the path to the new website payload, which can be a directory or a zip file.
Important considerations:
- If using
--website-payload, ensure that the payload contains anindex.htmlfile at its root and that the total size does not exceed 5MB. [NAME],[DESCRIPTION], and[DOMAIN]must be provided together. If you do not wish to update a particular field, use the existing value.
Example usage:
ghostcloudd tx ghostcloud update myapp "Updated version" "newexample.com" --website-payload ~/newapp.zip \
--from alice --gas auto --yes In this example, the myapp deployment is updated with new contents from ~/newapp.zip, a new description, and a new domain, all signed with the key alice.
The --gas auto flag allows the transaction to automatically calculate the gas needed, and --yes confirms the transaction without additional prompts.
ghostcloudd tx ghostcloud remove [NAME] --from [KEY] --gas auto --yeswhere
[NAME]is the name of the deployment to remove.[KEY]is the name of the key to use for signing the transaction.
Example usage:
ghostcloudd tx ghostcloud remove myapp --from alice --gas auto --yesIn this example, the myapp deployment is removed from the blockchain, signed with the key alice.
The --gas auto flag allows the transaction to automatically calculate the gas needed, and --yes confirms the transaction without additional prompts.
ghostcloudd q ghostcloud listAvailable flags:
--filter-by string- Apply a filter to the list of deployments. The filter can becreator.--filter-value string- The value to use for the filter.--filter-operator string- The operator to use for the filter. The operator can beequal.
Example usage:
ghostcloudd q ghostcloud list --filter-by creator \
--filter-value gc13q9lpjm0zwse4msn5l6anwzznphxgnzxssf86x \
--filter-operator equalIn this example, the command will return the list of deployments created by the address gc13q9lpjm0zwse4msn5l6anwzznphxgnzxssf86x.
Use the provided Makefile to execute common operations:
$ make help
help Display this help screen
lint Run linter (golangci-lint)
format Run formatter (goimports)
coverage Run coverage report
test Run tests