Add 1.1.0-rc1

pull/117/head
Baohua Yang 2018-03-05 13:53:21 +08:00
parent e4df9575a8
commit d18171625a
300 changed files with 76306 additions and 24997 deletions

View File

@ -17,8 +17,9 @@ Fabric Release | Description
[Fabric v1.0.0](v1.0.0/) | stable with fabric v1.0.0 code.
[Fabric v1.0.2](v1.0.2/) | deprecated, test fabric v1.0.2 code.
[Fabric v1.0.5](v1.0.5/) | deprecated, test fabric v1.0.5 code.
[Fabric v1.1.0-alpha](v1.1.0-alpha/) | latest fabric code with v1.1.0-alpha.
[Fabric v1.1.0-alpha](v1.1.0-alpha/) | deprecated, v1.1.0-alpha.
[Fabric v1.0.6](v1.0.6/) | latest stable fabric v1.0.6 code.
[Fabric v1.1.0-rc1](v1.1.0-rc1/) | latest fabric code with v1.1.0-rc1.
[Fabric Latest](latest/) | experimental with latest fabric code, unstable.

View File

@ -90,7 +90,6 @@ services:
restart: always
tty: true
environment:
#- GOPATH=/opt/gopath
- CORE_LOGGING_LEVEL=DEBUG
- CORE_LOGGING_FORMAT=%{color}[%{id:03x} %{time:01-02 15:04:05.00 MST}] [%{longpkg}] %{callpath} -> %{level:.4s}%{color:reset} %{message}
- CORE_PEER_TLS_ENABLED=true # to enable TLS, change to true
@ -111,7 +110,7 @@ services:
command: bash -c 'while true; do sleep 20170504; done'
zookeeper-base:
image: hyperledger/fabric-zookeeper:x86_64-0.4.5
image: hyperledger/fabric-zookeeper:x86_64-0.4.6
restart: always
tty: true
expose:
@ -122,7 +121,7 @@ services:
kafka-base:
# official repo doesn't have 1.1.0-alpha tag, however, kafka changes version recently
#image: yeasy/hyperledger-fabric-kafka:0.10.2.0
image: hyperledger/fabric-kafka:x86_64-0.4.5
image: hyperledger/fabric-kafka:x86_64-0.4.6
restart: always
tty: true
environment:
@ -134,7 +133,7 @@ services:
- '9092'
couchdb-base:
image: hyperledger/fabric-couchdb:x86_64-0.4.5
image: hyperledger/fabric-couchdb:x86_64-0.4.6
restart: always
tty: true

View File

@ -12,26 +12,28 @@ fi
pull_image() {
IMG=$1
if [ -z "$(docker images -q ${IMG} 2> /dev/null)" ]; then # not exist
docker pull ${IMG}
else
echo "${IMG} already exist locally"
fi
#if [ -z "$(docker images -q ${IMG} 2> /dev/null)" ]; then # not exist
# docker pull ${IMG}
#else
# echo "${IMG} already exist locally"
#fi
docker pull ${IMG}
}
echo "Downloading images from DockerHub... need a while"
# TODO: we may need some checking on pulling result?
echo "===Pulling fabric images from yeasy repo... with tag = ${FABRIC_IMG_TAG}"
echo "===Pulling fabric images from yeasy repo... with tag = ${FABRIC_IMG_TAG}" # 1.1.0
for IMG in base peer orderer ca; do
HLF_IMG=yeasy/hyperledger-fabric-${IMG}:$FABRIC_IMG_TAG
pull_image $HLF_IMG
done
docker pull yeasy/hyperledger-fabric:$FABRIC_IMG_TAG \
&& docker pull docker pull yeasy/blockchain-explorer:0.1.0-preview # TODO: wait for official images
pull_image yeasy/hyperledger-fabric:$FABRIC_IMG_TAG
pull_image yeasy/blockchain-explorer:0.1.0-preview # TODO: wait for official images
echo "===Pulling base images from fabric repo... with tag = ${BASE_IMG_TAG}"
echo "===Pulling base images from fabric repo... with tag = ${BASE_IMG_TAG}" # 0.4.6
for IMG in baseimage baseos couchdb kafka zookeeper; do
HLF_IMG=hyperledger/fabric-${IMG}:$ARCH-$BASE_IMG_TAG
pull_image $HLF_IMG
@ -40,14 +42,15 @@ done
# Only useful for debugging
# docker pull yeasy/hyperledger-fabric
echo "===Pulling fabric images from official repo... with tag = ${FABRIC_IMG_TAG}"
echo "===Pulling fabric images from fabric repo... with tag = ${FABRIC_IMG_TAG}"
for IMG in peer tools orderer ca ccenv; do
HLF_IMG=hyperledger/fabric-${IMG}:$ARCH-$BASE_IMG_TAG
HLF_IMG=hyperledger/fabric-${IMG}:$ARCH-$FABRIC_IMG_TAG
pull_image $HLF_IMG
done
docker pull hyperledger/fabric-ccenv:x86_64-1.1.0-alpha # no latest tag for ccenv
docker tag hyperledger/fabric-ccenv:x86_64-1.1.0-alpha hyperledger/fabric-ccenv:$ARCH-$PROJECT_VERSION
pull_image hyperledger/fabric-ccenv:x86_64-1.1.0-rc1 # no latest tag for ccenv
docker tag hyperledger/fabric-ccenv:x86_64-1.1.0-rc1 hyperledger/fabric-ccenv:$ARCH-$PROJECT_VERSION
echo "Image pulling done, now can startup the network using docker-compose..."
exit 0
exit 0

View File

@ -107,7 +107,7 @@ CFG_DELTA_ENV_PB=config_delta_env.pb
ARCH=x86_64
# for the base images, including baseimage, baseos, couchdb, kafka, zookeeper
BASE_IMG_TAG=0.4.5
BASE_IMG_TAG=0.4.6
# For fabric images, including peer, orderer, ca
FABRIC_IMG_TAG=latest

View File

@ -698,13 +698,13 @@
},
"signatures": [
{
"signature": "MEQCIDUjrrbwiZniQft3dw9H9z7SqrxGS8yX6m0lvgKL3xJMAiBOySpz2uCxh+UJ+1jlYqVoJXjgjCrzPlTiqKnQV6CqTg==",
"signature": "MEUCIQDbCgP/dopsnkylvZ62wIvpD8pveu8rW9DyFArDjUlJYwIgDbXEG2fagH44MFMLwdOVOteo99hqQzyl0/vWc3Wxahk=",
"signature_header": {
"creator": {
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHVENDQWNDZ0F3SUJBZ0lSQUtESTVTVy9ES2s4aXVkMkZuNVRybTB3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TVRNd01EYzBNREkzV2hjTk1qZ3dNVEk0TURjME1ESTMKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1pNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkFROW5hOFVzQ3IzcDhBSndwV2lndndkWnJ4STRqU3EKRWg5dk5tREJvbWx2cDI1TmY5UjJQaUtISmptTmx3b3U2MWJSTlp1cmVvMVlnbmpDVk9BaTlhMmpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSUs3NkNIRVBLWHdMCm52VzU2eHhBc3hWeGhlaXdkdDIxV2tNQ2NOQ2pHenU4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUhnZG5CTHcKajQxNkJHbStqRGVkcThtYXRWY3lkM29uRWl0NzdzNnVnQW1YQWlBdHJrTS9LZXQydGozbjYydkUxRG0vbVZNQgo1WTgwUUxlRXZZa29NTU1iY0E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"mspid": "Org2MSP"
},
"nonce": "U3QxJBVoZEfasi1Ny2iS8ykIZN3EkeL4"
"nonce": "RX634r4OIcnV+V9jl0wRgCsQBVcRV9Mf"
}
}
]
@ -713,7 +713,7 @@
"channel_header": {
"channel_id": "businesschannel",
"epoch": "0",
"timestamp": "2018-02-08T13:20:29.000Z",
"timestamp": "2018-03-05T04:42:58.000Z",
"tx_id": "",
"type": 2,
"version": 0
@ -723,18 +723,18 @@
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHVENDQWNDZ0F3SUJBZ0lSQUtESTVTVy9ES2s4aXVkMkZuNVRybTB3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TVRNd01EYzBNREkzV2hjTk1qZ3dNVEk0TURjME1ESTMKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1pNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkFROW5hOFVzQ3IzcDhBSndwV2lndndkWnJ4STRqU3EKRWg5dk5tREJvbWx2cDI1TmY5UjJQaUtISmptTmx3b3U2MWJSTlp1cmVvMVlnbmpDVk9BaTlhMmpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSUs3NkNIRVBLWHdMCm52VzU2eHhBc3hWeGhlaXdkdDIxV2tNQ2NOQ2pHenU4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUhnZG5CTHcKajQxNkJHbStqRGVkcThtYXRWY3lkM29uRWl0NzdzNnVnQW1YQWlBdHJrTS9LZXQydGozbjYydkUxRG0vbVZNQgo1WTgwUUxlRXZZa29NTU1iY0E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"mspid": "Org2MSP"
},
"nonce": "8uXU7q0LbNIR7AZwRcM3daGiHBZVX4hD"
"nonce": "ZBlz0FwrPUiGknUh4ArGWeB0R5BOss+K"
}
}
},
"signature": "MEUCIQDofiTkrGLCxGcSKxSYeETUZB1yw1zMzRCLMKBPy3E72QIgJgUT3UxQK8GLjNRu16ENMgdj9YkUq1J991A7+nm1y/Y="
"signature": "MEQCIHIboBEbPWkbE+j0ILV0pgoGEIWup1ACTa1NCmpm1t4KAiBs3D7LbJ6I58g1URsm+FiIPQ+7nlBrOhz+aJEVqsRotw=="
}
},
"header": {
"channel_header": {
"channel_id": "businesschannel",
"epoch": "0",
"timestamp": "2018-02-08T13:20:29.000Z",
"timestamp": "2018-03-05T04:42:58.000Z",
"tx_id": "",
"type": 1,
"version": 0
@ -744,23 +744,23 @@
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNDekNDQWJLZ0F3SUJBZ0lRV2VBcENjTjFKMzZNQ2NuMStCb1BXREFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTRNREV6TURBM05EQXlOMW9YRFRJNE1ERXlPREEzTkRBeU4xb3dXREVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4SERBYUJnTlZCQU1URTI5eVpHVnlaWEl1WlhoaGJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxCmhrak9QUU1CQndOQ0FBUWluaVozRmQwZGNSMFNoWm9xNk1TOGd5THJablhFa2t4UERWM2lrS0dwNjdkU1AwUU8KRms2Z0NVMW9Kc2tqbFp4d1prWTYyNUF6Q1AwNEYzRHA5N1dsbzAwd1N6QU9CZ05WSFE4QkFmOEVCQU1DQjRBdwpEQVlEVlIwVEFRSC9CQUl3QURBckJnTlZIU01FSkRBaWdDRDJNcm9nYkwrSE9HVFJWTFg2Q3duaGRyZEVMdDRvCnpQOUFlMDN2dUdPNERUQUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQUVyTlJSV0dZNUNMWW5GNVhHaWNlN2lLT1IKcXRaYkFTbnd0eGZ4SjFhbGZnSWdLVWg0enpLM0VDZTY2R2hyVlZQTGZwRFF6K1lLNkZ3NURhMEd5dit0MkpJPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"mspid": "OrdererMSP"
},
"nonce": "VQjKLuOaSjQFYLpaMCEmdAzGUpruCJDF"
"nonce": "Su3rl0R2tgp0Xu5ud6QfNO8INZpDdeCF"
}
}
},
"signature": "MEQCIEDzl0RSwUl8xwlbMa46apY8Nn3CWT9RLRsfTCx5qBmTAiAr0sN0hr4g0oCNkLkgyrZvVFuWt85niVit7ap4o8OgSQ=="
"signature": "MEQCIBwhJU0snl9E2JnXZXHrtDDEtGmdVjv5Mtesu1uDKn7wAiA6OAorpfc+0YxPztttuaRA9SEf+0KWnj/FSLAY/ImzYg=="
}
]
},
"header": {
"data_hash": "++1Em0Trn6RlbZVsgji1rYyKE4mXFC7TYms0huceia0=",
"data_hash": "u8Uy62+VhI8K4xk/5vTLqLL7hSbCXaKqddtq1nnSIXA=",
"number": "2",
"previous_hash": "10TjZbg9UACjgBrKlFCpqZkSQZqxWF4mj8oPJNF+T68="
"previous_hash": "WDSMTopQbP9RWmUsFmAbkzM2+i2u0AXBANBrw9eeHDM="
},
"metadata": {
"metadata": [
"EvgGCq0GCpAGCgpPcmRlcmVyTVNQEoEGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNDekNDQWJLZ0F3SUJBZ0lRV2VBcENjTjFKMzZNQ2NuMStCb1BXREFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTRNREV6TURBM05EQXlOMW9YRFRJNE1ERXlPREEzTkRBeU4xb3dXREVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4SERBYUJnTlZCQU1URTI5eVpHVnlaWEl1WlhoaGJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxCmhrak9QUU1CQndOQ0FBUWluaVozRmQwZGNSMFNoWm9xNk1TOGd5THJablhFa2t4UERWM2lrS0dwNjdkU1AwUU8KRms2Z0NVMW9Kc2tqbFp4d1prWTYyNUF6Q1AwNEYzRHA5N1dsbzAwd1N6QU9CZ05WSFE4QkFmOEVCQU1DQjRBdwpEQVlEVlIwVEFRSC9CQUl3QURBckJnTlZIU01FSkRBaWdDRDJNcm9nYkwrSE9HVFJWTFg2Q3duaGRyZEVMdDRvCnpQOUFlMDN2dUdPNERUQUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQUVyTlJSV0dZNUNMWW5GNVhHaWNlN2lLT1IKcXRaYkFTbnd0eGZ4SjFhbGZnSWdLVWg0enpLM0VDZTY2R2hyVlZQTGZwRFF6K1lLNkZ3NURhMEd5dit0MkpJPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIY1gIE8w6IyAwJBuatH+QbzSC8s/XOwPR1EkYwRAIgIGrytj2L4+3y6mQr1XFEgoQIhagN4PnYBXVn04ERK9kCIAMIT1zO/plS4xtUEn6jY6fzyk2qZKICi7LUXLQlQ3DU",
"CgIIAhL5BgqtBgqQBgoKT3JkZXJlck1TUBKBBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDQ3pDQ0FiS2dBd0lCQWdJUVdlQXBDY04xSjM2TUNjbjErQm9QV0RBS0JnZ3Foa2pPUFFRREFqQnBNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEZ6QVZCZ05WQkFNVERtTmhMbVY0WVcxdwpiR1V1WTI5dE1CNFhEVEU0TURFek1EQTNOREF5TjFvWERUSTRNREV5T0RBM05EQXlOMW93V0RFTE1Ba0dBMVVFCkJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHoKWTI4eEhEQWFCZ05WQkFNVEUyOXlaR1Z5WlhJdVpYaGhiWEJzWlM1amIyMHdXVEFUQmdjcWhrak9QUUlCQmdncQpoa2pPUFFNQkJ3TkNBQVFpbmlaM0ZkMGRjUjBTaFpvcTZNUzhneUxyWm5YRWtreFBEVjNpa0tHcDY3ZFNQMFFPCkZrNmdDVTFvSnNramxaeHdaa1k2MjVBekNQMDRGM0RwOTdXbG8wMHdTekFPQmdOVkhROEJBZjhFQkFNQ0I0QXcKREFZRFZSMFRBUUgvQkFJd0FEQXJCZ05WSFNNRUpEQWlnQ0QyTXJvZ2JMK0hPR1RSVkxYNkN3bmhkcmRFTHQ0bwp6UDlBZTAzdnVHTzREVEFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUFFck5SUldHWTVDTFluRjVYR2ljZTdpS09SCnF0WmJBU253dHhmeEoxYWxmZ0lnS1VoNHp6SzNFQ2U2NkdoclZWUExmcERReitZSzZGdzVEYTBHeXYrdDJKST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGBGsFsLGn2+F80pao7uXhsJBim/SlToQihJHMEUCIQD2zhO6s+Ekk3F9Bp+V1Qf1/lBxjW4sZQG8SIInoaDk+gIgWEFfqlPzyBo3GJCq1lAUCNktFUf1bLitKPJPwJvOWa8=",
"EvkGCq0GCpAGCgpPcmRlcmVyTVNQEoEGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNDekNDQWJLZ0F3SUJBZ0lRV2VBcENjTjFKMzZNQ2NuMStCb1BXREFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTRNREV6TURBM05EQXlOMW9YRFRJNE1ERXlPREEzTkRBeU4xb3dXREVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4SERBYUJnTlZCQU1URTI5eVpHVnlaWEl1WlhoaGJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxCmhrak9QUU1CQndOQ0FBUWluaVozRmQwZGNSMFNoWm9xNk1TOGd5THJablhFa2t4UERWM2lrS0dwNjdkU1AwUU8KRms2Z0NVMW9Kc2tqbFp4d1prWTYyNUF6Q1AwNEYzRHA5N1dsbzAwd1N6QU9CZ05WSFE4QkFmOEVCQU1DQjRBdwpEQVlEVlIwVEFRSC9CQUl3QURBckJnTlZIU01FSkRBaWdDRDJNcm9nYkwrSE9HVFJWTFg2Q3duaGRyZEVMdDRvCnpQOUFlMDN2dUdPNERUQUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQUVyTlJSV0dZNUNMWW5GNVhHaWNlN2lLT1IKcXRaYkFTbnd0eGZ4SjFhbGZnSWdLVWg0enpLM0VDZTY2R2hyVlZQTGZwRFF6K1lLNkZ3NURhMEd5dit0MkpJPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIY3pjHvwHXYUBbRfPbDSYGI/CpL4Rwa8CZEkcwRQIhAOSKWovHS1VGvZw60qffJ1JRpbSsXxQz7zuYDwW0webtAiBn71LWlCcwC1sA8HUDeyA3ZLQ0MlNo3ajAGyxrTU/MaA==",
"CgIIAhL4BgqtBgqQBgoKT3JkZXJlck1TUBKBBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDQ3pDQ0FiS2dBd0lCQWdJUVdlQXBDY04xSjM2TUNjbjErQm9QV0RBS0JnZ3Foa2pPUFFRREFqQnBNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEZ6QVZCZ05WQkFNVERtTmhMbVY0WVcxdwpiR1V1WTI5dE1CNFhEVEU0TURFek1EQTNOREF5TjFvWERUSTRNREV5T0RBM05EQXlOMW93V0RFTE1Ba0dBMVVFCkJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHoKWTI4eEhEQWFCZ05WQkFNVEUyOXlaR1Z5WlhJdVpYaGhiWEJzWlM1amIyMHdXVEFUQmdjcWhrak9QUUlCQmdncQpoa2pPUFFNQkJ3TkNBQVFpbmlaM0ZkMGRjUjBTaFpvcTZNUzhneUxyWm5YRWtreFBEVjNpa0tHcDY3ZFNQMFFPCkZrNmdDVTFvSnNramxaeHdaa1k2MjVBekNQMDRGM0RwOTdXbG8wMHdTekFPQmdOVkhROEJBZjhFQkFNQ0I0QXcKREFZRFZSMFRBUUgvQkFJd0FEQXJCZ05WSFNNRUpEQWlnQ0QyTXJvZ2JMK0hPR1RSVkxYNkN3bmhkcmRFTHQ0bwp6UDlBZTAzdnVHTzREVEFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUFFck5SUldHWTVDTFluRjVYR2ljZTdpS09SCnF0WmJBU253dHhmeEoxYWxmZ0lnS1VoNHp6SzNFQ2U2NkdoclZWUExmcERReitZSzZGdzVEYTBHeXYrdDJKST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGIxc4TGGL0WTdjpd9qlF6oZXcaDFPOnzMhJGMEQCIHGYS5uq+29flUbNJVlb6hxRbInkjVtqF+QDGTJ0oQGZAiAKlgJm7PeHAT9zOkaBCUlGbbDvjuALnUMSjU38TWVlZQ==",
"",
""
]

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -12,11 +12,8 @@ fi
pull_image() {
IMG=$1
if [ -z "$(docker images -q ${IMG} 2> /dev/null)" ]; then # not exist
#if [ -z "$(docker images -q ${IMG} 2> /dev/null)" ]; then # not exist
docker pull ${IMG}
else
echo "${IMG} already exist locally"
fi
}
echo "Downloading images from DockerHub... need a while"
@ -40,9 +37,9 @@ done
# Only useful for debugging
# docker pull yeasy/hyperledger-fabric
echo "===Pulling fabric images from official repo... with tag = ${FABRIC_IMG_TAG}"
echo "===Pulling fabric images from fabric repo... with tag = ${FABRIC_IMG_TAG}"
for IMG in peer tools orderer ca ccenv; do
HLF_IMG=hyperledger/fabric-zookeeper:$ARCH-$BASE_IMG_TAG
HLF_IMG=hyperledger/fabric-${IMG}:$ARCH-$FABRIC_IMG_TAG
pull_image $HLF_IMG
done

View File

@ -110,4 +110,5 @@ ARCH=x86_64
BASE_IMG_TAG=0.4.5
# For fabric images, including peer, orderer, ca
FABRIC_IMG_TAG=1.1.0-alpha
FABRIC_IMG_TAG=1.1.0-alpha
PROJECT_VERSION=1.1.0

View File

@ -0,0 +1,95 @@
---
version: '2.0'
services:
orderer.example.com: # orderer in solo mode
extends:
file: base.yaml
service: orderer-base
container_name: orderer.example.com
hostname: orderer.example.com
expose:
- '7050'
volumes:
- ./solo/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block
- ./solo/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp
- ./solo/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls:/var/hyperledger/orderer/tls
peer0.org1.example.com: # peer node
extends:
file: base.yaml
service: peer-base
container_name: peer0.org1.example.com # will generated automatically
hostname: peer0.org1.example.com # will generated automatically
environment:
- CORE_PEER_ID=peer0.org1.example.com
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer0.org1.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_PEER_TLS_ENABLED=true
volumes:
- ./solo/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
- ./solo/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
expose:
- 7051
- 7052
- 7053
peer1.org1.example.com: # peer node
extends:
file: base.yaml
service: peer-base
container_name: peer1.org1.example.com # will generated automatically
hostname: peer1.org1.example.com # will generated automatically
environment:
- CORE_PEER_ID=peer1.org1.example.com
- CORE_PEER_ADDRESS=peer1.org1.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer1.org1.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_PEER_TLS_ENABLED=true
volumes:
- ./solo/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/fabric/msp
- ./solo/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls:/etc/hyperledger/fabric/tls
expose:
- 7051
- 7052
- 7053
peer0.org2.example.com: # peer node
extends:
file: base.yaml
service: peer-base
container_name: peer0.org2.example.com # will generated automatically
hostname: peer0.org2.example.com # will generated automatically
environment:
- CORE_PEER_ID=peer0.org2.example.com
- CORE_PEER_ADDRESS=peer0.org2.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer0.org2.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051
- CORE_PEER_LOCALMSPID=Org2MSP
- CORE_PEER_TLS_ENABLED=true
volumes:
- ./solo/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp
- ./solo/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls
expose:
- 7051
- 7052
- 7053
peer1.org2.example.com: # peer node
extends:
file: base.yaml
service: peer-base
container_name: peer1.org2.example.com # will generated automatically
hostname: peer1.org2.example.com # will generated automatically
environment:
- CORE_PEER_ID=peer1.org2.example.com
- CORE_PEER_ADDRESS=peer1.org2.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer1.org2.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051
- CORE_PEER_LOCALMSPID=Org2MSP
- CORE_PEER_TLS_ENABLED=true
volumes:
- ./solo/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp:/etc/hyperledger/fabric/msp
- ./solo/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls:/etc/hyperledger/fabric/tls
expose:
- 7051
- 7052
- 7053

View File

@ -0,0 +1,218 @@
# Makefile to bootup the network, and do operations (channel, chaincode)
# mode of the network: solo, kafka, couchdb, event, dev
HLF_MODE ?= solo
HLF_VERSION ?= 1.1.0-rc1
CODE_BUILD_WAIT=40 # time to wait to build peer/orderer from local code
NETWORK_INIT_WAIT=2 # time to wait the fabric network finish initialization
COMPOSE_FILE ?= "docker-compose-2orgs-4peers-solo.yaml"
LOG_PATH ?= solo/logs
ifeq ($(HLF_MODE),kafka)
COMPOSE_FILE="docker-compose-2orgs-4peers-kafka.yaml"
LOG_PATH=kafka/logs
else ifeq ($(HLF_MODE),couchdb)
COMPOSE_FILE="docker-compose-2orgs-4peers-couchdb.yaml"
else ifeq ($(HLF_MODE),event)
COMPOSE_FILE="docker-compose-2orgs-4peers-event.yaml"
else ifeq ($(HLF_MODE),be)
COMPOSE_FILE="docker-compose-2orgs-4peers-solo-be.yaml"
else ifeq ($(HLF_MODE),dev)
COMPOSE_FILE="docker-compose-1orgs-1peers-dev.yaml"
endif
all: test
test:
@echo "Run test with $(COMPOSE_FILE)"
@echo "Please make sure u have setup Docker and pulled images by 'make setup'."
make ready # Finish all testing
make stop clean
ready: # create/join channel, install/instantiate cc
make stop
make gen_config # Will ignore if local config path exists
make start
if [ "$(HLF_MODE)" = "dev" ]; then \
sleep ${CODE_BUILD_WAIT}; \
else \
sleep ${NETWORK_INIT_WAIT}; \
fi
make test_channel_create
make test_channel_join
make update_anchors
make test_cc_install
make test_cc_instantiate
make test_cc_invoke_query
make test_lscc # test lscc operations
make test_qscc # test qscc operations
make test_fetch_blocks # fetch block files
make test_config_update # not work with this version
make test_channel_update # not work with this version
make test_fetch_blocks # fetch block files again
make test_configtxlator
make logs_save
@echo "Now the fabric network is ready to play"
@echo "run 'make cli' to enter into the fabric-cli container."
@echo "run 'make stop' when done."
restart: stop start
start: # bootup the fabric network
@echo "Start a fabric network with ${COMPOSE_FILE}..."
@make clean
@docker-compose -f ${COMPOSE_FILE} up -d # Start a fabric network
stop: # stop the fabric network
@echo "Stop the fabric network with ${COMPOSE_FILE}..."
@docker-compose -f ${COMPOSE_FILE} down >& /tmp/docker-compose.log # Stop a fabric network
chaincode_dev: restart chaincode_init test_cc_peer0 stop
################## Channel testing operations ################
test_channel_create: # Init the channel
@echo "Create channel on the fabric network"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_channel_create.sh"
test_channel_join: # Init the channel
@echo "Join channel"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_channel_join.sh"
update_anchors: # Update the anchor peer
@echo "Update anchors on the fabric network"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_update_anchors.sh"
test_channel_update: # send the channel update transaction
@echo "Test channel update with adding new org"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_channel_update.sh"
################## Configtxlator testing operations ################
test_configtxlator: # Test change config using configtxlator
if [ "$(HLF_MODE)" = "kafka" ]; then \
bash scripts/test_configtxlator.sh kafka; \
else \
bash scripts/test_configtxlator.sh solo; \
fi
test_config_update: # Test change config to add new org
if [ "$(HLF_MODE)" = "kafka" ]; then \
bash scripts/test_config_update.sh kafka; \
else \
bash scripts/test_config_update.sh solo; \
fi
################## Chaincode testing operations ################
test_cc: # test chaincode, deprecated
if [ "$(HLF_MODE)" = "dev" ]; then \
make test_cc_peer0; \
else \
make test_cc_invoke_query; \
fi
test_cc_install: # Install the chaincode
@echo "Install chaincode on the fabric network"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_install.sh"
test_cc_instantiate: # Instantiate the chaincode
@echo "Instantiate chaincode on the fabric network"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_instantiate.sh"
test_cc_upgrade: # Upgrade the chaincode
@echo "Upgrade chaincode on the fabric network"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_upgrade.sh"
test_cc_invoke_query: # test user chaincode on all peers
@echo "Invoke and query cc example02 on all peers"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_invoke_query.sh"
test_qscc: # test qscc queries
@echo "Test QSCC query"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_qscc.sh"
test_lscc: # test lscc quries
@echo "Test LSCC query"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_lscc.sh"
# FIXME: docker doesn't support wildcard in cp right now
test_fetch_blocks: # test fetching channel blocks fetch
@echo "Test fetching block files"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_fetch_blocks.sh"
################## Env setup related, no need to see usually ################
setup: # setup the environment
bash scripts/env_setup.sh # Installing Docker and Docker-Compose
bash scripts/download_images.sh # Pull required Docker images
check: # Check shell scripts grammar
@echo "Check shell scripts grammar"
[ `which shellcheck` ] && shellcheck scripts/*.sh
clean: # clean up containers
@echo "Clean all HLF containers and chaincode images"
@-docker ps -a | awk '{ print $$1,$$2 }' | grep "hyperledger/fabric" | awk '{ print $$1 }' | xargs -r -I {} docker rm -f {}
@-docker ps -a | awk '$$2 ~ /dev-peer/ { print $$1 }' | xargs -r -I {} docker rm -f {}
@-docker images | awk '$$1 ~ /dev-peer/ { print $$3 }' | xargs -r -I {} docker rmi -f {}
env_clean: # clean up environment
@echo "Clean all images and containers"
bash scripts/env_clean.sh
cli: # enter the cli container
docker exec -it fabric-cli bash
orderer: # enter the orderer container
docker exec -it orderer.example.com bash
peer: # enter the peer container
docker exec -it peer0.org1.example.com bash
ps: # show existing docker images
docker ps -a
logs: # show logs
docker-compose -f ${COMPOSE_FILE} logs -f --tail 200
logs_check: logs_save logs_view
logs_save: # save logs
[ -d $(LOG_PATH) ] || mkdir -p $(LOG_PATH)
docker logs peer0.org1.example.com >& $(LOG_PATH)/dev_peer0.log
docker logs orderer.example.com >& $(LOG_PATH)/dev_orderer.log
docker-compose -f ${COMPOSE_FILE} logs >& $(LOG_PATH)/dev_all.log
logs_view: # view logs
less $(LOG_PATH)/dev_peer.log
gen_config: # generate config artifacts
if [ "$(HLF_MODE)" = "kafka" ]; then \
bash scripts/gen_config.sh kafka; \
else \
bash scripts/gen_config.sh solo; \
fi
download: # download required images
@echo "Download Docker images"
bash scripts/download_images.sh
################## chaincode dev mode ################
chaincode_init: # start chaincode in dev mode and do install/instantiate
@echo "Install and instantiate cc example02 on the fabric dev network"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/init_chaincode_dev.sh"

View File

@ -0,0 +1,97 @@
# This is the development compose file to config env and command
# Notice that chaincode is executed inside docker in default net mode
# https://github.com/yeasy/docker-compose-files
# Depends on the yeasy/hyperledger-fabric image.
version: '2'
services:
orderer.example.com: # There can be multiple orderers
extends:
file: base.yaml
service: orderer-base
image: yeasy/hyperledger-fabric:1.1.0-rc1
container_name: orderer.example.com
hostname: orderer.example.com
ports:
- "7050:7050"
environment:
# Kafka related configurations
- ORDERER_KAFKA_RETRY_SHORTINTERVAL=1s
- ORDERER_KAFKA_RETRY_SHORTTOTAL=30s
- ORDERER_KAFKA_VERBOSE=true
volumes:
- $GOPATH/src/github.com/hyperledger/fabric:/go/src/github.com/hyperledger/fabric
# for solo case
#- ./solo/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block
#- ./solo/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp
#- ./solo/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls
# for kafka case
- ./kafka/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block
- ./kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp
- ./kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls
command: bash -c 'bash /tmp/orderer_build.sh; orderer start' # use this if to debug orderer
#command: bash -c 'orderer start'
peer0.org1.example.com:
extends:
file: base.yaml
service: peer-base
image: yeasy/hyperledger-fabric:1.1.0-rc1
container_name: peer0.org1.example.com
hostname: peer0.org1.example.com
environment:
- CORE_PEER_ID=peer0.org1.example.com
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer0.org1.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
volumes:
- $GOPATH/src/github.com/hyperledger/fabric:/go/src/github.com/hyperledger/fabric
# solo mode configuration
#- ./solo/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
#- ./solo/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
# kafka mode configuration
- ./kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
- ./kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
ports:
- 7051:7051
- 7052:7052
- 7053:7053
#command: bash -c 'bash /tmp/peer_build.sh; peer node start'
command: bash -c 'peer node start'
#command: bash -c 'peer node start --peer-chaincodedev=true' # DEV mode
cli:
extends:
file: base.yaml
service: cli-base
image: yeasy/hyperledger-fabric:1.1.0-rc1
container_name: fabric-cli
hostname: fabric-cli
tty: true
environment:
- CORE_PEER_ID=fabric-cli
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
volumes:
- $GOPATH/src/github.com/hyperledger/fabric:/opt/gopath/src/github.com/hyperledger/fabric
#- /tmp/:/tmp/
- ./scripts:/tmp/scripts
# solo mode configuration
#- ./solo/channel-artifacts:/tmp/channel-artifacts
#- ./solo/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml
#- ./solo/crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml
#- ./solo/crypto-config:/etc/hyperledger/fabric/crypto-config
#- ./examples:/opt/gopath/src/github.com/hyperledger/fabric/examples
# kafka mode configuration
- ./kafka/channel-artifacts:/tmp/channel-artifacts
- ./kafka/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml
- ./kafka/crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml
- ./kafka/crypto-config:/etc/hyperledger/fabric/crypto-config
- ./examples:/opt/gopath/src/github.com/hyperledger/fabric/examples

View File

@ -0,0 +1,78 @@
# All elements in this file should depend on the base-solo.yaml
# Provided solo-base fabric network with:
# ca.org1.example.com
# ca.org2.example.com
# orderer.example.com
# peer0.org1.example.com
# peer1.org1.example.com
# peer0.org2.example.com
# peer1.org2.example.com
# cli
version: '2' # v3 does not support 'extends' yet
services:
ca.org1.example.com: # ca node for org1
extends:
file: base-solo.yaml
service: ca.org1.example.com
environment:
- FABRIC_CA_SERVER_TLS_ENABLED=false
ca.org2.example.com: # ca node for org1
extends:
file: base-solo.yaml
service: ca.org2.example.com
environment:
- FABRIC_CA_SERVER_TLS_ENABLED=false
orderer.example.com: # orderer node for example org
extends:
file: base-solo.yaml
service: orderer.example.com
environment:
- ORDERER_GENERAL_TLS_ENABLED=false
cli: # client node
extends:
file: base-solo.yaml
service: cli
environment:
#- GOPATH=/opt/gopath
- CORE_PEER_TLS_ENABLED=false # to enable TLS, change to false
## following are peer nodes ##
peer0.org1.example.com:
extends:
file: base-solo.yaml
service: peer0.org1.example.com
environment:
- CORE_PEER_TLS_ENABLED=false
peer1.org1.example.com:
extends:
file: base-solo.yaml
service: peer1.org1.example.com
environment:
- CORE_PEER_TLS_ENABLED=false
peer0.org2.example.com:
extends:
file: base-solo.yaml
service: peer0.org2.example.com
environment:
- CORE_PEER_TLS_ENABLED=false
peer1.org2.example.com:
extends:
file: base-solo.yaml
service: peer1.org2.example.com
environment:
- CORE_PEER_TLS_ENABLED=false
event-listener:
extends:
file: base-solo.yaml
service: event-listener

View File

@ -0,0 +1,256 @@
# All elements in this file should depend on the base.yaml
# Provided a Kafka enabled fabric network with:
# ca.org1.example.com
# ca.org2.example.com
# orderer.example.com
# peer0.org1.example.com
# peer1.org1.example.com
# peer0.org2.example.com
# peer1.org2.example.com
# 3 zookeeper nodes
# 4 kafka nodes
# cli
version: '2' # v3 does not support 'extends' yet
services:
ca.org1.example.com:
extends:
file: base.yaml
service: ca-base
container_name: ca.org1.example.com
hostname: ca.org1.example.com
environment:
- FABRIC_CA_SERVER_CA_NAME=ca-org1
- FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
- FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk
ports:
- "7054:7054"
volumes:
- ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk -b admin:adminpw -d'
ca.org2.example.com:
extends:
file: base.yaml
service: ca-base
container_name: ca.org2.example.com
hostname: ca.org2.example.com
environment:
- FABRIC_CA_SERVER_CA_NAME=ca-org2
- FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem
- FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk
ports:
- "8054:7054"
volumes:
- ./crypto-config/peerOrganizations/org2.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk -b admin:adminpw -d'
orderer.example.com: # There can be multiple orderers
extends:
file: base.yaml
service: orderer-base
container_name: orderer.example.com
hostname: orderer.example.com
ports:
- "7050:7050"
environment:
# Kafka related configurations
- ORDERER_KAFKA_RETRY_SHORTINTERVAL=1s
- ORDERER_KAFKA_RETRY_SHORTTOTAL=30s
- ORDERER_KAFKA_VERBOSE=true
volumes:
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls
- ./kafka/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block
command: orderer start
cli:
extends:
file: base.yaml
service: cli-base
container_name: fabric-cli
hostname: fabric-cli
tty: true
environment:
- CORE_PEER_ID=fabric-cli
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
volumes:
- ./scripts:/tmp/scripts
- ./crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml
- ./crypto-config:/etc/hyperledger/fabric/crypto-config
- ./kafka/channel-artifacts:/tmp/channel-artifacts
- ./kafka/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml
- ./examples:/opt/gopath/src/examples
## following are peer nodes ##
peer0.org1.example.com:
extends:
file: base.yaml
service: peer-base
container_name: peer0.org1.example.com
hostname: peer0.org1.example.com
environment:
- CORE_PEER_ID=peer0.org1.example.com
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer0.org1.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
volumes:
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
ports:
- 7051:7051
- 7052:7052
- 7053:7053
peer1.org1.example.com:
extends:
file: base.yaml
service: peer-base
container_name: peer1.org1.example.com
hostname: peer1.org1.example.com
environment:
- CORE_PEER_ID=peer1.org1.example.com
- CORE_PEER_ADDRESS=peer1.org1.example.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer1.org1.example.com:7052
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
volumes:
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls:/etc/hyperledger/fabric/tls
ports:
- 8051:7051
- 8052:7052
- 8053:7053
peer0.org2.example.com:
extends:
file: base.yaml
service: peer-base
container_name: peer0.org2.example.com
hostname: peer0.org2.example.com
environment:
- CORE_PEER_ID=peer0.org2.example.com
- CORE_PEER_ADDRESS=peer0.org2.example.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer0.org2.example.com:7052
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051
- CORE_PEER_LOCALMSPID=Org2MSP
volumes:
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls
ports:
- 9051:7051
- 9052:7052
- 9053:7053
peer1.org2.example.com:
extends:
file: base.yaml
service: peer-base
container_name: peer1.org2.example.com
hostname: peer1.org2.example.com
environment:
- CORE_PEER_ID=peer1.org2.example.com
- CORE_PEER_ADDRESS=peer1.org2.example.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer1.org2.example.com:7052
- CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.example.com:7051
- CORE_PEER_LOCALMSPID=Org2MSP
volumes:
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls:/etc/hyperledger/fabric/tls
ports:
- 10051:7051
- 10052:7052
- 10053:7053
# ZooKeeper services, at least 3 nodes
zookeeper0:
extends:
file: base.yaml
service: zookeeper-base
container_name: zookeeper0
hostname: zookeeper0
environment:
- ZOO_MY_ID=1
- ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888
zookeeper1:
extends:
file: base.yaml
service: zookeeper-base
container_name: zookeeper1
hostname: zookeeper1
environment:
- ZOO_MY_ID=2
- ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888
zookeeper2:
extends:
file: base.yaml
service: zookeeper-base
container_name: zookeeper2
hostname: zookeeper2
environment:
- ZOO_MY_ID=3
- ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888
# Kafka services, at least 4 node to tolerant work with 1 node failure
kafka0:
extends:
file: base.yaml
service: kafka-base
container_name: kafka0
hostname: kafka0
environment:
- KAFKA_BROKER_ID=0
- KAFKA_MIN_INSYNC_REPLICAS=2
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181
kafka1:
extends:
file: base.yaml
service: kafka-base
container_name: kafka1
hostname: kafka1
environment:
- KAFKA_BROKER_ID=1
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
- KAFKA_MIN_INSYNC_REPLICAS=2
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181
kafka2:
extends:
file: base.yaml
service: kafka-base
container_name: kafka2
hostname: kafka2
environment:
- KAFKA_BROKER_ID=2
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
- KAFKA_MIN_INSYNC_REPLICAS=2
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181
kafka3:
extends:
file: base.yaml
service: kafka-base
container_name: kafka3
hostname: kafka3
environment:
- KAFKA_BROKER_ID=3
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
- KAFKA_MIN_INSYNC_REPLICAS=2
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181

View File

@ -0,0 +1,202 @@
# All elements in this file should depend on the base.yaml
# Provided solo-base fabric network with:
# ca.org1.example.com
# ca.org2.example.com
# orderer.example.com
# peer0.org1.example.com
# peer1.org1.example.com
# peer0.org2.example.com
# peer1.org2.example.com
# cli
version: '2' # v3 does not support 'extends' yet
services:
ca.org1.example.com: # ca node for org1
extends:
file: base.yaml
service: ca-base
container_name: ca.org1.example.com
hostname: ca.org1.example.com
environment:
- FABRIC_CA_SERVER_CA_NAME=ca-org1
- FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
- FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk
ports:
- "7054:7054"
volumes:
- ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk -b admin:adminpw -d'
ca.org2.example.com: # ca node for org2
extends:
file: base.yaml
service: ca-base
container_name: ca.org2.example.com
hostname: ca.org2.example.com
environment:
- FABRIC_CA_SERVER_CA_NAME=ca-org2
- FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem
- FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk
ports:
- "8054:7054"
volumes:
- ./crypto-config/peerOrganizations/org2.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk -b admin:adminpw -d'
orderer.example.com: # orderer in solo mode
extends:
file: base.yaml
service: orderer-base
container_name: orderer.example.com
hostname: orderer.example.com
ports:
- "7050:7050"
volumes:
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls
- ./solo/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block
## following are peer nodes ##
peer0.org1.example.com:
extends:
file: peer.yaml
service: peer-solo
container_name: peer0.org1.example.com
hostname: peer0.org1.example.com
environment:
- CORE_PEER_ID=peer0.org1.example.com
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer0.org1.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
volumes:
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
ports:
- 7051:7051
- 7052:7052
- 7053:7053
peer1.org1.example.com:
extends:
file: peer.yaml
service: peer-solo
container_name: peer1.org1.example.com
hostname: peer1.org1.example.com
environment:
- CORE_PEER_ID=peer1.org1.example.com
- CORE_PEER_ADDRESS=peer1.org1.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer1.org1.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
volumes:
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls:/etc/hyperledger/fabric/tls
ports:
- 8051:7051
- 8052:7052
- 8053:7053
peer0.org2.example.com:
extends:
file: peer.yaml
service: peer-solo
container_name: peer0.org2.example.com
hostname: peer0.org2.example.com
environment:
- CORE_PEER_ID=peer0.org2.example.com
- CORE_PEER_ADDRESS=peer0.org2.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer0.org2.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051
- CORE_PEER_LOCALMSPID=Org2MSP
volumes:
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls
ports:
- 9051:7051
- 9052:7052
- 9053:7053
peer1.org2.example.com:
extends:
file: peer.yaml
service: peer-solo
container_name: peer1.org2.example.com
hostname: peer1.org2.example.com
environment:
- CORE_PEER_ID=peer1.org2.example.com
- CORE_PEER_ADDRESS=peer1.org2.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer1.org2.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051
- CORE_PEER_LOCALMSPID=Org2MSP
volumes:
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls:/etc/hyperledger/fabric/tls
ports:
- 10051:7051
- 10052:7052
- 10053:7053
peer0.org3.example.com:
extends:
file: peer.yaml
service: peer-solo
container_name: peer0.org3.example.com
hostname: peer0.org3.example.com
environment:
- CORE_PEER_ID=peer0.org3.example.com
- CORE_PEER_ADDRESS=peer0.org3.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peer0.org3.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org3.example.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org3.example.com:7051
- CORE_PEER_LOCALMSPID=Org3MSP
volumes:
- ./crypto-config/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls:/etc/hyperledger/fabric/tls
ports:
- 11051:7051
- 11052:7052
- 11053:7053
cli: # client node
extends:
file: base.yaml
service: cli-base
container_name: fabric-cli
hostname: fabric-cli
volumes:
- ./scripts:/tmp/scripts
- ./crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml
- ./crypto-config:/etc/hyperledger/fabric/crypto-config
- ./solo/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml
- ./solo/channel-artifacts:/tmp/channel-artifacts
- ./examples:/opt/gopath/src/examples
event-listener:
extends:
file: base.yaml
service: event-listener-base
container_name: fabric-event-listener
hostname: fabric-event-listener
environment:
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
volumes:
- ./scripts:/tmp/scripts
- ./crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml
- ./crypto-config:/etc/hyperledger/fabric/crypto-config
- ./solo/channel-artifacts:/tmp/channel-artifacts
- ./solo/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml
- ./examples:/opt/gopath/src/github.com/hyperledger/fabric/examples
command: bash -c 'while true; do sleep 1; block-listener -events-address=peer0.org1.example.com:7053 -events-mspdir=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/ -events-mspid=Org1MSP; done'
#command: bash -c 'while true; do sleep 20170504; done'

View File

@ -0,0 +1,150 @@
# Contains the base template for all Hyperledger Fabric services
# Never directly use services in this template, but inherent
# All services are abstract without any names, config or port mapping
# https://github.com/yeasy/docker-compose-files
#
# * ca-base: base for fabric-ca
# * orderer-base: base for fabric-orderer
# * peer-base: base for fabric-peer
# * cli-base: base for fabric peer client
# * event-listener-base: base for fabric eventhub listener
# * kafka-base: base for kafka
# * zookeeper-base: base for fabric-zookeeper
# * couchdb-base: base for couchdb
# * explorer-base: base for Hyperledger blockchain-explorer
# * mysql-base: base for MySQL
version: '2' # compose v3 still doesn't support `extends`, shame!
services:
ca-base:
image: yeasy/hyperledger-fabric-ca:1.1.0-rc1
restart: always
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
- FABRIC_CA_SERVER_TLS_ENABLED=true # change to false to disable TLS
orderer-base:
image: yeasy/hyperledger-fabric-orderer:1.1.0-rc1
restart: always
# Default config can be found at https://github.com/hyperledger/fabric/blob/master/orderer/common/localconfig/config.go
environment:
- ORDERER_GENERAL_LOGLEVEL=DEBUG # default: INFO
- ORDERER_GENERAL_LOGFORMAT=%{color}[%{id:03x} %{time:01-02 15:04:05.00 MST}] [%{longpkg}] %{callpath} -> %{level:.4s}%{color:reset} %{message}
- ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 # default: 127.0.0.1
- ORDERER_GENERAL_GENESISMETHOD=file # default: provisional
- ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
- ORDERER_GENERAL_LOCALMSPID=OrdererMSP # default: DEFAULT
- ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
- ORDERER_GENERAL_LEDGERTYPE=file
#- ORDERER_GENERAL_LEDGERTYPE=json # default: file
- ORDERER_GENERAL_BATCHTIMEOUT=1s
- ORDERER_GENERAL_MAXMESSAGECOUNT=10
- ORDERER_GENERAL_MAXWINDOWSIZE=1000
- ORDERER_GENERAL_LISTENPORT=7050
#- ORDERER_RAMLEDGER_HISTORY_SIZE=100 #only useful when use ram ledger
# enabled TLS
- ORDERER_GENERAL_TLS_ENABLED=true # default: false
- ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
- ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
- ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
#volumes:
# - $GOPATH/src/github.com/hyperledger/fabric:/go/src/github.com/hyperledger/fabric
expose:
- "7050" #
#command: bash -c 'bash /tmp/orderer_build.sh; orderer start' # use this if to debug orderer
command: orderer start
peer-base: # abstract base for fabric-peer, will be used in peer.yaml
image: yeasy/hyperledger-fabric-peer:1.1.0-rc1
restart: always
environment:
- CORE_PEER_ADDRESSAUTODETECT=false
- CORE_LOGGING_LEVEL=DEBUG
- CORE_LOGGING_FORMAT=%{color}[%{id:03x} %{time:01-02 15:04:05.00 MST}] [%{longpkg}] %{callpath} -> %{level:.4s}%{color:reset} %{message}
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=v110rc1_default # uncomment this to use specific network
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false # whether this node is the group leader, default to false
#- CORE_PEER_PROFILE_ENABLED=true
- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
- CORE_CHIANCODE_LOGGING_LEVEL=DEBUG
- CORE_CHIANCODE_LOGGING_FORMAT=%{color}[%{id:03x} %{time:01-02 15:04:05.00 MST}] [%{longpkg}] %{callpath} -> %{level:.4s}%{color:reset} %{message}
#volumes:
#- $GOPATH/src/github.com/hyperledger/fabric:/go/src/github.com/hyperledger/fabric
expose:
- "7051" # Grpc
- "7052" # Peer CLI
- "7053" # Peer Event
volumes: # docker.sock is mapped as the default CORE_VM_ENDPOINT
- /var/run/docker.sock:/var/run/docker.sock
#volumes:
# - /var/run/:/host/var/run/
#command: bash -c 'bash /tmp/peer_build.sh; peer node start'
command: peer node start
cli-base:
image: yeasy/hyperledger-fabric:1.1.0-rc1
restart: always
tty: true
environment:
- CORE_LOGGING_LEVEL=DEBUG
- CORE_LOGGING_FORMAT=%{color}[%{id:03x} %{time:01-02 15:04:05.00 MST}] [%{longpkg}] %{callpath} -> %{level:.4s}%{color:reset} %{message}
- CORE_PEER_TLS_ENABLED=true # to enable TLS, change to true
- ORDERER_CA=/etc/hyperledger/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
command: bash -c 'cd /tmp; source scripts/func.sh; while true; do sleep 20170504; done'
event-listener-base:
image: yeasy/hyperledger-fabric:1.1.0-rc1
restart: always
tty: true
environment:
- CORE_PEER_ID=fabric-event-listener
- CORE_LOGGING_LEVEL=DEBUG
- CORE_PEER_TLS_ENABLED=false # event-listener doesn't support TLS
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
#command: bash -c 'block-listener -events-address=peer0.org1.example.com:7053 -events-mspdir=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/ -events-mspid=Org1MSP'
command: bash -c 'while true; do sleep 20170504; done'
zookeeper-base:
image: hyperledger/fabric-zookeeper:x86_64-0.4.6
restart: always
tty: true
expose:
- '2181'
- '2888'
- '3888'
kafka-base:
# official repo doesn't have 1.1.0-rc1 tag, however, kafka changes version recently
#image: yeasy/hyperledger-fabric-kafka:0.10.2.0
image: hyperledger/fabric-kafka:x86_64-0.4.6
restart: always
tty: true
environment:
- KAFKA_MESSAGE_MAX_BYTES=1048576 # 1 * 1024 * 1024 B
- KAFKA_REPLICA_FETCH_MAX_BYTES=1048576 # 1 * 1024 * 1024 B
- KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false
- KAFKA_LOG_RETENTION_MS=-1
expose:
- '9092'
couchdb-base:
image: hyperledger/fabric-couchdb:x86_64-0.4.6
restart: always
tty: true
explorer-base:
image: yeasy/blockchain-explorer:0.1.0-preview # Till we have official image
expose:
- "8080" # HTTP port
command: bash -c 'sleep 10; node main.js'
mysql-base: # mysql service
image: mysql:8.0
restart: always
expose:
- "3306"

View File

@ -0,0 +1,93 @@
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
# ---------------------------------------------------------------------------
# "OrdererOrgs" - Definition of organizations managing orderer nodes
# ---------------------------------------------------------------------------
OrdererOrgs:
# ---------------------------------------------------------------------------
# Orderer
# ---------------------------------------------------------------------------
- Name: Orderer
Domain: example.com
CA:
Country: US
Province: California
Locality: San Francisco
# ---------------------------------------------------------------------------
# "Specs" - See PeerOrgs below for complete description
# ---------------------------------------------------------------------------
Specs:
- Hostname: orderer
# ---------------------------------------------------------------------------
# "PeerOrgs" - Definition of organizations managing peer nodes
# ---------------------------------------------------------------------------
PeerOrgs:
# ---------------------------------------------------------------------------
# Org1
# ---------------------------------------------------------------------------
- Name: Org1
Domain: org1.example.com
CA:
Country: US
Province: California
Locality: San Francisco
# ---------------------------------------------------------------------------
# "Specs"
# ---------------------------------------------------------------------------
# Uncomment this section to enable the explicit definition of hosts in your
# configuration. Most users will want to use Template, below
#
# Specs is an array of Spec entries. Each Spec entry consists of two fields:
# - Hostname: (Required) The desired hostname, sans the domain.
# - CommonName: (Optional) Specifies the template or explicit override for
# the CN. By default, this is the template:
#
# "{{.Hostname}}.{{.Domain}}"
#
# which obtains its values from the Spec.Hostname and
# Org.Domain, respectively.
# ---------------------------------------------------------------------------
# Specs:
# - Hostname: foo # implicitly "foo.org1.example.com"
# CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above
# - Hostname: bar
# - Hostname: baz
# ---------------------------------------------------------------------------
# "Template"
# ---------------------------------------------------------------------------
# Allows for the definition of 1 or more hosts that are created sequentially
# from a template. By default, this looks like "peer%d" from 0 to Count-1.
# You may override the number of nodes (Count), the starting index (Start)
# or the template used to construct the name (Hostname).
#
# Note: Template and Specs are not mutually exclusive. You may define both
# sections and the aggregate nodes will be created for you. Take care with
# name collisions
# ---------------------------------------------------------------------------
Template:
Count: 2
# Start: 5
# Hostname: {{.Prefix}}{{.Index}} # default
# ---------------------------------------------------------------------------
# "Users"
# ---------------------------------------------------------------------------
# Count: The number of user accounts _in addition_ to Admin
# ---------------------------------------------------------------------------
Users:
Count: 1
# ---------------------------------------------------------------------------
# Org2: See "Org1" for full specification
# ---------------------------------------------------------------------------
- Name: Org2
Domain: org2.example.com
CA:
Country: US
Province: California
Locality: San Francisco
Template:
Count: 2
Users:
Count: 1

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgu+XGp6CHJzed74h5
hsk5xKftGzuu8UOuTRba8/CbIZ2hRANCAATrwLbponWbtHitDmrcPr1Gba1q3fJ7
7g2Qb59K9LJQPmrMGIUiBiWuEMBG9dJCepJ//j/tJOHEPLEZ1duMZYo+
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICLzCCAdagAwIBAgIRANUzyRRr6JmBIJstcXQxibAwCgYIKoZIzj0EAwIwaTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
cGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMGkxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATrwLbponWbtHitDmrcPr1Gba1q
3fJ77g2Qb59K9LJQPmrMGIUiBiWuEMBG9dJCepJ//j/tJOHEPLEZ1duMZYo+o18w
XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
AQH/MCkGA1UdDgQiBCBBg2HB6GI+5ag7oXJi1uk45LYzN10l8N22T/xt63P1TTAK
BggqhkjOPQQDAgNHADBEAiBK7snhhFcl9fLNl9YpZDdLqFgMp1/m/5H/f0VrEB0K
jwIgQZ9G1EN1xpS+eHN9AeHdzH/hQEJPSGwIwIPrg65Ooxw=
-----END CERTIFICATE-----

View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICCzCCAbGgAwIBAgIRAOYqMDB4bHFkTPktkFxekZEwCgYIKoZIzj0EAwIwaTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
cGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMFYxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG
SM49AwEHA0IABEkSMC+sx5T/axbjt72xmcG7lQ1MQZqnzHXI1edtcMjFec3Odmcr
HZsYTv3BP4i06TBN9RlWX865sfyf2xdD89yjTTBLMA4GA1UdDwEB/wQEAwIHgDAM
BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEGDYcHoYj7lqDuhcmLW6TjktjM3XSXw
3bZP/G3rc/VNMAoGCCqGSM49BAMCA0gAMEUCIQCpnI+VUUB4Ee0zIRTay+1buIXl
Qo3uFtR6JYEyqLsoaAIgIUE2WnwZWb/Eh/0DBJGLp/ACzhwJFqfbBQU64honTOQ=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICLzCCAdagAwIBAgIRANUzyRRr6JmBIJstcXQxibAwCgYIKoZIzj0EAwIwaTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
cGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMGkxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATrwLbponWbtHitDmrcPr1Gba1q
3fJ77g2Qb59K9LJQPmrMGIUiBiWuEMBG9dJCepJ//j/tJOHEPLEZ1duMZYo+o18w
XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
AQH/MCkGA1UdDgQiBCBBg2HB6GI+5ag7oXJi1uk45LYzN10l8N22T/xt63P1TTAK
BggqhkjOPQQDAgNHADBEAiBK7snhhFcl9fLNl9YpZDdLqFgMp1/m/5H/f0VrEB0K
jwIgQZ9G1EN1xpS+eHN9AeHdzH/hQEJPSGwIwIPrg65Ooxw=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNTCCAdygAwIBAgIRAMyhTKm8+WQMk4Wkl6dITTQwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQvVFiNkJEOJ4eQYK7O
A+SAamIfvOsE7Fpas0/e1VMi0S/PnWGEBvtz6VYtuA01KN4gl7+I9Tf4mRZD5u87
AzAIo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCUKjmuc2uAIKY7vt9c5IptSOBNKpLGpoyD9s+2
cyjMgTAKBggqhkjOPQQDAgNHADBEAiACIFCa2szzvotB1znmj/7M7fQRJPr56Cse
k0YJ8jzAIwIgHHEKcfjLhf8Wo5K3ktHO8AqIFQQbPPtRonmpdqBLJ0g=
-----END CERTIFICATE-----

View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICCzCCAbGgAwIBAgIRAOYqMDB4bHFkTPktkFxekZEwCgYIKoZIzj0EAwIwaTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
cGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMFYxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG
SM49AwEHA0IABEkSMC+sx5T/axbjt72xmcG7lQ1MQZqnzHXI1edtcMjFec3Odmcr
HZsYTv3BP4i06TBN9RlWX865sfyf2xdD89yjTTBLMA4GA1UdDwEB/wQEAwIHgDAM
BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEGDYcHoYj7lqDuhcmLW6TjktjM3XSXw
3bZP/G3rc/VNMAoGCCqGSM49BAMCA0gAMEUCIQCpnI+VUUB4Ee0zIRTay+1buIXl
Qo3uFtR6JYEyqLsoaAIgIUE2WnwZWb/Eh/0DBJGLp/ACzhwJFqfbBQU64honTOQ=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICLzCCAdagAwIBAgIRANUzyRRr6JmBIJstcXQxibAwCgYIKoZIzj0EAwIwaTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
cGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMGkxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATrwLbponWbtHitDmrcPr1Gba1q
3fJ77g2Qb59K9LJQPmrMGIUiBiWuEMBG9dJCepJ//j/tJOHEPLEZ1duMZYo+o18w
XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
AQH/MCkGA1UdDgQiBCBBg2HB6GI+5ag7oXJi1uk45LYzN10l8N22T/xt63P1TTAK
BggqhkjOPQQDAgNHADBEAiBK7snhhFcl9fLNl9YpZDdLqFgMp1/m/5H/f0VrEB0K
jwIgQZ9G1EN1xpS+eHN9AeHdzH/hQEJPSGwIwIPrg65Ooxw=
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgg9qp/MBJG5cjz9yN
Y6IdghirmaZ1w/756wpVZV4/rSuhRANCAATdR+KQiFobgAtqKTq4Src05RkRxKNI
Q6HAVdXUFv/6QhdHf96Q7FcwbQWthO04TNyLOokyGxwqXhcDlUXmbwJd
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICDTCCAbOgAwIBAgIRAMXi11dnMTEi4OspHHFpWTMwCgYIKoZIzj0EAwIwaTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
cGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMFgxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
c2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI
KoZIzj0DAQcDQgAE3UfikIhaG4ALaik6uEq3NOUZEcSjSEOhwFXV1Bb/+kIXR3/e
kOxXMG0FrYTtOEzcizqJMhscKl4XA5VF5m8CXaNNMEswDgYDVR0PAQH/BAQDAgeA
MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgQYNhwehiPuWoO6FyYtbpOOS2Mzdd
JfDdtk/8betz9U0wCgYIKoZIzj0EAwIDSAAwRQIhAPbDIznwLUSb3M/jU+YuLvPO
mrFV/2EEIZOrpN04coLEAiAmb/5bVdBOgY/u1ukpGgUjqw2JO9W8bzAXztz5caWH
hg==
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNTCCAdygAwIBAgIRAMyhTKm8+WQMk4Wkl6dITTQwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQvVFiNkJEOJ4eQYK7O
A+SAamIfvOsE7Fpas0/e1VMi0S/PnWGEBvtz6VYtuA01KN4gl7+I9Tf4mRZD5u87
AzAIo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCUKjmuc2uAIKY7vt9c5IptSOBNKpLGpoyD9s+2
cyjMgTAKBggqhkjOPQQDAgNHADBEAiACIFCa2szzvotB1znmj/7M7fQRJPr56Cse
k0YJ8jzAIwIgHHEKcfjLhf8Wo5K3ktHO8AqIFQQbPPtRonmpdqBLJ0g=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNTCCAdygAwIBAgIRAMyhTKm8+WQMk4Wkl6dITTQwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQvVFiNkJEOJ4eQYK7O
A+SAamIfvOsE7Fpas0/e1VMi0S/PnWGEBvtz6VYtuA01KN4gl7+I9Tf4mRZD5u87
AzAIo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCUKjmuc2uAIKY7vt9c5IptSOBNKpLGpoyD9s+2
cyjMgTAKBggqhkjOPQQDAgNHADBEAiACIFCa2szzvotB1znmj/7M7fQRJPr56Cse
k0YJ8jzAIwIgHHEKcfjLhf8Wo5K3ktHO8AqIFQQbPPtRonmpdqBLJ0g=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICWTCCAf+gAwIBAgIQCvZ2utmxDoWhCbxlUDYMRTAKBggqhkjOPQQDAjBsMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4
YW1wbGUuY29tMB4XDTE4MDMwNTA0NDMxN1oXDTI4MDMwMjA0NDMxN1owWDELMAkG
A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu
Y2lzY28xHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIB
BggqhkjOPQMBBwNCAASgRaW88LxbqqW6q9w2yVkl8+Q5De6/G8EnSeOojRPNjzQu
iaPpfWMjyonmm2DoaZrgRNfnCF+kS6ycyo4v1fzfo4GWMIGTMA4GA1UdDwEB/wQE
AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIw
ADArBgNVHSMEJDAigCCUKjmuc2uAIKY7vt9c5IptSOBNKpLGpoyD9s+2cyjMgTAn
BgNVHREEIDAeghNvcmRlcmVyLmV4YW1wbGUuY29tggdvcmRlcmVyMAoGCCqGSM49
BAMCA0gAMEUCIQCQKbDwiHM4tFrZJ4se6PU1e4MEWNLnuKVcwa2W6ev10QIgUKy1
2XUfG+irW8k3lsR2vRW8RZJr4Jd1RDQKL5AoS50=
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgm1+eAX9BAvRA8kcB
PUm/XhiGFrLgw56Dbm7gOJckEQqhRANCAASgRaW88LxbqqW6q9w2yVkl8+Q5De6/
G8EnSeOojRPNjzQuiaPpfWMjyonmm2DoaZrgRNfnCF+kS6ycyo4v1fzf
-----END PRIVATE KEY-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgU5dh8C8wK+G5JQDG
Vc1k8lU5N3iUvVsB/eQghHcBduChRANCAAQvVFiNkJEOJ4eQYK7OA+SAamIfvOsE
7Fpas0/e1VMi0S/PnWGEBvtz6VYtuA01KN4gl7+I9Tf4mRZD5u87AzAI
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNTCCAdygAwIBAgIRAMyhTKm8+WQMk4Wkl6dITTQwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQvVFiNkJEOJ4eQYK7O
A+SAamIfvOsE7Fpas0/e1VMi0S/PnWGEBvtz6VYtuA01KN4gl7+I9Tf4mRZD5u87
AzAIo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCUKjmuc2uAIKY7vt9c5IptSOBNKpLGpoyD9s+2
cyjMgTAKBggqhkjOPQQDAgNHADBEAiACIFCa2szzvotB1znmj/7M7fQRJPr56Cse
k0YJ8jzAIwIgHHEKcfjLhf8Wo5K3ktHO8AqIFQQbPPtRonmpdqBLJ0g=
-----END CERTIFICATE-----

View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICCzCCAbGgAwIBAgIRAOYqMDB4bHFkTPktkFxekZEwCgYIKoZIzj0EAwIwaTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
cGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMFYxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG
SM49AwEHA0IABEkSMC+sx5T/axbjt72xmcG7lQ1MQZqnzHXI1edtcMjFec3Odmcr
HZsYTv3BP4i06TBN9RlWX865sfyf2xdD89yjTTBLMA4GA1UdDwEB/wQEAwIHgDAM
BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEGDYcHoYj7lqDuhcmLW6TjktjM3XSXw
3bZP/G3rc/VNMAoGCCqGSM49BAMCA0gAMEUCIQCpnI+VUUB4Ee0zIRTay+1buIXl
Qo3uFtR6JYEyqLsoaAIgIUE2WnwZWb/Eh/0DBJGLp/ACzhwJFqfbBQU64honTOQ=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICLzCCAdagAwIBAgIRANUzyRRr6JmBIJstcXQxibAwCgYIKoZIzj0EAwIwaTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
cGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMGkxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATrwLbponWbtHitDmrcPr1Gba1q
3fJ77g2Qb59K9LJQPmrMGIUiBiWuEMBG9dJCepJ//j/tJOHEPLEZ1duMZYo+o18w
XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
AQH/MCkGA1UdDgQiBCBBg2HB6GI+5ag7oXJi1uk45LYzN10l8N22T/xt63P1TTAK
BggqhkjOPQQDAgNHADBEAiBK7snhhFcl9fLNl9YpZDdLqFgMp1/m/5H/f0VrEB0K
jwIgQZ9G1EN1xpS+eHN9AeHdzH/hQEJPSGwIwIPrg65Ooxw=
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXIyWQ3QVCGW+hBFJ
/SpheQmCEXrwdE+YxKO3Ptd4UFKhRANCAARJEjAvrMeU/2sW47e9sZnBu5UNTEGa
p8x1yNXnbXDIxXnNznZnKx2bGE79wT+ItOkwTfUZVl/OubH8n9sXQ/Pc
-----END PRIVATE KEY-----

View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICCzCCAbGgAwIBAgIRAOYqMDB4bHFkTPktkFxekZEwCgYIKoZIzj0EAwIwaTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
cGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMFYxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG
SM49AwEHA0IABEkSMC+sx5T/axbjt72xmcG7lQ1MQZqnzHXI1edtcMjFec3Odmcr
HZsYTv3BP4i06TBN9RlWX865sfyf2xdD89yjTTBLMA4GA1UdDwEB/wQEAwIHgDAM
BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEGDYcHoYj7lqDuhcmLW6TjktjM3XSXw
3bZP/G3rc/VNMAoGCCqGSM49BAMCA0gAMEUCIQCpnI+VUUB4Ee0zIRTay+1buIXl
Qo3uFtR6JYEyqLsoaAIgIUE2WnwZWb/Eh/0DBJGLp/ACzhwJFqfbBQU64honTOQ=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNTCCAdygAwIBAgIRAMyhTKm8+WQMk4Wkl6dITTQwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQvVFiNkJEOJ4eQYK7O
A+SAamIfvOsE7Fpas0/e1VMi0S/PnWGEBvtz6VYtuA01KN4gl7+I9Tf4mRZD5u87
AzAIo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCUKjmuc2uAIKY7vt9c5IptSOBNKpLGpoyD9s+2
cyjMgTAKBggqhkjOPQQDAgNHADBEAiACIFCa2szzvotB1znmj/7M7fQRJPr56Cse
k0YJ8jzAIwIgHHEKcfjLhf8Wo5K3ktHO8AqIFQQbPPtRonmpdqBLJ0g=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNTCCAdygAwIBAgIRAMyhTKm8+WQMk4Wkl6dITTQwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTdaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQvVFiNkJEOJ4eQYK7O
A+SAamIfvOsE7Fpas0/e1VMi0S/PnWGEBvtz6VYtuA01KN4gl7+I9Tf4mRZD5u87
AzAIo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCUKjmuc2uAIKY7vt9c5IptSOBNKpLGpoyD9s+2
cyjMgTAKBggqhkjOPQQDAgNHADBEAiACIFCa2szzvotB1znmj/7M7fQRJPr56Cse
k0YJ8jzAIwIgHHEKcfjLhf8Wo5K3ktHO8AqIFQQbPPtRonmpdqBLJ0g=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKzCCAdKgAwIBAgIQN9YF3uEWa6Ooif/4k15T+DAKBggqhkjOPQQDAjBsMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4
YW1wbGUuY29tMB4XDTE4MDMwNTA0NDMxN1oXDTI4MDMwMjA0NDMxN1owVjELMAkG
A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu
Y2lzY28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI
KoZIzj0DAQcDQgAE4AfqZWcEVOQWcJoLNvE2I00178wVW1OCaFskbiXtEgPUUI9F
ZNeGikSf8ldysd3pOpG1jcZnCE9gRSW1G8T/DaNsMGowDgYDVR0PAQH/BAQDAgWg
MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMCsG
A1UdIwQkMCKAIJQqOa5za4Agpju+31zkim1I4E0qksamjIP2z7ZzKMyBMAoGCCqG
SM49BAMCA0cAMEQCIDcJYjnL+UcdH4gI9CXWTFUSNkv0mMMiNcVqLAvNvLkJAiA2
CdJH7fwC8I3p0chqCofpBWBUwimSuEKXC9mcmUO2ug==
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgiT2qbu94zgAGmp9J
XPJEa+zqY/qbCSQSpnflc8Ev/LWhRANCAATgB+plZwRU5BZwmgs28TYjTTXvzBVb
U4JoWyRuJe0SA9RQj0Vk14aKRJ/yV3Kx3ek6kbWNxmcIT2BFJbUbxP8N
-----END PRIVATE KEY-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgorix+wLLR9sG90TH
EjNSci5vba6s8PSM1XmcTP5nXTyhRANCAARx+n4OWsHMrQfKE6AXcf1UcUFcN2j/
7llHt7MJAldUh6NaDuM6Nz9MjpwxrU/ez8vxCtaBlzFx4xR2rRS58TbQ
-----END PRIVATE KEY-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICQzCCAeqgAwIBAgIRANa15WBQs1yre98NV62Uo4cwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0MzE2
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BHH6fg5awcytB8oToBdx/VRxQVw3aP/uWUe3swkCV1SHo1oO4zo3P0yOnDGtT97P
y/EK1oGXMXHjFHatFLnxNtCjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKDMipqMVyyg84nnD2A6
hTaBoWmZm08cnQb2zoH3OW4yMAoGCCqGSM49BAMCA0cAMEQCICs+BiOrS5VFTfEJ
7sI08beSJoQvHjNSYAWW7EN7lVesAiAiKpwA0YdbSUCcVKGrjDgqUgo1blzsaOFi
gms+rKy5cw==
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGDCCAb+gAwIBAgIQQ1ld9opxPdKJg3FG4jOCCjAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQzMTZa
MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw
EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXnkSPOf53Tv96VYg17CDWb4ZT6e6vQS+
QoZGwZZRnUK9SDB5FfEZS5zDjL+k/FjpIkfFyUpcGFX07k1y31oUAqNNMEswDgYD
VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgoMyKmoxXLKDz
iecPYDqFNoGhaZmbTxydBvbOgfc5bjIwCgYIKoZIzj0EAwIDRwAwRAIgM5K3f3J8
kjIpLQ02Gt3NimaMUlElQ2Y5R/yp79pdZ2QCIGizt3aU/soOtJOyCisdb84ztnaN
IbNIUDzFB8pH+Y+Y
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICQzCCAeqgAwIBAgIRANa15WBQs1yre98NV62Uo4cwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0MzE2
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BHH6fg5awcytB8oToBdx/VRxQVw3aP/uWUe3swkCV1SHo1oO4zo3P0yOnDGtT97P
y/EK1oGXMXHjFHatFLnxNtCjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKDMipqMVyyg84nnD2A6
hTaBoWmZm08cnQb2zoH3OW4yMAoGCCqGSM49BAMCA0cAMEQCICs+BiOrS5VFTfEJ
7sI08beSJoQvHjNSYAWW7EN7lVesAiAiKpwA0YdbSUCcVKGrjDgqUgo1blzsaOFi
gms+rKy5cw==
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSDCCAe+gAwIBAgIQXh0VA0//COu4F0cejR3JTjAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEaUWbrpFQgLhKa8YMyI1FspxOhA2GzcfyZf+kg1/RWg6NGVMLbx+mBFOq
0Gy916VgegUawRu+gQdCO5H8BlK4E6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQghtglTL0lVUNO
hD6fZLME1JvTav8Cr9EEtfZV6SBCDMMwCgYIKoZIzj0EAwIDRwAwRAIgPba45j2l
llPrIh/8QL0aN25J4wHFVWbys/i/VPkySDECIFdWa0C9MiDgmUzEhXGzZaS2ClXO
50wykJxoabCg6NJg
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGDCCAb+gAwIBAgIQQ1ld9opxPdKJg3FG4jOCCjAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQzMTZa
MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw
EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXnkSPOf53Tv96VYg17CDWb4ZT6e6vQS+
QoZGwZZRnUK9SDB5FfEZS5zDjL+k/FjpIkfFyUpcGFX07k1y31oUAqNNMEswDgYD
VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgoMyKmoxXLKDz
iecPYDqFNoGhaZmbTxydBvbOgfc5bjIwCgYIKoZIzj0EAwIDRwAwRAIgM5K3f3J8
kjIpLQ02Gt3NimaMUlElQ2Y5R/yp79pdZ2QCIGizt3aU/soOtJOyCisdb84ztnaN
IbNIUDzFB8pH+Y+Y
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICQzCCAeqgAwIBAgIRANa15WBQs1yre98NV62Uo4cwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0MzE2
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BHH6fg5awcytB8oToBdx/VRxQVw3aP/uWUe3swkCV1SHo1oO4zo3P0yOnDGtT97P
y/EK1oGXMXHjFHatFLnxNtCjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKDMipqMVyyg84nnD2A6
hTaBoWmZm08cnQb2zoH3OW4yMAoGCCqGSM49BAMCA0cAMEQCICs+BiOrS5VFTfEJ
7sI08beSJoQvHjNSYAWW7EN7lVesAiAiKpwA0YdbSUCcVKGrjDgqUgo1blzsaOFi
gms+rKy5cw==
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgyjsBh/aL9IW4m3lq
Y60pXE3Qs5Ltka3BZRttp11uEhihRANCAASBGxqaAwfIxUcUEmqdm/1b9sNB8wvI
BY86iHlS9hTRvmKyJr7YleIR/o5Ci3CTyQtRvNt3GRlPSdYsD1q69zxk
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGTCCAb+gAwIBAgIQDmOPZGOtpbERBKvuv0O7hTAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQzMTZa
MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29tMFkw
EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgRsamgMHyMVHFBJqnZv9W/bDQfMLyAWP
Ooh5UvYU0b5isia+2JXiEf6OQotwk8kLUbzbdxkZT0nWLA9auvc8ZKNNMEswDgYD
VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgoMyKmoxXLKDz
iecPYDqFNoGhaZmbTxydBvbOgfc5bjIwCgYIKoZIzj0EAwIDSAAwRQIhAPIJonok
ct5FEWtjTFIdBrO2b7Ja+oa22Jy9ni4nx+tAAiArCkXfRosKUJuUEFCJgOJT51Ec
7e3k/FmoubanXk1xQQ==
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSDCCAe+gAwIBAgIQXh0VA0//COu4F0cejR3JTjAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEaUWbrpFQgLhKa8YMyI1FspxOhA2GzcfyZf+kg1/RWg6NGVMLbx+mBFOq
0Gy916VgegUawRu+gQdCO5H8BlK4E6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQghtglTL0lVUNO
hD6fZLME1JvTav8Cr9EEtfZV6SBCDMMwCgYIKoZIzj0EAwIDRwAwRAIgPba45j2l
llPrIh/8QL0aN25J4wHFVWbys/i/VPkySDECIFdWa0C9MiDgmUzEhXGzZaS2ClXO
50wykJxoabCg6NJg
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSDCCAe+gAwIBAgIQXh0VA0//COu4F0cejR3JTjAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEaUWbrpFQgLhKa8YMyI1FspxOhA2GzcfyZf+kg1/RWg6NGVMLbx+mBFOq
0Gy916VgegUawRu+gQdCO5H8BlK4E6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQghtglTL0lVUNO
hD6fZLME1JvTav8Cr9EEtfZV6SBCDMMwCgYIKoZIzj0EAwIDRwAwRAIgPba45j2l
llPrIh/8QL0aN25J4wHFVWbys/i/VPkySDECIFdWa0C9MiDgmUzEhXGzZaS2ClXO
50wykJxoabCg6NJg
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICaDCCAg6gAwIBAgIRAL7gd6N0/JDMNhygRuFI6MEwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0
MzE2WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMS5leGFtcGxlLmNv
bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABES9wFLnw9KI3Bc/OZLiu6xJS5X7
HPHO6m4ZbjQ1Wqgt5hcCIamIRhy5rSfngV0Y5ziGteQLHGnsZjfEgP0rycijgZcw
gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD
AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIIbYJUy9JVVDToQ+n2SzBNSb02r/
Aq/RBLX2VekgQgzDMCgGA1UdEQQhMB+CFnBlZXIwLm9yZzEuZXhhbXBsZS5jb22C
BXBlZXIwMAoGCCqGSM49BAMCA0gAMEUCIQDngSmzb1Q7YUd2CO3wHWSQddHb4AQq
CdE7cuosXJS9PwIgHGDDOaX87Hd3+ClFQJim5K2ZDJ0qoVp+TrFHfQiAdwI=
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgC/LnsgVn3u3dXt9g
9jHfOiLUPkEDmbsZuwHHU+6vEaahRANCAAREvcBS58PSiNwXPzmS4rusSUuV+xzx
zupuGW40NVqoLeYXAiGpiEYcua0n54FdGOc4hrXkCxxp7GY3xID9K8nI
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGDCCAb+gAwIBAgIQQ1ld9opxPdKJg3FG4jOCCjAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQzMTZa
MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw
EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXnkSPOf53Tv96VYg17CDWb4ZT6e6vQS+
QoZGwZZRnUK9SDB5FfEZS5zDjL+k/FjpIkfFyUpcGFX07k1y31oUAqNNMEswDgYD
VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgoMyKmoxXLKDz
iecPYDqFNoGhaZmbTxydBvbOgfc5bjIwCgYIKoZIzj0EAwIDRwAwRAIgM5K3f3J8
kjIpLQ02Gt3NimaMUlElQ2Y5R/yp79pdZ2QCIGizt3aU/soOtJOyCisdb84ztnaN
IbNIUDzFB8pH+Y+Y
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICQzCCAeqgAwIBAgIRANa15WBQs1yre98NV62Uo4cwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0MzE2
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BHH6fg5awcytB8oToBdx/VRxQVw3aP/uWUe3swkCV1SHo1oO4zo3P0yOnDGtT97P
y/EK1oGXMXHjFHatFLnxNtCjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKDMipqMVyyg84nnD2A6
hTaBoWmZm08cnQb2zoH3OW4yMAoGCCqGSM49BAMCA0cAMEQCICs+BiOrS5VFTfEJ
7sI08beSJoQvHjNSYAWW7EN7lVesAiAiKpwA0YdbSUCcVKGrjDgqUgo1blzsaOFi
gms+rKy5cw==
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgBDuo8G1k6ezDVkjG
AexPSKCOXrSYLJj5wCp5HPM/Br2hRANCAAQfMccU8zcZjUamHLxPe9rrVJxP9dxS
uilNlCkIU2mzkXdoMnKze+WhcTUdbGTPVYPWzkdERxBH82ZIb3V/Pvjb
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGTCCAcCgAwIBAgIRAKXaMEHK/w6xH1uDm/9tSBgwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0MzE2
WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjEub3JnMS5leGFtcGxlLmNvbTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8xxxTzNxmNRqYcvE972utUnE/13FK6
KU2UKQhTabORd2gycrN75aFxNR1sZM9Vg9bOR0RHEEfzZkhvdX8++NujTTBLMA4G
A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKDMipqMVyyg
84nnD2A6hTaBoWmZm08cnQb2zoH3OW4yMAoGCCqGSM49BAMCA0cAMEQCIApJlEcZ
J7D6y/1YAcv7YsYFuW7J6FPABI9VyRdm2e50AiBneotbOGbpYg2ryoQ0z+r4ObI1
Epa5BTlaBaN5kmO8oQ==
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSDCCAe+gAwIBAgIQXh0VA0//COu4F0cejR3JTjAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEaUWbrpFQgLhKa8YMyI1FspxOhA2GzcfyZf+kg1/RWg6NGVMLbx+mBFOq
0Gy916VgegUawRu+gQdCO5H8BlK4E6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQghtglTL0lVUNO
hD6fZLME1JvTav8Cr9EEtfZV6SBCDMMwCgYIKoZIzj0EAwIDRwAwRAIgPba45j2l
llPrIh/8QL0aN25J4wHFVWbys/i/VPkySDECIFdWa0C9MiDgmUzEhXGzZaS2ClXO
50wykJxoabCg6NJg
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSDCCAe+gAwIBAgIQXh0VA0//COu4F0cejR3JTjAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEaUWbrpFQgLhKa8YMyI1FspxOhA2GzcfyZf+kg1/RWg6NGVMLbx+mBFOq
0Gy916VgegUawRu+gQdCO5H8BlK4E6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQghtglTL0lVUNO
hD6fZLME1JvTav8Cr9EEtfZV6SBCDMMwCgYIKoZIzj0EAwIDRwAwRAIgPba45j2l
llPrIh/8QL0aN25J4wHFVWbys/i/VPkySDECIFdWa0C9MiDgmUzEhXGzZaS2ClXO
50wykJxoabCg6NJg
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICZzCCAg2gAwIBAgIQBUqwJdLK+X8lGXkON967VTAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcxLmV4YW1wbGUuY29t
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEeEdX/u9YJRFt8lrJSUncMdreLnkM
7gi3LBeAlLMzF+RQHjR9u4Yk8rrJ1dkKrFVDeSPljXbA+NuRK5hci5b01aOBlzCB
lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC
MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAghtglTL0lVUNOhD6fZLME1JvTav8C
r9EEtfZV6SBCDMMwKAYDVR0RBCEwH4IWcGVlcjEub3JnMS5leGFtcGxlLmNvbYIF
cGVlcjEwCgYIKoZIzj0EAwIDSAAwRQIhAMY/tbXaNcTxNMMt1EedVAFhzbLVswDo
BRoZWB0jDErNAiBPC5X2dDrlVv6oyzWNf1emTi+Yywo3OXJQ9DdwEIgsOg==
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgj40mkdHD/2rR8KF9
cS86escpCVNzLAbCRA5CTXr48QOhRANCAAR4R1f+71glEW3yWslJSdwx2t4ueQzu
CLcsF4CUszMX5FAeNH27hiTyusnV2QqsVUN5I+WNdsD425ErmFyLlvTV
-----END PRIVATE KEY-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg6eFMpw4gDktWaTZa
ytyY3Mk3FLp46e9Z1CWw+a3sLgyhRANCAARpRZuukVCAuEprxgzIjUWynE6EDYbN
x/Jl/6SDX9FaDo0ZUwtvH6YEU6rQbL3XpWB6BRrBG76BB0I7kfwGUrgT
-----END PRIVATE KEY-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSDCCAe+gAwIBAgIQXh0VA0//COu4F0cejR3JTjAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEaUWbrpFQgLhKa8YMyI1FspxOhA2GzcfyZf+kg1/RWg6NGVMLbx+mBFOq
0Gy916VgegUawRu+gQdCO5H8BlK4E6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQghtglTL0lVUNO
hD6fZLME1JvTav8Cr9EEtfZV6SBCDMMwCgYIKoZIzj0EAwIDRwAwRAIgPba45j2l
llPrIh/8QL0aN25J4wHFVWbys/i/VPkySDECIFdWa0C9MiDgmUzEhXGzZaS2ClXO
50wykJxoabCg6NJg
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGDCCAb+gAwIBAgIQQ1ld9opxPdKJg3FG4jOCCjAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQzMTZa
MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw
EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXnkSPOf53Tv96VYg17CDWb4ZT6e6vQS+
QoZGwZZRnUK9SDB5FfEZS5zDjL+k/FjpIkfFyUpcGFX07k1y31oUAqNNMEswDgYD
VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgoMyKmoxXLKDz
iecPYDqFNoGhaZmbTxydBvbOgfc5bjIwCgYIKoZIzj0EAwIDRwAwRAIgM5K3f3J8
kjIpLQ02Gt3NimaMUlElQ2Y5R/yp79pdZ2QCIGizt3aU/soOtJOyCisdb84ztnaN
IbNIUDzFB8pH+Y+Y
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICQzCCAeqgAwIBAgIRANa15WBQs1yre98NV62Uo4cwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0MzE2
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BHH6fg5awcytB8oToBdx/VRxQVw3aP/uWUe3swkCV1SHo1oO4zo3P0yOnDGtT97P
y/EK1oGXMXHjFHatFLnxNtCjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKDMipqMVyyg84nnD2A6
hTaBoWmZm08cnQb2zoH3OW4yMAoGCCqGSM49BAMCA0cAMEQCICs+BiOrS5VFTfEJ
7sI08beSJoQvHjNSYAWW7EN7lVesAiAiKpwA0YdbSUCcVKGrjDgqUgo1blzsaOFi
gms+rKy5cw==
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg+Naa2/h+Ur0nQx7w
F6oYFY4o47YUy0dPOh9PLO7LwdOhRANCAAReeRI85/ndO/3pViDXsINZvhlPp7q9
BL5ChkbBllGdQr1IMHkV8RlLnMOMv6T8WOkiR8XJSlwYVfTuTXLfWhQC
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGDCCAb+gAwIBAgIQQ1ld9opxPdKJg3FG4jOCCjAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQzMTZa
MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw
EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXnkSPOf53Tv96VYg17CDWb4ZT6e6vQS+
QoZGwZZRnUK9SDB5FfEZS5zDjL+k/FjpIkfFyUpcGFX07k1y31oUAqNNMEswDgYD
VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgoMyKmoxXLKDz
iecPYDqFNoGhaZmbTxydBvbOgfc5bjIwCgYIKoZIzj0EAwIDRwAwRAIgM5K3f3J8
kjIpLQ02Gt3NimaMUlElQ2Y5R/yp79pdZ2QCIGizt3aU/soOtJOyCisdb84ztnaN
IbNIUDzFB8pH+Y+Y
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSDCCAe+gAwIBAgIQXh0VA0//COu4F0cejR3JTjAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEaUWbrpFQgLhKa8YMyI1FspxOhA2GzcfyZf+kg1/RWg6NGVMLbx+mBFOq
0Gy916VgegUawRu+gQdCO5H8BlK4E6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQghtglTL0lVUNO
hD6fZLME1JvTav8Cr9EEtfZV6SBCDMMwCgYIKoZIzj0EAwIDRwAwRAIgPba45j2l
llPrIh/8QL0aN25J4wHFVWbys/i/VPkySDECIFdWa0C9MiDgmUzEhXGzZaS2ClXO
50wykJxoabCg6NJg
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSDCCAe+gAwIBAgIQXh0VA0//COu4F0cejR3JTjAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEaUWbrpFQgLhKa8YMyI1FspxOhA2GzcfyZf+kg1/RWg6NGVMLbx+mBFOq
0Gy916VgegUawRu+gQdCO5H8BlK4E6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQghtglTL0lVUNO
hD6fZLME1JvTav8Cr9EEtfZV6SBCDMMwCgYIKoZIzj0EAwIDRwAwRAIgPba45j2l
llPrIh/8QL0aN25J4wHFVWbys/i/VPkySDECIFdWa0C9MiDgmUzEhXGzZaS2ClXO
50wykJxoabCg6NJg
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICPDCCAeKgAwIBAgIRANkK0IWqf7/T82fwathPmWEwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0
MzE2WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNv
bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABML9LACIV/e5PNg6qsgVc/t1BQlw
kNlJZaPNygUi+kU4YdEYEhj4mGIHYe3cYWS8RFYp0mSJUxaVR78FmIV0+J+jbDBq
MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCG2CVMvSVVQ06EPp9kswTUm9Nq/wKv
0QS19lXpIEIMwzAKBggqhkjOPQQDAgNIADBFAiEA5Jwjwti1fpKB+ow5ZJiwafvU
qp75TVy4kTMPn4RJbOoCIBg+w9kdMOxr7xjMTSozICjiIONDu3V4gTq/we28XW/G
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgDOEqmb7v1rDJv9ej
1D+BAXPvY6yJKrjhQAisELnxExqhRANCAATC/SwAiFf3uTzYOqrIFXP7dQUJcJDZ
SWWjzcoFIvpFOGHRGBIY+JhiB2Ht3GFkvERWKdJkiVMWlUe/BZiFdPif
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGjCCAcCgAwIBAgIRAK8neodn0Rp5mPWcfEM1jFowCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0MzE2
WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNvbTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABJFXTUXIiE4RTzDifkbJ8fQU/K9jAMDE
3aDKez4UOG+PtCsYv57b9uChwzKLXP7DwR0McxB8HzrnceYsj/Uy4pCjTTBLMA4G
A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKDMipqMVyyg
84nnD2A6hTaBoWmZm08cnQb2zoH3OW4yMAoGCCqGSM49BAMCA0gAMEUCIQCdwcjX
1CumQuRutsyXqDgtDWvrrJdb0GzSU+SMIlc5zgIgXEItX4ZhuMzuNU66XPzpY0CJ
OJv9TMABrGwUbvv9bkk=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICQzCCAeqgAwIBAgIRANa15WBQs1yre98NV62Uo4cwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0MzE2
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BHH6fg5awcytB8oToBdx/VRxQVw3aP/uWUe3swkCV1SHo1oO4zo3P0yOnDGtT97P
y/EK1oGXMXHjFHatFLnxNtCjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKDMipqMVyyg84nnD2A6
hTaBoWmZm08cnQb2zoH3OW4yMAoGCCqGSM49BAMCA0cAMEQCICs+BiOrS5VFTfEJ
7sI08beSJoQvHjNSYAWW7EN7lVesAiAiKpwA0YdbSUCcVKGrjDgqUgo1blzsaOFi
gms+rKy5cw==
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgEoa8eT0WzullNLcU
HTXpT/mikYgKsCRj9NuxmMZ5uwuhRANCAASRV01FyIhOEU8w4n5GyfH0FPyvYwDA
xN2gyns+FDhvj7QrGL+e2/bgocMyi1z+w8EdDHMQfB8653HmLI/1MuKQ
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGjCCAcCgAwIBAgIRAK8neodn0Rp5mPWcfEM1jFowCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0MzE2
WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNvbTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABJFXTUXIiE4RTzDifkbJ8fQU/K9jAMDE
3aDKez4UOG+PtCsYv57b9uChwzKLXP7DwR0McxB8HzrnceYsj/Uy4pCjTTBLMA4G
A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKDMipqMVyyg
84nnD2A6hTaBoWmZm08cnQb2zoH3OW4yMAoGCCqGSM49BAMCA0gAMEUCIQCdwcjX
1CumQuRutsyXqDgtDWvrrJdb0GzSU+SMIlc5zgIgXEItX4ZhuMzuNU66XPzpY0CJ
OJv9TMABrGwUbvv9bkk=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSDCCAe+gAwIBAgIQXh0VA0//COu4F0cejR3JTjAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEaUWbrpFQgLhKa8YMyI1FspxOhA2GzcfyZf+kg1/RWg6NGVMLbx+mBFOq
0Gy916VgegUawRu+gQdCO5H8BlK4E6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQghtglTL0lVUNO
hD6fZLME1JvTav8Cr9EEtfZV6SBCDMMwCgYIKoZIzj0EAwIDRwAwRAIgPba45j2l
llPrIh/8QL0aN25J4wHFVWbys/i/VPkySDECIFdWa0C9MiDgmUzEhXGzZaS2ClXO
50wykJxoabCg6NJg
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSDCCAe+gAwIBAgIQXh0VA0//COu4F0cejR3JTjAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEaUWbrpFQgLhKa8YMyI1FspxOhA2GzcfyZf+kg1/RWg6NGVMLbx+mBFOq
0Gy916VgegUawRu+gQdCO5H8BlK4E6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQghtglTL0lVUNO
hD6fZLME1JvTav8Cr9EEtfZV6SBCDMMwCgYIKoZIzj0EAwIDRwAwRAIgPba45j2l
llPrIh/8QL0aN25J4wHFVWbys/i/VPkySDECIFdWa0C9MiDgmUzEhXGzZaS2ClXO
50wykJxoabCg6NJg
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICOjCCAeGgAwIBAgIQH7g0E4grzcpDtNwA2MuQPTAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29t
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtLayM3KcWLGTScTfx27vfzqS13xw
5T2h8VreOJEhbRyf6nwHHy8z9WvGm7dBIzR0gmJ9htq+3W/OilKD6R9WMqNsMGow
DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM
BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIIbYJUy9JVVDToQ+n2SzBNSb02r/Aq/R
BLX2VekgQgzDMAoGCCqGSM49BAMCA0cAMEQCIC5YO9pNsF4AuoW4+9OwQgQUKC/F
QFZY/W6i6e0NkT4YAiBfWuJwUUipUXAYXRNQDnS3HZJWTxBDyeXQp969i4ooYA==
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgDJWFPEqDYfdYXBh1
h2eidxiICF2u/4l5ysnX+opNbPmhRANCAAS0trIzcpxYsZNJxN/Hbu9/OpLXfHDl
PaHxWt44kSFtHJ/qfAcfLzP1a8abt0EjNHSCYn2G2r7db86KUoPpH1Yy
-----END PRIVATE KEY-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWt//1jqYSDt6l8lv
UgXTZzUUYvFydC3RMpu9I8mnMGqhRANCAARlMg34PBbLA980ujXxEroJeABUJwxY
4V9NHmMu4FhHC0Dh0CLA/DHM0j7D/iSRgvhbssGHsiC7yUkvknE21O0l
-----END PRIVATE KEY-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICRDCCAeqgAwIBAgIRAK3TjRh91gW4UrSmILr7DY4wCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0MzE2
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BGUyDfg8FssD3zS6NfESugl4AFQnDFjhX00eYy7gWEcLQOHQIsD8MczSPsP+JJGC
+FuywYeyILvJSS+ScTbU7SWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICEL7+ocJ0/4AYvEcsMF
78BKb9YEnSkvViPslq8S3t36MAoGCCqGSM49BAMCA0gAMEUCIQCcWxWB/t88pxBX
84F+CbKTj6jGK2I8jKxWPMAjHddl+AIgcDsm7jFGa5M0XvtI7kdvzsL/nJ7JUTx/
f849X2E+mq0=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGTCCAb+gAwIBAgIQTpKIUsX5Qakq58Mx39uOQTAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMi5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTdaFw0yODAzMDIwNDQzMTda
MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcyLmV4YW1wbGUuY29tMFkw
EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETeekPdCQSjShYEe4tt32unciuGz0EqCm
+65M8RGizbikrj28fSCWdqzppaQcgZ3DAveDFw7FujwSJqlY0ZpUqaNNMEswDgYD
VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgIQvv6hwnT/gB
i8RywwXvwEpv1gSdKS9WI+yWrxLe3fowCgYIKoZIzj0EAwIDSAAwRQIhAIUiJwQv
WSa44Ek2LboC1wX0yXJr4TZKEECoab4h0UrRAiAGIoD7jPVm4EsCykGAFFGKvZFM
sizKizXhrJKzVh3uvQ==
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICRDCCAeqgAwIBAgIRAK3TjRh91gW4UrSmILr7DY4wCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTgwMzA1MDQ0MzE2WhcNMjgwMzAyMDQ0MzE2
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BGUyDfg8FssD3zS6NfESugl4AFQnDFjhX00eYy7gWEcLQOHQIsD8MczSPsP+JJGC
+FuywYeyILvJSS+ScTbU7SWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEICEL7+ocJ0/4AYvEcsMF
78BKb9YEnSkvViPslq8S3t36MAoGCCqGSM49BAMCA0gAMEUCIQCcWxWB/t88pxBX
84F+CbKTj6jGK2I8jKxWPMAjHddl+AIgcDsm7jFGa5M0XvtI7kdvzsL/nJ7JUTx/
f849X2E+mq0=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSDCCAe+gAwIBAgIQAuq+fsM8v+5+JhJkL0iGKDAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xODAzMDUwNDQzMTZaFw0yODAzMDIwNDQz
MTZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMR8wHQYD
VQQDExZ0bHNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAE5y1EapeVXaCxXZDAuj6+ExA3T/kILHh7AWSHd5j27OWWpSnGseSa3Unv
q6br+7vfolHAY5wAQMi7fBBTrpT4kKNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQga3RQt4zKW2Oc
TVbfT3IG7X1Z0pEPnW1b8oyyXQQAJ6owCgYIKoZIzj0EAwIDRwAwRAIgcyn5ErNe
baEiMMoLRQrXZgskO3z/dlyXTTeSU2egmosCIGgv7XDEoPllL3QX5OOQv/AnsHfg
Dub7x9TOcJ3Ul6rH
-----END CERTIFICATE-----

Some files were not shown because too many files have changed in this diff Show More