Installation
reviewed: 29 March 2023
Ethelia
is a Raku module, that could be installed by zef
utility from zef ecosystem. Ethelia
has a few dependencies on Pheix
— so you should install Pheix
before you will try Ethelia
:
mkdir ~/pheix && cd ~/pheix
git clone https://gitlab.com/pheix-pool/core-perl6.git .
zef install .
zef install Ethelia
On successful installation you will be able to get Ethelia
details from local module storage:
zef info Ethelia
# - Info for: Ethelia
# - Identity: Ethelia:ver<0.0.19>:auth<zef:knarkhov>
# - Recommended By: inst#/opt/rakudo/rakudo-star-2022.12/share/perl6/site
# - Installed: Yes
Integration to Pheix
Extensions are integrated to Pheix
via main configuration file. Pheix
will be split to generic module and deployment stuff in Release Candidate 2, so now we have to update configuration file ~/pheix/conf/config.json
right in cloned repository.
You have to add ethelia
section to module/configuration/settings/addons/group/installed
group:
"ethelia": {
"addon": "Ethelia",
"config": "/home/me/pheix/conf/addons",
"extension": 1
}
You should provide absolute path to your home dir in config
section: /home/me/
instead of ~/
.
Ethelia configuration file
Name convention for Pheix
extensions is considered in Settings on blockchain section.
Ethelia
configuration should be located in ~/pheix/conf/addons/ExtensionEthelia/config.json
file. Sample content is:
{
"module": {
"configuration": {
"settings": {
"storage": {
"group": {
"ExtensionEthelia": {
"type": "0",
"path": "conf/extensions",
"strg": "",
"extn": "tnk",
"prtl": "",
"host": "",
"port": "",
"hash": "",
"user": "",
"pass": "",
"data": "undefined"
}
}
},
"routing": {
"label": "Routing settings",
"group": {
"routes": {
"store": {
"label": "Event store",
"route": {
"path": "/ethelia/event/store",
"hdlr": {
"/api": "event_store_api"
}
}
},
"search": {
"label": "Event search",
"route": {
"path": "/ethelia/event/search",
"hdlr": {
"/api": "event_search_api"
}
}
},
"decode": {
"label": "Transaction data decode",
"route": {
"path": "/ethelia/transaction/decode",
"hdlr": {
"/api": "event_decode_api"
}
}
}
}
}
}
}
}
}
}
This configuration file defines the file chain data storage in ~/pheix/conf/extensions/ExtensionEthelia.tnk
. Ethelia
will crash if this file will be unavailable while you will use Pheix
administration layer. Configuration file initialization:
mkdir -p ~/pheix/conf/extensions/ && touch ~/pheix/conf/extensions/ExtensionEthelia.tnk
Smoke Pheix test
cd ~/pheix/www && raku user.raku --test
This command should finish silently — no any warnings or errors.
Run as a web service
Make sure that you passed this checklist:
- Create your custom Rakudo Star bundle distribution;
- Install your custom Rakudo Star and Pheix dependency modules;
- Install and configure Apache with FastCGI module;
- Deploy, start and run Ethereum local network in Docker container.
Then just make a symbolic link to ~/pheix/www/
to your virtual host DocumentRoot
.