Add fabric v1.2.0

pull/124/head
Baohua Yang 2018-07-04 17:16:42 +08:00
parent 2df08e1d7e
commit 8709ca57fb
357 changed files with 242438 additions and 54149 deletions

View File

@ -19,17 +19,24 @@ Fabric Release | Description
[Fabric v1.0.5](v1.0.5/) | fabric v1.0.5 release.
[Fabric v1.0.6](v1.0.6/) | fabric v1.0.6 release.
[Fabric v1.1.0](v1.1.0/) | latest stable fabric 1.1.0 release.
[Fabric v1.2.0](v1.2.0/) | latest stable fabric 1.2.0 release.
[Fabric Latest](latest/) | experimental with latest fabric code, unstable.
## Getting Started
### TLDR
```bash
$ cd v1.2.0; make
```
### Pick up a fabric version
Enter the subdir of specific version, e.g.,
```bash
$ cd 1.0.6 # select a fabric version
$ cd v1.2.0 # select a fabric version
```
### Quick Test

View File

@ -109,7 +109,7 @@ CFG_DELTA_ENV_PB=config_delta_env.pb
ARCH=amd64
# for the base images, including baseimage, baseos, couchdb, kafka, zookeeper
BASE_IMG_TAG=0.4.8
BASE_IMG_TAG=0.4.10
# For fabric images, including peer, orderer, ca
FABRIC_IMG_TAG=latest

View File

@ -723,13 +723,13 @@
},
"signatures": [
{
"signature": "MEUCIQD6bSv5X2lY2X/J3m2gGigUDesPr3twxQEad/lY9Y0DmgIgSvMzm8L2U29qjKmqEuuAx27OL+7psuhd4h7cNHW5Iv0=",
"signature": "MEQCIFhSgtVyTZOnagUgU09rB5cEPaG3IzORXSp/DD8W5hwYAiA79KtAJLIqKODu89K/R00+zfUNElRqB9BRwCJSOgm0TQ==",
"signature_header": {
"creator": {
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLekNDQWRHZ0F3SUJBZ0lSQUxubTYxMDlHNnhqQUNYTXN4VTkvZW93Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TmpJeU1ETXlNakk0V2hjTk1qZ3dOakU1TURNeU1qSTQKV2pCc01Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFUE1BMEdBMVVFQ3hNR1kyeHBaVzUwTVI4d0hRWURWUVFEREJaQlpHMXBia0J2CmNtY3lMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFWEV4OXFIcHkKby9hamFESStNRzc0TXVMcDVoL0c0QXh0THN5YnlNeXFTT1VCcjRpdWJZcllZUHFUQlVVS2xKdGNnSmc0Q0l1Zgp0TkRmb0V2b2ZVNHpMcU5OTUVzd0RnWURWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEClZSMGpCQ1F3SW9BZ3I0K0g4VzlpRmhxTXAraFBuSEJCMVo4RE1OazRjeFpnT1liK2N5NmVYNG93Q2dZSUtvWkkKemowRUF3SURTQUF3UlFJaEFLZE5ZdVJUU3FPeTAxbXBsU1dJZXkzT20wd3dCL0UrdWhLK3BXSXdFdUZqQWlBVgpUcFZYYXEzQlU5TEszai9sblU1VkZKeHV3aHdhMU9MNHBZT0xMTkZtK1E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"mspid": "Org2MSP"
},
"nonce": "1ePHZvTe8hYqml9Ruk2bQc46Lku5YrPt"
"nonce": "+sJZMKqMYjrmgSbQkIe11atJ0Q+BXfcW"
}
}
]
@ -738,7 +738,7 @@
"channel_header": {
"channel_id": "businesschannel",
"epoch": "0",
"timestamp": "2018-06-22T03:28:43.000Z",
"timestamp": "2018-06-24T07:02:00.000Z",
"tx_id": "",
"type": 2,
"version": 0
@ -748,18 +748,18 @@
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLekNDQWRHZ0F3SUJBZ0lSQUxubTYxMDlHNnhqQUNYTXN4VTkvZW93Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TmpJeU1ETXlNakk0V2hjTk1qZ3dOakU1TURNeU1qSTQKV2pCc01Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFUE1BMEdBMVVFQ3hNR1kyeHBaVzUwTVI4d0hRWURWUVFEREJaQlpHMXBia0J2CmNtY3lMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFWEV4OXFIcHkKby9hamFESStNRzc0TXVMcDVoL0c0QXh0THN5YnlNeXFTT1VCcjRpdWJZcllZUHFUQlVVS2xKdGNnSmc0Q0l1Zgp0TkRmb0V2b2ZVNHpMcU5OTUVzd0RnWURWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEClZSMGpCQ1F3SW9BZ3I0K0g4VzlpRmhxTXAraFBuSEJCMVo4RE1OazRjeFpnT1liK2N5NmVYNG93Q2dZSUtvWkkKemowRUF3SURTQUF3UlFJaEFLZE5ZdVJUU3FPeTAxbXBsU1dJZXkzT20wd3dCL0UrdWhLK3BXSXdFdUZqQWlBVgpUcFZYYXEzQlU5TEszai9sblU1VkZKeHV3aHdhMU9MNHBZT0xMTkZtK1E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"mspid": "Org2MSP"
},
"nonce": "JX5Oc8TxxmfUejozF+HhciIbzmENMOA9"
"nonce": "kEGMhpqTn7u5sBb3xU1pAm65cHE1UnpV"
}
}
},
"signature": "MEUCIQCQkH5kID7OVB/rUSViTiIAgmzCAQE2FaAmflvHT6C29wIgTwFG9i7sESCFmgEk241w4dg7lvG6T4kM40zUVVooGk4="
"signature": "MEUCIQDmkNjw2SAzWJpPTqhCOIe1sr2WpLVkZ6HDgxneQxk/MAIgJVr+B1FMFtmsC9/RFoFusxcQPGesl+8iZaWtgML0LQc="
}
},
"header": {
"channel_header": {
"channel_id": "businesschannel",
"epoch": "0",
"timestamp": "2018-06-22T03:28:43.000Z",
"timestamp": "2018-06-24T07:02:00.000Z",
"tx_id": "",
"type": 1,
"version": 0
@ -769,23 +769,23 @@
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNERENDQWJPZ0F3SUJBZ0lSQUsvRHNMajlMa2xoSk1PTmRPQndPVG93Q2dZSUtvWkl6ajBFQXdJd2FURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0CmNHeGxMbU52YlRBZUZ3MHhPREEyTWpJd016SXlNamhhRncweU9EQTJNVGt3TXpJeU1qaGFNRmd4Q3pBSkJnTlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVJ3d0dnWURWUVFERXhOdmNtUmxjbVZ5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJCktvWkl6ajBEQVFjRFFnQUVxdFI1OHd6NnpYemtBeTRtMmZySmo5ZWtQVWVhdHJuQnVzM01YeklhN0FYRXdOS0MKUFdhRXdYUm54dmpLM2wybS81b3dMQmphMmV6VDQ0djN3K3BBb2FOTk1Fc3dEZ1lEVlIwUEFRSC9CQVFEQWdlQQpNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqQkNRd0lvQWdVUUh2aGNUa2M1TU93TTdNTVVpRVNRMU56WlZNCnkrKzdpNkhPS0xXcUhKUXdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdiTG5pZGhKTTY1T2orcXVsakpjenlMeWMKUWpwRVhNVHZjVnJIU0NCWTB4b0NJQzV4ZTVwOW1wKy95ejE2RHNPajR2ZzBYaTRTRDAySTBLSGorcldhbllpWQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"mspid": "OrdererMSP"
},
"nonce": "3zDy5K/5ib2KLDJAXZK2IBUgJsv6qrOQ"
"nonce": "NVD/7rGo7gWkOnhROTBcFnJxaaFwB5Ry"
}
}
},
"signature": "MEQCIAdi15xrFZrGhJqjjN+x8SXsq/Bt46b6oNtX7WmWd7zFAiBdLAn91IyXD2p1cggTI5NTz/agsDjsA/zw+peW4H5bCQ=="
"signature": "MEQCIHCiSwN9VD8gPeVODTmHF9+UXin5zKwHdDVLb7SQo2DZAiAsoT5QrD3bSH+t3gtlkztA0gjCEPK8yflHrkFWiINjNQ=="
}
]
},
"header": {
"data_hash": "iCIvtmu0wf7/ieM8nGrkHYUOriSOAI0Feu4Tc71VVAg=",
"data_hash": "jJzfBOuUCmyE3yNdH3ANbbzD3SEZ2UKA0Q5yofANZ7A=",
"number": "2",
"previous_hash": "8+9dLrUCGpA9RuEevvReME/l7IxS0eBxxOPwc+aCwaE="
"previous_hash": "ZTA7H8+1xe4BbmpWXF/0035Y2BMmAkvqpR2T/4EPj6Q="
},
"metadata": {
"metadata": [
"EvkGCq0GCpAGCgpPcmRlcmVyTVNQEoEGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNERENDQWJPZ0F3SUJBZ0lSQUsvRHNMajlMa2xoSk1PTmRPQndPVG93Q2dZSUtvWkl6ajBFQXdJd2FURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0CmNHeGxMbU52YlRBZUZ3MHhPREEyTWpJd016SXlNamhhRncweU9EQTJNVGt3TXpJeU1qaGFNRmd4Q3pBSkJnTlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVJ3d0dnWURWUVFERXhOdmNtUmxjbVZ5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJCktvWkl6ajBEQVFjRFFnQUVxdFI1OHd6NnpYemtBeTRtMmZySmo5ZWtQVWVhdHJuQnVzM01YeklhN0FYRXdOS0MKUFdhRXdYUm54dmpLM2wybS81b3dMQmphMmV6VDQ0djN3K3BBb2FOTk1Fc3dEZ1lEVlIwUEFRSC9CQVFEQWdlQQpNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqQkNRd0lvQWdVUUh2aGNUa2M1TU93TTdNTVVpRVNRMU56WlZNCnkrKzdpNkhPS0xXcUhKUXdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdiTG5pZGhKTTY1T2orcXVsakpjenlMeWMKUWpwRVhNVHZjVnJIU0NCWTB4b0NJQzV4ZTVwOW1wKy95ejE2RHNPajR2ZzBYaTRTRDAySTBLSGorcldhbllpWQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYLI2qofZmFeoYr9UMWl2UewDFF+YZ1NmVEkcwRQIhAOspz9S7gc1uxZB4I/BFJDw2WJtDk5D3m/KyjLKNlp00AiBTeCt1+iG1jWEUGKT8gOp4qtUTOX/4bsLr8pV2E/hkbg==",
"CgIIAhL4BgqtBgqQBgoKT3JkZXJlck1TUBKBBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDRERDQ0FiT2dBd0lCQWdJUkFLL0RzTGo5TGtsaEpNT05kT0J3T1Rvd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB4T0RBMk1qSXdNekl5TWpoYUZ3MHlPREEyTVRrd016SXlNamhhTUZneEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1Sd3dHZ1lEVlFRREV4TnZjbVJsY21WeUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSQpLb1pJemowREFRY0RRZ0FFcXRSNTh3ejZ6WHprQXk0bTJmckpqOWVrUFVlYXRybkJ1czNNWHpJYTdBWEV3TktDClBXYUV3WFJueHZqSzNsMm0vNW93TEJqYTJlelQ0NHYzdytwQW9hTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUEKTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FnVVFIdmhjVGtjNU1Pd003TU1VaUVTUTFOelpWTQp5Kys3aTZIT0tMV3FISlF3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnYkxuaWRoSk02NU9qK3F1bGpKY3p5THljClFqcEVYTVR2Y1ZySFNDQlkweG9DSUM1eGU1cDltcCsveXoxNkRzT2o0dmcwWGk0U0QwMkkwS0hqK3JXYW5ZaVkKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGHrNxC/DdWZJpfcKCiqHXNziz9pquGOSlxJGMEQCIH0ncEP0DN4xwDiiwgNDGCsyuuU/lkmlAwSNXQp+bIjTAiAnRO0fbsIw2wOlxtFWEWZlI4+RYwb7ee0znGUrJ+puDA==",
"EvkGCq0GCpAGCgpPcmRlcmVyTVNQEoEGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNERENDQWJPZ0F3SUJBZ0lSQUsvRHNMajlMa2xoSk1PTmRPQndPVG93Q2dZSUtvWkl6ajBFQXdJd2FURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0CmNHeGxMbU52YlRBZUZ3MHhPREEyTWpJd016SXlNamhhRncweU9EQTJNVGt3TXpJeU1qaGFNRmd4Q3pBSkJnTlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVJ3d0dnWURWUVFERXhOdmNtUmxjbVZ5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJCktvWkl6ajBEQVFjRFFnQUVxdFI1OHd6NnpYemtBeTRtMmZySmo5ZWtQVWVhdHJuQnVzM01YeklhN0FYRXdOS0MKUFdhRXdYUm54dmpLM2wybS81b3dMQmphMmV6VDQ0djN3K3BBb2FOTk1Fc3dEZ1lEVlIwUEFRSC9CQVFEQWdlQQpNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqQkNRd0lvQWdVUUh2aGNUa2M1TU93TTdNTVVpRVNRMU56WlZNCnkrKzdpNkhPS0xXcUhKUXdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdiTG5pZGhKTTY1T2orcXVsakpjenlMeWMKUWpwRVhNVHZjVnJIU0NCWTB4b0NJQzV4ZTVwOW1wKy95ejE2RHNPajR2ZzBYaTRTRDAySTBLSGorcldhbllpWQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYGB87C+m5yADENZAhqF+E01u6GbCdJWNqEkcwRQIhAJnBYlouiTYM9Gh2Knxto/cH/2wqIjCmP511aRmYCfxiAiA9YDljtBi22AvzIZp4Uvtlr5u4p3zINrNczeXRQhT/2g==",
"CgIIAhL5BgqtBgqQBgoKT3JkZXJlck1TUBKBBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDRERDQ0FiT2dBd0lCQWdJUkFLL0RzTGo5TGtsaEpNT05kT0J3T1Rvd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB4T0RBMk1qSXdNekl5TWpoYUZ3MHlPREEyTVRrd016SXlNamhhTUZneEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1Sd3dHZ1lEVlFRREV4TnZjbVJsY21WeUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSQpLb1pJemowREFRY0RRZ0FFcXRSNTh3ejZ6WHprQXk0bTJmckpqOWVrUFVlYXRybkJ1czNNWHpJYTdBWEV3TktDClBXYUV3WFJueHZqSzNsMm0vNW93TEJqYTJlelQ0NHYzdytwQW9hTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUEKTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FnVVFIdmhjVGtjNU1Pd003TU1VaUVTUTFOelpWTQp5Kys3aTZIT0tMV3FISlF3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnYkxuaWRoSk02NU9qK3F1bGpKY3p5THljClFqcEVYTVR2Y1ZySFNDQlkweG9DSUM1eGU1cDltcCsveXoxNkRzT2o0dmcwWGk0U0QwMkkwS0hqK3JXYW5ZaVkKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGHwO6D4QF9ZsY5kIP+RHuiPF8sApI30hqxJHMEUCIQC59BicAUULV0w2KG/WSwukAYfWmLyUY9eGs10U0CrkMgIgYIcnti+cXtTDG/Ph6op0XT1kOqlefDU/DQX/euIw1og=",
"",
""
]

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

@ -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,249 @@
# Makefile to bootup the network, and do testing with channel, chaincode
# Run `make test` will pass all testing cases, and delete the network
# Run `make ready` will create a network, pass testing cases, and stand there for manual test, e.g., make test_channel_list
# support advanced bash grammar
SHELL:=/bin/bash
# mode of the network: solo, kafka, couchdb, event, dev
HLF_MODE ?= solo
HLF_VERSION ?= 1.2.0
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 download'."
make ready # Run all testing till ready
make stop clean
ready: # create/join channel, install/instantiate cc
make stop
# make clean_config # Remove existing crypto-config and channel artifacts.
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 channel_test
make update_anchors
make cc_test
make test_lscc # test lscc operations
make test_qscc # test qscc operations
make test_fetch_blocks # fetch block files
make test_config_update
make test_channel_update
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."
# channel related operations
channel_test: test_channel_create test_channel_join test_channel_list test_channel_getinfo
# chaincode related operations
cc_test: test_cc_install test_cc_instantiate test_cc_invoke_query
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
chaincode_dev: restart chaincode_init test_cc_peer0 stop
################## Channel testing operations ################
test_channel_list: # List the channel that peer joined
@echo "List the joined channels"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_channel_list.sh"
test_channel_getinfo: # Get info of a channel
@echo "Get info of the app channel"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_channel_getinfo.sh"
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
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 {}
echo "May manually clean the crypto-config and $(MODE)/channel-artifacts"
clean_config: clean_channel_artifacts clean_crypto_config
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
clean_channel_artifacts: # clean channel related artifacts
if [ "$(HLF_MODE)" = "kafka" ]; then \
rm -rf kafka/channel-artifacts; \
else \
rm -rf solo/channel-artifacts; \
fi
clean_crypto_config: # clean config artifacts
rm -rf crypto-config
rm -rf org3/crypto-config
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:latest
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:latest
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:latest
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.2.0
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.2.0
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.2.0
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=v120_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=false
- 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.2.0
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.2.0
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:amd64-0.4.8
restart: always
tty: true
expose:
- '2181'
- '2888'
- '3888'
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:amd64-0.4.8
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:amd64-0.4.8
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,52 @@
version: '2'
services:
ca.org1.example.com:
image: yeasy/hyperledger-fabric-ca
container_name: ca.org1.example.com
hostname: ca.org1.example.com
volumes:
- $PWD/fabric-ca-server/ca.org1.example.com:/etc/hyperledger/fabric-ca-server
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
- FABRIC_CA_SERVER_CSR_CN=ca.org1.example.com
# CA cannot support following fields as env variables now
# - FABRIC_CA_SERVER_CSR_NAMES_L="San Francisco"
# - FABRIC_CA_SERVER_CSR_NAMES_O=org1.example.com
working_dir: /etc/hyperledger/fabric-ca-server
#command: sh ca_server_start.sh
command: fabric-ca-server start -b admin:adminpw
#--csr.names C=US,ST="California",L="San Francisco",O="org1.example.com"
tlsca.org1.example.com:
image: yeasy/hyperledger-fabric-ca
container_name: tlsca.org1.example.com
hostname: tlsca.org1.example.com
volumes:
- $PWD/fabric-ca-server/tlsca.org1.example.com:/etc/hyperledger/fabric-ca-server
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
- FABRIC_CA_SERVER_CSR_CN=tlsca.org1.example.com
# CA cannot support following fields as env variables now
# - FABRIC_CA_SERVER_CSR_NAMES_L="San Francisco"
# - FABRIC_CA_SERVER_CSR_NAMES_O=org1.example.com
working_dir: /etc/hyperledger/fabric-ca-server
# command: sh ca_server_start.sh
command: fabric-ca-server start -b admin:adminpw
#--csr.names C=US,ST="California",L="San Francisco",O="org1.example.com"
ca-client:
image: yeasy/hyperledger-fabric-ca
container_name: ca-client
hostname: ca-client
volumes:
- $PWD/fabric-ca-client:/etc/hyperledger/fabric-ca-client
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-client
depends_on:
- ca.org1.example.com
- tlsca.org1.example.com
working_dir: /etc/hyperledger/fabric-ca-client
# command: sh -c "while true; do sleep 1; done"
command: sh -c "sleep 1; bash /etc/hyperledger/fabric-ca-client/client-test.sh ca.org1.example.com"

View File

@ -0,0 +1,57 @@
#!/usr/bin/env bash
FABRIC_CA_SERVER="${FABRIC_CA_SERVER:-$1}"
CONFIG_PATH=/etc/hyperledger/fabric-ca-client
ORG="org1.example.com"
RegisterUser() {
local USER_ID=$1
local USER_TYPE=$2
local USER_AFF=${3}
local MSP_PATH=$4
fabric-ca-client register \
--csr.cn ${USER_ID} \
--home ${CONFIG_PATH}/${MSP_PATH} \
--id.affiliation ${USER_AFF} \
--id.name ${USER_ID} \
--id.secret password \
--id.type ${USER_TYPE} \
--id.maxenrollments 1 \
--url http://${FABRIC_CA_SERVER}:7054
sleep 0.5
}
EnrollUser() {
local USER_ID=$1
local ORG=$2
local USER=$3
local PASS=$4
local MSP_PATH=$5
[ -d ${CONFIG_PATH}/${MSP_PATH} ] || mkdir -p ${CONFIG_PATH}/${MSP_PATH}
fabric-ca-client enroll \
--csr.cn ${USER_ID} \
--csr.names C=US,ST="California",L="San Francisco",O=${ORG} \
--home ${CONFIG_PATH}/${MSP_PATH} \
--url http://${USER}:${PASS}@${FABRIC_CA_SERVER}:7054
}
echo "=== Enroll Admin ==="
EnrollUser Admin@org1.example.com org1.example.com admin adminpw Admin@org1.example.com
# cp -rp ${CONFIG_PATH}/msp/signcerts ${CONFIG_PATH}/msp/admincerts
echo "=== Register User ==="
set -x
RegisterUser User1@${ORG} user org Admin@org1.example.com
#exit 0
while true; do
sleep 1
done

View File

@ -0,0 +1,24 @@
#!/usr/bin/env bash
echo $PWD
if [ ! -d tlsca ]; then
mkdir tlsca
echo "Generate the credentials for tlsca"
fabric-ca-server init --csr.cn=tlsca.org1.example.com
mv ca-cert.pem tlsca/tls-cert.pem
mv msp/keystore/*_sk tlsca/
fi
if [ ! -d ca ]; then
mkdir ca
echo "Generate the credentials for ca"
fabric-ca-server init --csr.cn=ca.org1.example.com
cp ca-cert.pem ca/ca-cert.pem
cp msp/keystore/*_sk ca/
fi
fabric-ca-server start \
--tls.enabled=false \
--tls.certfile tlsca/tls-cert.pem \
-b admin:adminpw

View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
echo $PWD
docker-compose rm -f
rm -rf fabric-ca-client/Admin@org1.example.com
rm -rf fabric-ca-server/ca.org1.example.com
rm -rf fabric-ca-server/tlsca.org1.example.com
echo "starting ca server"
docker-compose up
docker-compose down

View File

@ -0,0 +1,83 @@
# 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
# ---------------------------------------------------------------------------
# "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
EnableNodeOUs: true
# ---------------------------------------------------------------------------
# "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
EnableNodeOUs: true
Template:
Count: 2
Users:
Count: 1

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPtEodBVf6QBkQujr
jNUW72ojVPAIhpMxfIupT3qCw3uhRANCAATKp5A3m0mElA1n8JaV5VGoGrxFhfQS
gYmfxk55dOQToFrJ+dZJvWjlf27b+ogZeNaszue9lIugGM3y/KAZLdJo
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICLjCCAdWgAwIBAgIQRktt2YoH+TqO5w2ktKcjojAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTE4MDYyMjAzMjIyOFoXDTI4MDYxOTAzMjIyOFowaTELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv
bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMqnkDebSYSUDWfwlpXlUagavEWF
9BKBiZ/GTnl05BOgWsn51km9aOV/btv6iBl41qzO572Ui6AYzfL8oBkt0mijXzBd
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKQYDVR0OBCIEIFEB74XE5HOTDsDOzDFIhEkNTc2VTMvvu4uhzii1qhyUMAoG
CCqGSM49BAMCA0cAMEQCIA228ziTffBy2E4km9tcf6dt/T/p3LI3ZQ3CcVSWpMrT
AiAzTppMGobkAHOafL62NFf6WKvUBMWrS9XQQ8J1dPUdkQ==
-----END CERTIFICATE-----

View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICCTCCAbCgAwIBAgIQA4AFRixQpNoOP7zk3Sv+hTAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTE4MDYyMjAzMjIyOFoXDTI4MDYxOTAzMjIyOFowVjELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
zj0DAQcDQgAEi7hNa2EfNvz+nDIgQIW1kyL64xhaO1KW0FgDLNZeH7VdCIja8woo
D0euG+N3Mla9Z5XgIcV/oJXfxSKPeCN/OKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgUQHvhcTkc5MOwM7MMUiESQ1NzZVMy++7
i6HOKLWqHJQwCgYIKoZIzj0EAwIDRwAwRAIgL2YQ/279EMAWf+F/qNsc1JrJdIF0
DQsNQjat55hlkhcCIAvLrU7kZbMNRo72GanyXTXLlSNIFbrE3O3ETu8ggb+V
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICLjCCAdWgAwIBAgIQRktt2YoH+TqO5w2ktKcjojAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTE4MDYyMjAzMjIyOFoXDTI4MDYxOTAzMjIyOFowaTELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv
bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMqnkDebSYSUDWfwlpXlUagavEWF
9BKBiZ/GTnl05BOgWsn51km9aOV/btv6iBl41qzO572Ui6AYzfL8oBkt0mijXzBd
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKQYDVR0OBCIEIFEB74XE5HOTDsDOzDFIhEkNTc2VTMvvu4uhzii1qhyUMAoG
CCqGSM49BAMCA0cAMEQCIA228ziTffBy2E4km9tcf6dt/T/p3LI3ZQ3CcVSWpMrT
AiAzTppMGobkAHOafL62NFf6WKvUBMWrS9XQQ8J1dPUdkQ==
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNjCCAdygAwIBAgIRAMtKuf1elXxyWT6JLEAzDpIwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjhaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMXnM1g9vXo+HLsBg2
Y1BV0VCwFuMliRJF8ICtbzcMsVkTbbtRmgGyv5+ow9MkqMjQTqi26/Z75gDW9O8q
4pZBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCy2FBYnOLIPOXCuj5ArGwUcuxEg0IlGnJb03wY
Ndm52zAKBggqhkjOPQQDAgNIADBFAiEA20WIVotTzp4CqKQYIhSOvQr5obUMvxFz
eH2HB+6mUgsCIGE6IPJ62ai7fh5ZYSjNLQYWn9nmacZ2P3hT0wp8EHV7
-----END CERTIFICATE-----

View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICCTCCAbCgAwIBAgIQA4AFRixQpNoOP7zk3Sv+hTAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTE4MDYyMjAzMjIyOFoXDTI4MDYxOTAzMjIyOFowVjELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
zj0DAQcDQgAEi7hNa2EfNvz+nDIgQIW1kyL64xhaO1KW0FgDLNZeH7VdCIja8woo
D0euG+N3Mla9Z5XgIcV/oJXfxSKPeCN/OKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgUQHvhcTkc5MOwM7MMUiESQ1NzZVMy++7
i6HOKLWqHJQwCgYIKoZIzj0EAwIDRwAwRAIgL2YQ/279EMAWf+F/qNsc1JrJdIF0
DQsNQjat55hlkhcCIAvLrU7kZbMNRo72GanyXTXLlSNIFbrE3O3ETu8ggb+V
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICLjCCAdWgAwIBAgIQRktt2YoH+TqO5w2ktKcjojAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTE4MDYyMjAzMjIyOFoXDTI4MDYxOTAzMjIyOFowaTELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv
bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMqnkDebSYSUDWfwlpXlUagavEWF
9BKBiZ/GTnl05BOgWsn51km9aOV/btv6iBl41qzO572Ui6AYzfL8oBkt0mijXzBd
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKQYDVR0OBCIEIFEB74XE5HOTDsDOzDFIhEkNTc2VTMvvu4uhzii1qhyUMAoG
CCqGSM49BAMCA0cAMEQCIA228ziTffBy2E4km9tcf6dt/T/p3LI3ZQ3CcVSWpMrT
AiAzTppMGobkAHOafL62NFf6WKvUBMWrS9XQQ8J1dPUdkQ==
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgG+1fMeVtBLHXReJc
/AKDtdY/Oiey6Ebx9wsprMQmoLahRANCAASq1HnzDPrNfOQDLibZ+smP16Q9R5q2
ucG6zcxfMhrsBcTA0oI9ZoTBdGfG+MreXab/mjAsGNrZ7NPji/fD6kCh
-----END PRIVATE KEY-----

View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICDDCCAbOgAwIBAgIRAK/DsLj9LklhJMONdOBwOTowCgYIKoZIzj0EAwIwaTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
cGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjhaMFgxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
c2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI
KoZIzj0DAQcDQgAEqtR58wz6zXzkAy4m2frJj9ekPUeatrnBus3MXzIa7AXEwNKC
PWaEwXRnxvjK3l2m/5owLBja2ezT44v3w+pAoaNNMEswDgYDVR0PAQH/BAQDAgeA
MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgUQHvhcTkc5MOwM7MMUiESQ1NzZVM
y++7i6HOKLWqHJQwCgYIKoZIzj0EAwIDRwAwRAIgbLnidhJM65Oj+quljJczyLyc
QjpEXMTvcVrHSCBY0xoCIC5xe5p9mp+/yz16DsOj4vg0Xi4SD02I0KHj+rWanYiY
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNjCCAdygAwIBAgIRAMtKuf1elXxyWT6JLEAzDpIwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjhaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMXnM1g9vXo+HLsBg2
Y1BV0VCwFuMliRJF8ICtbzcMsVkTbbtRmgGyv5+ow9MkqMjQTqi26/Z75gDW9O8q
4pZBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCy2FBYnOLIPOXCuj5ArGwUcuxEg0IlGnJb03wY
Ndm52zAKBggqhkjOPQQDAgNIADBFAiEA20WIVotTzp4CqKQYIhSOvQr5obUMvxFz
eH2HB+6mUgsCIGE6IPJ62ai7fh5ZYSjNLQYWn9nmacZ2P3hT0wp8EHV7
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNjCCAdygAwIBAgIRAMtKuf1elXxyWT6JLEAzDpIwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjhaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMXnM1g9vXo+HLsBg2
Y1BV0VCwFuMliRJF8ICtbzcMsVkTbbtRmgGyv5+ow9MkqMjQTqi26/Z75gDW9O8q
4pZBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCy2FBYnOLIPOXCuj5ArGwUcuxEg0IlGnJb03wY
Ndm52zAKBggqhkjOPQQDAgNIADBFAiEA20WIVotTzp4CqKQYIhSOvQr5obUMvxFz
eH2HB+6mUgsCIGE6IPJ62ai7fh5ZYSjNLQYWn9nmacZ2P3hT0wp8EHV7
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICWTCCAf+gAwIBAgIQWpYKSJo3gWo+fN4Nr6aS2jAKBggqhkjOPQQDAjBsMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4
YW1wbGUuY29tMB4XDTE4MDYyMjAzMjIyOFoXDTI4MDYxOTAzMjIyOFowWDELMAkG
A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu
Y2lzY28xHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIB
BggqhkjOPQMBBwNCAATelmzONWJZ+J9WpJrXITctENVyzwxGxQjFfX4BE08uJWhz
aoiJB78wZ9giUeKj1i0Nush8eWqsjYoxX5EbgQhGo4GWMIGTMA4GA1UdDwEB/wQE
AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIw
ADArBgNVHSMEJDAigCCy2FBYnOLIPOXCuj5ArGwUcuxEg0IlGnJb03wYNdm52zAn
BgNVHREEIDAeghNvcmRlcmVyLmV4YW1wbGUuY29tggdvcmRlcmVyMAoGCCqGSM49
BAMCA0gAMEUCIQCDAZAj6WQuUM93dBWrtJRydxrg8eg4Wvo5x5K3bP4zrgIgMFyu
gPV8Hru4/KhbF8yrKeThCr+KPV+hLYw4YEW+TQE=
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg5mxJixTSsX3cHZIe
w1Ox8BNtO+t+qytYKtgrCZ7N8UWhRANCAATelmzONWJZ+J9WpJrXITctENVyzwxG
xQjFfX4BE08uJWhzaoiJB78wZ9giUeKj1i0Nush8eWqsjYoxX5EbgQhG
-----END PRIVATE KEY-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg4JVYK0sau+y8WSbO
LjeQUPVUWdKXZ/d0OdN1+Cjh2ZuhRANCAARMXnM1g9vXo+HLsBg2Y1BV0VCwFuMl
iRJF8ICtbzcMsVkTbbtRmgGyv5+ow9MkqMjQTqi26/Z75gDW9O8q4pZB
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNjCCAdygAwIBAgIRAMtKuf1elXxyWT6JLEAzDpIwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjhaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMXnM1g9vXo+HLsBg2
Y1BV0VCwFuMliRJF8ICtbzcMsVkTbbtRmgGyv5+ow9MkqMjQTqi26/Z75gDW9O8q
4pZBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCy2FBYnOLIPOXCuj5ArGwUcuxEg0IlGnJb03wY
Ndm52zAKBggqhkjOPQQDAgNIADBFAiEA20WIVotTzp4CqKQYIhSOvQr5obUMvxFz
eH2HB+6mUgsCIGE6IPJ62ai7fh5ZYSjNLQYWn9nmacZ2P3hT0wp8EHV7
-----END CERTIFICATE-----

View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICCTCCAbCgAwIBAgIQA4AFRixQpNoOP7zk3Sv+hTAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTE4MDYyMjAzMjIyOFoXDTI4MDYxOTAzMjIyOFowVjELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
zj0DAQcDQgAEi7hNa2EfNvz+nDIgQIW1kyL64xhaO1KW0FgDLNZeH7VdCIja8woo
D0euG+N3Mla9Z5XgIcV/oJXfxSKPeCN/OKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgUQHvhcTkc5MOwM7MMUiESQ1NzZVMy++7
i6HOKLWqHJQwCgYIKoZIzj0EAwIDRwAwRAIgL2YQ/279EMAWf+F/qNsc1JrJdIF0
DQsNQjat55hlkhcCIAvLrU7kZbMNRo72GanyXTXLlSNIFbrE3O3ETu8ggb+V
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICLjCCAdWgAwIBAgIQRktt2YoH+TqO5w2ktKcjojAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTE4MDYyMjAzMjIyOFoXDTI4MDYxOTAzMjIyOFowaTELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv
bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMqnkDebSYSUDWfwlpXlUagavEWF
9BKBiZ/GTnl05BOgWsn51km9aOV/btv6iBl41qzO572Ui6AYzfL8oBkt0mijXzBd
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKQYDVR0OBCIEIFEB74XE5HOTDsDOzDFIhEkNTc2VTMvvu4uhzii1qhyUMAoG
CCqGSM49BAMCA0cAMEQCIA228ziTffBy2E4km9tcf6dt/T/p3LI3ZQ3CcVSWpMrT
AiAzTppMGobkAHOafL62NFf6WKvUBMWrS9XQQ8J1dPUdkQ==
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgONVkPoIeHxe2iP44
aM11xz41KO42Xwql+mfxs/385BOhRANCAASLuE1rYR82/P6cMiBAhbWTIvrjGFo7
UpbQWAMs1l4ftV0IiNrzCigPR64b43cyVr1nleAhxX+gld/FIo94I384
-----END PRIVATE KEY-----

View File

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICCTCCAbCgAwIBAgIQA4AFRixQpNoOP7zk3Sv+hTAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTE4MDYyMjAzMjIyOFoXDTI4MDYxOTAzMjIyOFowVjELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
zj0DAQcDQgAEi7hNa2EfNvz+nDIgQIW1kyL64xhaO1KW0FgDLNZeH7VdCIja8woo
D0euG+N3Mla9Z5XgIcV/oJXfxSKPeCN/OKNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgUQHvhcTkc5MOwM7MMUiESQ1NzZVMy++7
i6HOKLWqHJQwCgYIKoZIzj0EAwIDRwAwRAIgL2YQ/279EMAWf+F/qNsc1JrJdIF0
DQsNQjat55hlkhcCIAvLrU7kZbMNRo72GanyXTXLlSNIFbrE3O3ETu8ggb+V
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNjCCAdygAwIBAgIRAMtKuf1elXxyWT6JLEAzDpIwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjhaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMXnM1g9vXo+HLsBg2
Y1BV0VCwFuMliRJF8ICtbzcMsVkTbbtRmgGyv5+ow9MkqMjQTqi26/Z75gDW9O8q
4pZBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCy2FBYnOLIPOXCuj5ArGwUcuxEg0IlGnJb03wY
Ndm52zAKBggqhkjOPQQDAgNIADBFAiEA20WIVotTzp4CqKQYIhSOvQr5obUMvxFz
eH2HB+6mUgsCIGE6IPJ62ai7fh5ZYSjNLQYWn9nmacZ2P3hT0wp8EHV7
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICNjCCAdygAwIBAgIRAMtKuf1elXxyWT6JLEAzDpIwCgYIKoZIzj0EAwIwbDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
eGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjhaMGwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMXnM1g9vXo+HLsBg2
Y1BV0VCwFuMliRJF8ICtbzcMsVkTbbtRmgGyv5+ow9MkqMjQTqi26/Z75gDW9O8q
4pZBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCy2FBYnOLIPOXCuj5ArGwUcuxEg0IlGnJb03wY
Ndm52zAKBggqhkjOPQQDAgNIADBFAiEA20WIVotTzp4CqKQYIhSOvQr5obUMvxFz
eH2HB+6mUgsCIGE6IPJ62ai7fh5ZYSjNLQYWn9nmacZ2P3hT0wp8EHV7
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICLDCCAdKgAwIBAgIQB+rh2Il+bSMC+BWBQrymhzAKBggqhkjOPQQDAjBsMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4
YW1wbGUuY29tMB4XDTE4MDYyMjAzMjIyOFoXDTI4MDYxOTAzMjIyOFowVjELMAkG
A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu
Y2lzY28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI
KoZIzj0DAQcDQgAEcGNnBQd+qXCFAkYaUYwsu8ePLXK2mwC78LdaUJrqgrz3vzvu
X34O4ZPwvq2VcQko8i5O1v5jzgG/eepLkqlYjqNsMGowDgYDVR0PAQH/BAQDAgWg
MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMCsG
A1UdIwQkMCKAILLYUFic4sg85cK6PkCsbBRy7ESDQiUaclvTfBg12bnbMAoGCCqG
SM49BAMCA0gAMEUCIQCDyt5GA2vDtSdL0i6R/3SjrRiiBo2eHSrskpx4UtDh0AIg
bRFw1SRZp4np0wIuMUS6CkJQLRpRldaxQllKf2ElA2c=
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0ZrwdN1K82xfnQyQ
51LFZGHHBdYgC3QMvh2AZG1yuRuhRANCAARwY2cFB36pcIUCRhpRjCy7x48tcrab
ALvwt1pQmuqCvPe/O+5ffg7hk/C+rZVxCSjyLk7W/mPOAb956kuSqViO
-----END PRIVATE KEY-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgryiKK1aVAtDf1/Ng
DdH9eC1wFR7sjpgpykktu6iWMuKhRANCAAQIy2/1i7li69CiloN1f5J2rcxyc3fX
w37A5bMc4PE6toHFcyF0wjj7TDt8n9HRAdbeMK9Fom+1k3mkFHhDFEpP
-----END PRIVATE KEY-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICRDCCAeqgAwIBAgIRAJaV9iK2TpdXEkY0H2zAsrowCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMyMjI3
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BAjLb/WLuWLr0KKWg3V/knatzHJzd9fDfsDlsxzg8Tq2gcVzIXTCOPtMO3yf0dEB
1t4wr0Wib7WTeaQUeEMUSk+jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIGQJMcI+87UlbbKCpvWg
pUuAlGfu0zvR5KAqiNuAMy7oMAoGCCqGSM49BAMCA0gAMEUCIQDtJJ9rQMUpfES+
GkmKkq55gxFueDTEpG94OYtJyBf2EQIgPX0Y/okDnHNBQNPtSxhprEr+YoF+oOns
aHZZpKKd+hM=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKjCCAdCgAwIBAgIQFhzi8yHZRcekmjOkRHkp1zAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjha
MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFkFkbWluQG9y
ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQFFePVavax
7Xq6PCRRbLlzJMDqrhI/XJTcUXHjzYwa6k6VbQAHK6saSXQIKTxSKNgFZZW2Q6+b
WSFsHPrWoU7Fo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV
HSMEJDAigCBkCTHCPvO1JW2ygqb1oKVLgJRn7tM70eSgKojbgDMu6DAKBggqhkjO
PQQDAgNIADBFAiEAnLjUzLqFhh4UkegW9wUV3S7AYcKkd2BNziiCzWmT0foCIFAb
8MNCewGqOXaSdefgISEqPFwK6ESdJgoMByVjx3Ct
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICRDCCAeqgAwIBAgIRAJaV9iK2TpdXEkY0H2zAsrowCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMyMjI3
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BAjLb/WLuWLr0KKWg3V/knatzHJzd9fDfsDlsxzg8Tq2gcVzIXTCOPtMO3yf0dEB
1t4wr0Wib7WTeaQUeEMUSk+jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIGQJMcI+87UlbbKCpvWg
pUuAlGfu0zvR5KAqiNuAMy7oMAoGCCqGSM49BAMCA0gAMEUCIQDtJJ9rQMUpfES+
GkmKkq55gxFueDTEpG94OYtJyBf2EQIgPX0Y/okDnHNBQNPtSxhprEr+YoF+oOns
aHZZpKKd+hM=
-----END CERTIFICATE-----

View File

@ -0,0 +1,8 @@
NodeOUs:
Enable: true
ClientOUIdentifier:
Certificate: cacerts/ca.org1.example.com-cert.pem
OrganizationalUnitIdentifier: client
PeerOUIdentifier:
Certificate: cacerts/ca.org1.example.com-cert.pem
OrganizationalUnitIdentifier: peer

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSjCCAfCgAwIBAgIRAPj3vzc62t2E7MDYLO3qltgwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMy
MjI3WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G
A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABGTViII8qIOwhFuWHH74+uZXLRRhJAJLwFBk9nTi5wJHR2ZcihW82fhe
rRD0bgZMp72dvH+qbC2bncwlpe1KHVqjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV
HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDCxsBiI83Df
zZx09StdF3zcuJ4KUGEYQQ8D2cUaKuXFMAoGCCqGSM49BAMCA0gAMEUCIQCAci8V
wbT6V0DhU9pJnYu4IolO7HsUzqm1q2wSfaI5WwIgV9lvL6uidqnfuztRExG2rAiI
plQMeFkdGGMf9dWGFyc=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKjCCAdCgAwIBAgIQFhzi8yHZRcekmjOkRHkp1zAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjha
MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFkFkbWluQG9y
ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQFFePVavax
7Xq6PCRRbLlzJMDqrhI/XJTcUXHjzYwa6k6VbQAHK6saSXQIKTxSKNgFZZW2Q6+b
WSFsHPrWoU7Fo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV
HSMEJDAigCBkCTHCPvO1JW2ygqb1oKVLgJRn7tM70eSgKojbgDMu6DAKBggqhkjO
PQQDAgNIADBFAiEAnLjUzLqFhh4UkegW9wUV3S7AYcKkd2BNziiCzWmT0foCIFAb
8MNCewGqOXaSdefgISEqPFwK6ESdJgoMByVjx3Ct
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICRDCCAeqgAwIBAgIRAJaV9iK2TpdXEkY0H2zAsrowCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMyMjI3
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BAjLb/WLuWLr0KKWg3V/knatzHJzd9fDfsDlsxzg8Tq2gcVzIXTCOPtMO3yf0dEB
1t4wr0Wib7WTeaQUeEMUSk+jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIGQJMcI+87UlbbKCpvWg
pUuAlGfu0zvR5KAqiNuAMy7oMAoGCCqGSM49BAMCA0gAMEUCIQDtJJ9rQMUpfES+
GkmKkq55gxFueDTEpG94OYtJyBf2EQIgPX0Y/okDnHNBQNPtSxhprEr+YoF+oOns
aHZZpKKd+hM=
-----END CERTIFICATE-----

View File

@ -0,0 +1,8 @@
NodeOUs:
Enable: true
ClientOUIdentifier:
Certificate: cacerts/ca.org1.example.com-cert.pem
OrganizationalUnitIdentifier: client
PeerOUIdentifier:
Certificate: cacerts/ca.org1.example.com-cert.pem
OrganizationalUnitIdentifier: peer

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg8b0lJNGJ2PQIRK9r
iPH9XDPonNLqaY3c/tD8S3kmZwChRANCAAQzxKFOPTv+WJoQqIaHWlZG2cWQMo+b
D1ptWbD0OKujvwLPPJjgKzncUPZxiIkF+ciKRiqpoCbMO3qe+yY/MfXQ
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKDCCAc6gAwIBAgIQMSZ4CGZ6O3/E0qxnjeuANzAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjdaFw0yODA2MTkwMzIyMjda
MGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMC5vcmcx
LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEM8ShTj07/lia
EKiGh1pWRtnFkDKPmw9abVmw9Diro78CzzyY4Cs53FD2cYiJBfnIikYqqaAmzDt6
nvsmPzH10KNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j
BCQwIoAgZAkxwj7ztSVtsoKm9aClS4CUZ+7TO9HkoCqI24AzLugwCgYIKoZIzj0E
AwIDSAAwRQIhANyPG9PIZ7ygTkk6fy5HwzWrNgSIVUZOnULm8T1arRiyAiAuNye5
xnJ6U8NJ/87xWlhjXZZPb7zLHxqYaNnYUImgaA==
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSjCCAfCgAwIBAgIRAPj3vzc62t2E7MDYLO3qltgwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMy
MjI3WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G
A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABGTViII8qIOwhFuWHH74+uZXLRRhJAJLwFBk9nTi5wJHR2ZcihW82fhe
rRD0bgZMp72dvH+qbC2bncwlpe1KHVqjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV
HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDCxsBiI83Df
zZx09StdF3zcuJ4KUGEYQQ8D2cUaKuXFMAoGCCqGSM49BAMCA0gAMEUCIQCAci8V
wbT6V0DhU9pJnYu4IolO7HsUzqm1q2wSfaI5WwIgV9lvL6uidqnfuztRExG2rAiI
plQMeFkdGGMf9dWGFyc=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSjCCAfCgAwIBAgIRAPj3vzc62t2E7MDYLO3qltgwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMy
MjI3WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G
A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABGTViII8qIOwhFuWHH74+uZXLRRhJAJLwFBk9nTi5wJHR2ZcihW82fhe
rRD0bgZMp72dvH+qbC2bncwlpe1KHVqjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV
HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDCxsBiI83Df
zZx09StdF3zcuJ4KUGEYQQ8D2cUaKuXFMAoGCCqGSM49BAMCA0gAMEUCIQCAci8V
wbT6V0DhU9pJnYu4IolO7HsUzqm1q2wSfaI5WwIgV9lvL6uidqnfuztRExG2rAiI
plQMeFkdGGMf9dWGFyc=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICZjCCAg2gAwIBAgIQHCkXZwH03BN0Y0hWbufejzAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjdaFw0yODA2MTkwMzIy
MjdaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29t
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDsFGVHSxavXGQA5WBSMLfKmursNg
X0kbnUZH15I1rD+i3EDni6y8QoyXpzZQ/8J2yT/h/tY+4N+jLQdFBN4w3aOBlzCB
lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC
MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgMLGwGIjzcN/NnHT1K10XfNy4ngpQ
YRhBDwPZxRoq5cUwKAYDVR0RBCEwH4IWcGVlcjAub3JnMS5leGFtcGxlLmNvbYIF
cGVlcjAwCgYIKoZIzj0EAwIDRwAwRAIgc3SpfvhFK64MFcfOB/Lsq5gAWbM6le9E
xzfmjU52lTICIA4UyKdlaYqEIizqJAXVwweHhMSpK3c32canj1cMo00e
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQggkZoiEyunfQbOPPY
Kg+2zqw+Gq29VCM3QlzEjVMtu1qhRANCAAQOwUZUdLFq9cZADlYFIwt8qa6uw2Bf
SRudRkfXkjWsP6LcQOeLrLxCjJenNlD/wnbJP+H+1j7g36MtB0UE3jDd
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKjCCAdCgAwIBAgIQFhzi8yHZRcekmjOkRHkp1zAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjha
MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFkFkbWluQG9y
ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQFFePVavax
7Xq6PCRRbLlzJMDqrhI/XJTcUXHjzYwa6k6VbQAHK6saSXQIKTxSKNgFZZW2Q6+b
WSFsHPrWoU7Fo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV
HSMEJDAigCBkCTHCPvO1JW2ygqb1oKVLgJRn7tM70eSgKojbgDMu6DAKBggqhkjO
PQQDAgNIADBFAiEAnLjUzLqFhh4UkegW9wUV3S7AYcKkd2BNziiCzWmT0foCIFAb
8MNCewGqOXaSdefgISEqPFwK6ESdJgoMByVjx3Ct
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICRDCCAeqgAwIBAgIRAJaV9iK2TpdXEkY0H2zAsrowCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMyMjI3
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BAjLb/WLuWLr0KKWg3V/knatzHJzd9fDfsDlsxzg8Tq2gcVzIXTCOPtMO3yf0dEB
1t4wr0Wib7WTeaQUeEMUSk+jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIGQJMcI+87UlbbKCpvWg
pUuAlGfu0zvR5KAqiNuAMy7oMAoGCCqGSM49BAMCA0gAMEUCIQDtJJ9rQMUpfES+
GkmKkq55gxFueDTEpG94OYtJyBf2EQIgPX0Y/okDnHNBQNPtSxhprEr+YoF+oOns
aHZZpKKd+hM=
-----END CERTIFICATE-----

View File

@ -0,0 +1,8 @@
NodeOUs:
Enable: true
ClientOUIdentifier:
Certificate: cacerts/ca.org1.example.com-cert.pem
OrganizationalUnitIdentifier: client
PeerOUIdentifier:
Certificate: cacerts/ca.org1.example.com-cert.pem
OrganizationalUnitIdentifier: peer

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgT0PzKfY/es/3mY6X
5mmn1oZcodOMyJht+GZMCsF6GX2hRANCAASWxMScqsq2PzNFXF8VrTmoUKiHyDGB
KyZo5wLJuRg+i9qogWp6PD9MIaq9ry7pp1Qke3UMcZg6bAIecpCABKMA
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKDCCAc+gAwIBAgIRAP/MoR/zPCZdPLb2Xe2XnjAwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMyMjI3
WjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjEub3Jn
MS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbExJyqyrY/
M0VcXxWtOahQqIfIMYErJmjnAsm5GD6L2qiBano8P0whqr2vLumnVCR7dQxxmDps
Ah5ykIAEowCjTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud
IwQkMCKAIGQJMcI+87UlbbKCpvWgpUuAlGfu0zvR5KAqiNuAMy7oMAoGCCqGSM49
BAMCA0cAMEQCIDp7DDnZf8Q8lb1pYnTT2ZUeo0Wx8SDYZcR+MV4GD/R8AiB3qB8j
gRYQR0DPSffkm0dCQ9r0pen3hTInFVJhH7UO+g==
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSjCCAfCgAwIBAgIRAPj3vzc62t2E7MDYLO3qltgwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMy
MjI3WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G
A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABGTViII8qIOwhFuWHH74+uZXLRRhJAJLwFBk9nTi5wJHR2ZcihW82fhe
rRD0bgZMp72dvH+qbC2bncwlpe1KHVqjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV
HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDCxsBiI83Df
zZx09StdF3zcuJ4KUGEYQQ8D2cUaKuXFMAoGCCqGSM49BAMCA0gAMEUCIQCAci8V
wbT6V0DhU9pJnYu4IolO7HsUzqm1q2wSfaI5WwIgV9lvL6uidqnfuztRExG2rAiI
plQMeFkdGGMf9dWGFyc=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSjCCAfCgAwIBAgIRAPj3vzc62t2E7MDYLO3qltgwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMy
MjI3WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G
A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABGTViII8qIOwhFuWHH74+uZXLRRhJAJLwFBk9nTi5wJHR2ZcihW82fhe
rRD0bgZMp72dvH+qbC2bncwlpe1KHVqjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV
HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDCxsBiI83Df
zZx09StdF3zcuJ4KUGEYQQ8D2cUaKuXFMAoGCCqGSM49BAMCA0gAMEUCIQCAci8V
wbT6V0DhU9pJnYu4IolO7HsUzqm1q2wSfaI5WwIgV9lvL6uidqnfuztRExG2rAiI
plQMeFkdGGMf9dWGFyc=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICZzCCAg2gAwIBAgIQQEiYb81921YFg1nmF3xAIzAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjdaFw0yODA2MTkwMzIy
MjdaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcxLmV4YW1wbGUuY29t
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6vakLCbvvwX9O2y7NC4wBiKXHiaq
0fKK00VdQcVuKRn+j646yCvpdID/jWWkCDLDExmk7eh1fWQecqaxCorRVaOBlzCB
lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC
MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgMLGwGIjzcN/NnHT1K10XfNy4ngpQ
YRhBDwPZxRoq5cUwKAYDVR0RBCEwH4IWcGVlcjEub3JnMS5leGFtcGxlLmNvbYIF
cGVlcjEwCgYIKoZIzj0EAwIDSAAwRQIhALs2baBVjGuqUwvui0Zp2vG+IkxTimrY
XnJ6zYEzbXo/AiAN73pKH1wAmw0++jP2LjjaoUThCf1murDVVNhGu7zN5Q==
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg80cSr2CaL1bWTntv
Ue5RIZ/wSHtPqgokeAtoo+y/ga2hRANCAATq9qQsJu+/Bf07bLs0LjAGIpceJqrR
8orTRV1BxW4pGf6PrjrIK+l0gP+NZaQIMsMTGaTt6HV9ZB5yprEKitFV
-----END PRIVATE KEY-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPXxb1Ehb/tZsUYHx
wNu2tlLsd8lptN3Sfr0iaG5CgJuhRANCAARk1YiCPKiDsIRblhx++PrmVy0UYSQC
S8BQZPZ04ucCR0dmXIoVvNn4Xq0Q9G4GTKe9nbx/qmwtm53MJaXtSh1a
-----END PRIVATE KEY-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSjCCAfCgAwIBAgIRAPj3vzc62t2E7MDYLO3qltgwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMy
MjI3WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G
A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABGTViII8qIOwhFuWHH74+uZXLRRhJAJLwFBk9nTi5wJHR2ZcihW82fhe
rRD0bgZMp72dvH+qbC2bncwlpe1KHVqjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV
HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDCxsBiI83Df
zZx09StdF3zcuJ4KUGEYQQ8D2cUaKuXFMAoGCCqGSM49BAMCA0gAMEUCIQCAci8V
wbT6V0DhU9pJnYu4IolO7HsUzqm1q2wSfaI5WwIgV9lvL6uidqnfuztRExG2rAiI
plQMeFkdGGMf9dWGFyc=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKjCCAdCgAwIBAgIQFhzi8yHZRcekmjOkRHkp1zAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjha
MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFkFkbWluQG9y
ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQFFePVavax
7Xq6PCRRbLlzJMDqrhI/XJTcUXHjzYwa6k6VbQAHK6saSXQIKTxSKNgFZZW2Q6+b
WSFsHPrWoU7Fo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV
HSMEJDAigCBkCTHCPvO1JW2ygqb1oKVLgJRn7tM70eSgKojbgDMu6DAKBggqhkjO
PQQDAgNIADBFAiEAnLjUzLqFhh4UkegW9wUV3S7AYcKkd2BNziiCzWmT0foCIFAb
8MNCewGqOXaSdefgISEqPFwK6ESdJgoMByVjx3Ct
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICRDCCAeqgAwIBAgIRAJaV9iK2TpdXEkY0H2zAsrowCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMyMjI3
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BAjLb/WLuWLr0KKWg3V/knatzHJzd9fDfsDlsxzg8Tq2gcVzIXTCOPtMO3yf0dEB
1t4wr0Wib7WTeaQUeEMUSk+jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIGQJMcI+87UlbbKCpvWg
pUuAlGfu0zvR5KAqiNuAMy7oMAoGCCqGSM49BAMCA0gAMEUCIQDtJJ9rQMUpfES+
GkmKkq55gxFueDTEpG94OYtJyBf2EQIgPX0Y/okDnHNBQNPtSxhprEr+YoF+oOns
aHZZpKKd+hM=
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgqHc6q9PSezyQ2065
DCwcbaXPB3Yf7g0hwl68gWaHJm+hRANCAAQFFePVavax7Xq6PCRRbLlzJMDqrhI/
XJTcUXHjzYwa6k6VbQAHK6saSXQIKTxSKNgFZZW2Q6+bWSFsHPrWoU7F
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKjCCAdCgAwIBAgIQFhzi8yHZRcekmjOkRHkp1zAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjha
MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFkFkbWluQG9y
ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQFFePVavax
7Xq6PCRRbLlzJMDqrhI/XJTcUXHjzYwa6k6VbQAHK6saSXQIKTxSKNgFZZW2Q6+b
WSFsHPrWoU7Fo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV
HSMEJDAigCBkCTHCPvO1JW2ygqb1oKVLgJRn7tM70eSgKojbgDMu6DAKBggqhkjO
PQQDAgNIADBFAiEAnLjUzLqFhh4UkegW9wUV3S7AYcKkd2BNziiCzWmT0foCIFAb
8MNCewGqOXaSdefgISEqPFwK6ESdJgoMByVjx3Ct
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSjCCAfCgAwIBAgIRAPj3vzc62t2E7MDYLO3qltgwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMy
MjI3WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G
A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABGTViII8qIOwhFuWHH74+uZXLRRhJAJLwFBk9nTi5wJHR2ZcihW82fhe
rRD0bgZMp72dvH+qbC2bncwlpe1KHVqjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV
HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDCxsBiI83Df
zZx09StdF3zcuJ4KUGEYQQ8D2cUaKuXFMAoGCCqGSM49BAMCA0gAMEUCIQCAci8V
wbT6V0DhU9pJnYu4IolO7HsUzqm1q2wSfaI5WwIgV9lvL6uidqnfuztRExG2rAiI
plQMeFkdGGMf9dWGFyc=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSjCCAfCgAwIBAgIRAPj3vzc62t2E7MDYLO3qltgwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMy
MjI3WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G
A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABGTViII8qIOwhFuWHH74+uZXLRRhJAJLwFBk9nTi5wJHR2ZcihW82fhe
rRD0bgZMp72dvH+qbC2bncwlpe1KHVqjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV
HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDCxsBiI83Df
zZx09StdF3zcuJ4KUGEYQQ8D2cUaKuXFMAoGCCqGSM49BAMCA0gAMEUCIQCAci8V
wbT6V0DhU9pJnYu4IolO7HsUzqm1q2wSfaI5WwIgV9lvL6uidqnfuztRExG2rAiI
plQMeFkdGGMf9dWGFyc=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICOzCCAeGgAwIBAgIQYeHGLu9HreXs1AywmN5EZTAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIy
MjhaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29t
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEpfklpBo7weUsgoeihjdcMzCRiYD7
J75EzRlDKLylcKzLXb/PToLL/Pn1c5hvpuBuV3kglnPSoSVgNS5qCWmKL6NsMGow
DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM
BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDCxsBiI83DfzZx09StdF3zcuJ4KUGEY
QQ8D2cUaKuXFMAoGCCqGSM49BAMCA0gAMEUCIQCa4HFyZ7V4hHinap3G0rRVIX5Z
Khe8Js9ue8uGLEiyLAIgTfjkgYeHLpp8cON/T6KxuZuFTYF0p4b4gJrZ8F9WuXw=
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg/Umyzn+jZyc6Veye
DIssmutW/+ttF47gqh0wC4NKWmGhRANCAASl+SWkGjvB5SyCh6KGN1wzMJGJgPsn
vkTNGUMovKVwrMtdv89Ogsv8+fVzmG+m4G5XeSCWc9KhJWA1LmoJaYov
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKTCCAdCgAwIBAgIQXMqTedeCqxJqHWeD5H0xYDAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjha
MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFlVzZXIxQG9y
ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQrzCAXj4NM
WnFdiHMTeeeqLJ0ArvKmUC1PK4Iz2kyqQbtfnPNh5+UTpnSTHpRcK7vdecETHEz8
Qn1g0s6ehcefo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV
HSMEJDAigCBkCTHCPvO1JW2ygqb1oKVLgJRn7tM70eSgKojbgDMu6DAKBggqhkjO
PQQDAgNHADBEAiBz1Xzd9RyofFAVTk3tdJ8/QDEMaV+he9N3bjZSnCXOMAIgQOAH
trIQWWT+6sgBIANuQgGAmMoprhPjeEsiZAU+gJg=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICRDCCAeqgAwIBAgIRAJaV9iK2TpdXEkY0H2zAsrowCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMyMjI3
WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE
AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BAjLb/WLuWLr0KKWg3V/knatzHJzd9fDfsDlsxzg8Tq2gcVzIXTCOPtMO3yf0dEB
1t4wr0Wib7WTeaQUeEMUSk+jXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG
BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIGQJMcI+87UlbbKCpvWg
pUuAlGfu0zvR5KAqiNuAMy7oMAoGCCqGSM49BAMCA0gAMEUCIQDtJJ9rQMUpfES+
GkmKkq55gxFueDTEpG94OYtJyBf2EQIgPX0Y/okDnHNBQNPtSxhprEr+YoF+oOns
aHZZpKKd+hM=
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgFXzE1qoQuVE50we1
S7DS55hJAXaYbUc0lJG8/aOao6ihRANCAAQrzCAXj4NMWnFdiHMTeeeqLJ0ArvKm
UC1PK4Iz2kyqQbtfnPNh5+UTpnSTHpRcK7vdecETHEz8Qn1g0s6ehcef
-----END PRIVATE KEY-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKTCCAdCgAwIBAgIQXMqTedeCqxJqHWeD5H0xYDAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjha
MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFlVzZXIxQG9y
ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQrzCAXj4NM
WnFdiHMTeeeqLJ0ArvKmUC1PK4Iz2kyqQbtfnPNh5+UTpnSTHpRcK7vdecETHEz8
Qn1g0s6ehcefo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV
HSMEJDAigCBkCTHCPvO1JW2ygqb1oKVLgJRn7tM70eSgKojbgDMu6DAKBggqhkjO
PQQDAgNHADBEAiBz1Xzd9RyofFAVTk3tdJ8/QDEMaV+he9N3bjZSnCXOMAIgQOAH
trIQWWT+6sgBIANuQgGAmMoprhPjeEsiZAU+gJg=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSjCCAfCgAwIBAgIRAPj3vzc62t2E7MDYLO3qltgwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMy
MjI3WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G
A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABGTViII8qIOwhFuWHH74+uZXLRRhJAJLwFBk9nTi5wJHR2ZcihW82fhe
rRD0bgZMp72dvH+qbC2bncwlpe1KHVqjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV
HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDCxsBiI83Df
zZx09StdF3zcuJ4KUGEYQQ8D2cUaKuXFMAoGCCqGSM49BAMCA0gAMEUCIQCAci8V
wbT6V0DhU9pJnYu4IolO7HsUzqm1q2wSfaI5WwIgV9lvL6uidqnfuztRExG2rAiI
plQMeFkdGGMf9dWGFyc=
-----END CERTIFICATE-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICSjCCAfCgAwIBAgIRAPj3vzc62t2E7MDYLO3qltgwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI3WhcNMjgwNjE5MDMy
MjI3WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G
A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABGTViII8qIOwhFuWHH74+uZXLRRhJAJLwFBk9nTi5wJHR2ZcihW82fhe
rRD0bgZMp72dvH+qbC2bncwlpe1KHVqjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV
HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDCxsBiI83Df
zZx09StdF3zcuJ4KUGEYQQ8D2cUaKuXFMAoGCCqGSM49BAMCA0gAMEUCIQCAci8V
wbT6V0DhU9pJnYu4IolO7HsUzqm1q2wSfaI5WwIgV9lvL6uidqnfuztRExG2rAiI
plQMeFkdGGMf9dWGFyc=
-----END CERTIFICATE-----

View File

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICOzCCAeKgAwIBAgIRAPMdtL4FC/ZxUjREjo7anmMwCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNjIyMDMyMjI4WhcNMjgwNjE5MDMy
MjI4WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNv
bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAQ9+Q7NrNZiYSk9ieY2l2YiEorl
VqtIX0o6KihFa5adDB649s2M5/cJPdBUdqqGDe8Ovr6eU481eDz15hbA6AejbDBq
MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCAwsbAYiPNw382cdPUrXRd83LieClBh
GEEPA9nFGirlxTAKBggqhkjOPQQDAgNHADBEAiB4+qG4a+8C/YmtQrpwYuP6/Q1D
HMoeAZM2PQRyaecg5gIgVWrhWHF3vtlNDuIz92cS7TYBLsxeJmMj+apj3EK3JXY=
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg1zYx/oBrSnCkKcIQ
0uFZpoUUy8CBpxLaAE7JF2NKrOihRANCAAQEPfkOzazWYmEpPYnmNpdmIhKK5Var
SF9KOiooRWuWnQweuPbNjOf3CT3QVHaqhg3vDr6+nlOPNXg89eYWwOgH
-----END PRIVATE KEY-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTbYfb8l1lmIIuJxe
XGaQum/f4hFSPrFm4+5GkLCk/6KhRANCAAReaC/AL/MqzXcv1yAWXwgWWpmyxzKP
kRMEOoMn6ezS34GFJirTuczjg2VmJbd5gMsBzdSeS5QYgwHBpDQ9QCyS
-----END PRIVATE KEY-----

View File

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICQjCCAemgAwIBAgIQcrzmNr/hoZw/Zp6lF5oO2TAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMi5leGFtcGxlLmNvbTAeFw0xODA2MjIwMzIyMjhaFw0yODA2MTkwMzIyMjha
MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD
ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
XmgvwC/zKs13L9cgFl8IFlqZsscyj5ETBDqDJ+ns0t+BhSYq07nM44NlZiW3eYDL
Ac3UnkuUGIMBwaQ0PUAskqNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG
BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgr4+H8W9iFhqMp+hPnHBB
1Z8DMNk4cxZgOYb+cy6eX4owCgYIKoZIzj0EAwIDRwAwRAIga7PB50edxcZEKZzc
K6N4ipYbYplws2NgL7Q7w6pasE0CIBb+c2APNpfm6kpUOLOGkWH+et2HGJbnzTKd
3et60mBc
-----END CERTIFICATE-----

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