2021


blog.udartsev.ru

Export all Grafana data sources to data_sources folder

Export all Grafana data sources to data_sources folder

mkdir -p data_sources && curl -s "http://localhost:3000/api/datasources"  -u admin:admin|jq -c -M '.[]'|split -l 1 - data_sources/

This exports each data source to a separate JSON file in the data_sources folder.

Load data sources back in from folder

This submits every file that exists in the data_sources folder to Grafana as a new data source definition.

for i in data_sources/*; do \
    curl -X "POST" "http://localhost:3000/api/datasources" \
    -H "Content-Type: application/json" \
     --user admin:admin \
     --data-binary @$i
done

Docker Image to OpenShift Cluster

export docker_registry_hub=172.30.1.1:5000
docker login -u $(oc whoami) -p $(oc whoami --show-token) $docker_registry_hub

Ubuntu - change Alt+Shift language layout

  1. Disable Alt+ buttons for keyboard layout (Logitech): sudo dpkg-reconfigure keyboard-configuration

  2. Disable Alt+Shift in Window keyboard settings: enter image description here

  3. Install tweak tool and change layout buttons: sudo apt-get install gnome-tweak-tool


Disable [Shift+Space] for change language in Ubuntu 20.04

 xmodmap -e 'keycode 65 = space space space space'

Hyperledger Fabric - Anchor peer

Hyperledger Fabric - Anchor peer

Anchor peer это пир, который используется для обнаружения всех узлов, принадлежащих организациям в канале. Anchor peer должен быть доступен для всех пиров в канале.

У каждой организации в канале должен быть anchor peer (или несколько для предотвращения единой точки отказа), что позволяет пирам обнаруживать все существующие пиры в канале. Если в вашей организации нет anchor peer, ваши пиры смогут видеть только пиры своей организации. Если у организации нет anchor peer в канале, а к каналу присоединяется новый пир, организация не получит информацию об этом новом пире.

Например, предположим, что у нас есть три организации - orgA, orgB, orgC - в канале и один anchor peer в организации - peer0.orgC - определенный для организации C. Когда peer1.orgA из организации A связывается с peer0.orgC, он расскажет peer0.orgC о peer0.orgA. И когда позже peer1.orgB свяжется с peer0.orgC, peer0.orgC сообщит peer1.orgB о peer0.orgA. С этого момента организации orgA и orgB начнут напрямую обмениваться информацией без какой-либо помощи со стороны peer0.orgC.

Да в сети может быть один anchor peer, но рекомендуется использовать отдельные anchor peer для каждой организации.

Внешние и внутренние конечные точки

Для того чтобы сплетни работали эффективно, пиры должны иметь возможность получать информацию о конечных точках пирах в своей собственной организации, а также от пиров в других организациях.

Когда пир стартует, он использует peer.gossip.bootstrap в своем core.yaml для обмена информацией о членстве, делясь информацией обо всех доступных пирах в пределах своей собственной организации. Т.е использует peer.gossip.bootstrap для сплетен внутри своей организации.

Также можно использовать CORE_PEER_GOSSIP_ENDPOINT в docker-compose файле:

peer1:
  - CORE_PEER_GOSSIP_BOOTSTRAP=peer2:7051
peer2:
  - CORE_PEER_GOSSIP_BOOTSTRAP=peer1:7051

Для того, чтобы пиры в одной организации знали о существовании пиров в другой организации нужно использовать CORE_PEER_GOSSIP_EXTERNALENDPOINT:

peer1:
  - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1:7051
peer2:
  - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer2:7051