Compare commits

...

6 Commits

Author SHA1 Message Date
João Barbosa 0def728dec stream client example renamed 2020-06-10 11:44:06 -03:00
Felipe Faria c6d176dbbb stream client sample 2020-05-08 17:07:33 -03:00
Felipe Faria 9f7da5b676 rabbitmq changes 2020-05-07 03:00:39 -03:00
Felipe Faria 5e7c89c0c6 rabbitmq test
install rabbitmq via docker
2020-05-07 02:58:54 -03:00
Felipe Faria c012c01e96 warn about elastic_pass.txt 2020-04-28 12:59:32 -03:00
Felipe Faria daa141de33 script updates
New name, better text outputs, elasticsearch and kibana security config
2020-04-16 00:13:51 -03:00
2 changed files with 118 additions and 32 deletions
@@ -0,0 +1,70 @@
const HyperionSocketClient = require('@eosrio/hyperion-stream-client').default;
const client = new HyperionSocketClient('https://wax.hyperion.eosrio.io', {async: true});
let totalMessages = 0;
let messages = 0;
const pastMsgInterval = setInterval(() => {
if (messages === 0) {
console.log(`Total Messages Received: ${totalMessages}`);
if (totalMessages !== 0) {
clearInterval(pastMsgInterval);
}
} else {
totalMessages += messages;
console.log(`Incoming Rate: ${messages / 5} msg/s`);
messages = 0;
}
}, 5000);
client.onConnect = () => {
client.streamDeltas({
code: 'eosio',
table: 'global',
scope: '',
payer: '',
start_from: '2020-04-27T00:00:00.000', // start to fetch 100 blocks behind the head
read_until: 0,
});
}
client.onData = async (data, ack) => {
const content = data.content;
if (data.type === 'delta') {
if (content['present'] === true) {
const delta_data = content.data;
console.log(`\n >>>> Block: ${content['block_num']} | Contract: ${content.code} | Table: ${content.table} | Scope: ${content['scope']} | Payer: ${content['payer']} <<<< `);
if (delta_data) {
for (const key in delta_data) {
if (delta_data.hasOwnProperty(key)) {
//console.log(`${key} = ${delta_data[key]}`);
}
}
} else {
console.log('ERROR >>>>>>>> ', content);
}
}
}
if (data.type === 'action') {
const act = data.content['act'];
console.lopoisg(`\n >>>> Contract: ${act.account} | Action: ${act.name} | Block: ${content['block_num']} <<<< `);
for (const key in act.data) {
if (act.data.hasOwnProperty(key)) {
console.log(`${key} = ${act.data[key]}`);
}
}
}
messages++;
console.log('______________________');
//console.log(data); // process incoming data, replace with your code
ack(); // ACK when done
}
client.connect(() => {
console.log('connected!');
});
+48 -32
View File
@@ -28,52 +28,52 @@ check_dependecies(){
CMD=$(if(dpkg --compare-versions 2> /dev/null $(dpkg -s nodejs 2> /dev/null | awk '/Version/ {print $2}') ge "5"); then echo true; else echo false; fi)
if("$CMD" = true); then
NODE=true
echo -e "\n\n${COLOR_BLUE}Nodejs compatible version already installed ${COLOR_NC}\n\n"
echo -e "\n\n${COLOR_BLUE}Nodejs compatible version already installed ${COLOR_NC}"
elif("$CMD" = false); then
echo -e "\n\n${COLOR_RED}Nodejs installed version is < 13. Please, update and try again. ${COLOR_NC}\n\n"
exit 1
else
echo -e "\n\n${COLOR_BLUE}Nodejs not installed ${COLOR_NC}\n\n"
echo -e "\n\n${COLOR_BLUE}Nodejs not installed ${COLOR_NC}"
fi
CMD=$(if(dpkg --compare-versions 2> /dev/null $(dpkg -s elasticsearch 2> /dev/null | awk '/Version/ {print $2}') ge "7.6"); then echo true; else echo false; fi)
if("$CMD" = true); then
ELASTIC=true
echo -e "\n\n${COLOR_BLUE}Elasticsearch compatible version already installed ${COLOR_NC}\n\n"
echo -e "\n${COLOR_BLUE}Elasticsearch compatible version already installed ${COLOR_NC}"
elif ("$CMD" = false); then
echo -e "\n\n${COLOR_RED}Elasticsearch installed version is < 7.6. Please, update and try again. ${COLOR_NC}\n\n"
exit 1
else
echo -e "\n\n${COLOR_BLUE}Elasticsearch not installed ${COLOR_NC}\n\n"
echo -e "\n${COLOR_BLUE}Elasticsearch not installed ${COLOR_NC}"
fi
CMD=$(if(dpkg --compare-versions 2> /dev/null $(dpkg -s redis-server 2> /dev/null | awk '/Version/ {print $2}') ge "5"); then echo true; else echo false; fi)
if("$CMD" = true); then
REDIS=true
echo -e "\n\n${COLOR_BLUE}Redis compatible version already installed ${COLOR_NC}\n\n"
echo -e "\n${COLOR_BLUE}Redis compatible version already installed ${COLOR_NC}"
elif("$CMD" = false); then
echo -e "\n\n${COLOR_RED}Redis installed version is < 5. Please, update and try again. ${COLOR_NC}\n\n"
exit 1
else
echo -e "\n\n${COLOR_BLUE}Redis not installed ${COLOR_NC}\n\n"
echo -e "\n${COLOR_BLUE}Redis not installed ${COLOR_NC}"
fi
CMD=$(if(dpkg --compare-versions 2> /dev/null $(dpkg -s rabbitmq-server 2> /dev/null | awk '/Version/ {print $2}') ge "3.8"); then echo true; else echo false; fi)
if("$CMD" = true); then
RABBIT=true
echo -e "\n\n${COLOR_BLUE}RabbitMQ compatible version already installed ${COLOR_NC}\n\n"
echo -e "\n${COLOR_BLUE}RabbitMQ compatible version already installed ${COLOR_NC}"
elif("$CMD" = false); then
echo -e "\n\n${COLOR_RED}RabbitMQ installed version is < 3.8. Please, update and try again. ${COLOR_NC}\n\n"
exit 1
else
echo -e "\n\n${COLOR_BLUE}RabbitMQ not installed ${COLOR_NC}\n\n"
echo -e "\n${COLOR_BLUE}RabbitMQ not installed ${COLOR_NC}"
fi
CMD=$(if(dpkg --compare-versions 2> /dev/null $(dpkg -s kibana 2> /dev/null | awk '/Version/ {print $2}') ge "7.6"); then echo true; else echo false; fi)
if("$CMD" = true); then
RABBIT=true
echo -e "\n\n${COLOR_BLUE}Kibana compatible version already installed ${COLOR_NC}\n\n"
echo -e "\n${COLOR_BLUE}Kibana compatible version already installed ${COLOR_NC}"
elif("$CMD" = false); then
echo -e "\n\n${COLOR_RED}Kibana installed version is < 7.6. Please, update and try again. ${COLOR_NC}\n\n"
exit 1
else
echo -e "\n\n${COLOR_BLUE}Kibana not installed ${COLOR_NC}\n\n"
echo -e "\n${COLOR_BLUE}Kibana not installed ${COLOR_NC}\n\n"
fi
}
@@ -99,10 +99,12 @@ install_keys_sources(){
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
fi
KEY=$(apt-key list 2> /dev/null | grep erlang)
if [[ ! $KEY ]]; then
wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add -
fi
# PPA="http://dl.bintray.com/rabbitmq-erlang/debian bionic erlang"
# if ! grep -q "^deb .*$PPA" /etc/apt/sources.list /etc/apt/sources.list.d/*; then
# curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo apt-key add -
# echo "deb http://dl.bintray.com/rabbitmq-erlang/debian bionic erlang" | sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list
# curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash
# fi
KEY=$(apt-key list 2> /dev/null | grep rabbitmq)
if [[ ! $KEY ]]; then
@@ -117,9 +119,11 @@ install_keys_sources(){
sudo apt update -y
}
install_dep(){
echo -e "\n\n${COLOR_BLUE}Installing build essentials...${COLOR_NC}\n\n"
sudo apt install -y build-essential curl
install_dep() {
echo -e "\n\n${COLOR_BLUE}Installing dependencies...${COLOR_NC}\n\n"
sudo apt update
# sudo apt install -y build-essential curl
sudo apt install -y curl docker.io
}
install_node(){
@@ -138,7 +142,7 @@ install_node(){
}
install_build_hyperion(){
echo -e "\n\n${COLOR_BLUE}Installing and building hyperion...${COLOR_NC}\n\n"
echo -e "\n\n${COLOR_BLUE}Installing packages and building hyperion...${COLOR_NC}\n\n"
npm install
}
@@ -158,12 +162,11 @@ install_redis(){
sudo systemctl restart redis.service
}
install_earlang(){
echo -e "\n\n${COLOR_BLUE}Installing earlang...${COLOR_NC}\n\n"
echo "deb https://packages.erlang-solutions.com/ubuntu bionic contrib" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
sudo apt update
sudo apt -y install erlang
}
# install_erlang() {
# echo -e "\n\n${COLOR_BLUE}Installing erlang...${COLOR_NC}\n\n"
# sudo apt -y install erlang
# }
#ask user for rabbit credentials
rabbit_credentials(){
read -p "Enter rabbitmq user [hyperion]: " RABBIT_USER
@@ -176,14 +179,14 @@ rabbit_credentials(){
install_rabittmq(){
echo -e "\n\n${COLOR_BLUE}Installing rabbit-mq...${COLOR_NC}\n\n"
curl -s "https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh" | sudo bash
sudo apt install -y rabbitmq-server
# sudo apt install -y rabbitmq-server
sudo docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=${RABBIT_USER} -e RABBITMQ_DEFAULT_PASS=${RABBIT_PASSWORD} -e RABBITMQ_DEFAULT_VHOST=/hyperion rabbitmq:3.8.3-management
#enable web gui
sudo rabbitmq-plugins enable rabbitmq_management
sudo rabbitmqctl add_vhost /hyperion
sudo rabbitmqctl add_user ${RABBIT_USER} ${RABBIT_PASSWORD}
sudo rabbitmqctl set_user_tags ${RABBIT_USER} administrator
sudo rabbitmqctl set_permissions -p /hyperion ${RABBIT_USER} ".*" ".*" ".*"
#sudo rabbitmq-plugins enable rabbitmq_management
# sudo rabbitmqctl add_vhost /hyperion
# sudo rabbitmqctl add_user ${RABBIT_USER} ${RABBIT_PASSWORD}
# sudo rabbitmqctl set_user_tags ${RABBIT_USER} administrator
# sudo rabbitmqctl set_permissions -p /hyperion ${RABBIT_USER} ".*" ".*" ".*"
}
install_elastic(){
@@ -202,17 +205,29 @@ install_elastic(){
else
sudo sed -ie 's/-Xms1g/-Xms16g/; s/-Xmx1g/-Xmx16g/' /etc/elasticsearch/jvm.options
fi
sudo bash -c 'echo "xpack.security.enabled: true" >> /etc/elasticsearch/elasticsearch.yml'
sudo mkdir -p /etc/systemd/system/elasticsearch.service.d/
echo -e "[Service]\nLimitMEMLOCK=infinity" | sudo tee /etc/systemd/system/elasticsearch.service.d/override.conf
sudo systemctl daemon-reload
sudo service elasticsearch start
sudo systemctl enable elasticsearch
echo -e "\n\n${COLOR_BLUE}Generating Elasticsearch cluster passwords...${COLOR_NC}\n\n"
echo "y" | sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto > elastic_pass.txt
}
install_kibana(){
echo -e "\n\n${COLOR_BLUE}Installing kibana...${COLOR_NC}\n\n"
echo -e "\n\n${COLOR_BLUE}Installing and configuring Kibana...${COLOR_NC}\n\n"
sudo apt install -y kibana
KIBANA_PASSWORD=$(cat elastic_pass.txt | awk '/PASSWORD kibana =/ {print $4}')
sudo sed -ie 's/#elasticsearch.password: "pass"/elasticsearch.password: '"$KIBANA_PASSWORD"'/; s/#elasticsearch.username: "kibana"/elasticsearch.username: "kibana"/' /etc/kibana/kibana.yml
sudo systemctl enable kibana
sudo systemctl start kibana
}
@@ -255,4 +270,5 @@ echo -e "\n${COLOR_YELLOW}Please, check your installation: ${COLOR_NC}"
echo -e "${COLOR_YELLOW}- Elastic: http://localhost:9200 ${COLOR_NC}"
echo -e "${COLOR_YELLOW}- Kibana: http://localhost:5601 ${COLOR_NC}"
echo -e "${COLOR_YELLOW}- RabbitMQ: http://localhost:15672 ${COLOR_NC}"
echo -e "${COLOR_YELLOW}- Refer to the elastic_pass.txt file for the elasticsearch passwords ${COLOR_NC}"
echo -e "${COLOR_YELLOW}- Make pm2 auto-boot at server restart: \$ pm2 startup ${COLOR_NC}\n"