매뉴얼을 그대로 따라 했을 때의 오류 입니다 This is an error when following the manual as it is

설정 파일입니다.

Copyright© 2018 Gluwa, Inc.

This file is part of Creditcoin.

Creditcoin is free software: you can redistribute it and/or modify

it under the terms of the GNU Lesser General Public License as published by

the Free Software Foundation, either version 3 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License

along with Creditcoin. If not, see https://www.gnu.org/licenses/.

version: “3.7”

services:

settings-tp:
image: hyperledger/sawtooth-settings-tp:1.0
container_name: sawtooth-settings-tp-default
depends_on:
- validator
entrypoint: settings-tp -C tcp://validator:4004
stop_signal: SIGKILL
logging:
driver: “json-file”
options:
max-file: “5”
max-size: “10m”

validator:
image: gluwa/creditcoin-validator:latest
container_name: sawtooth-validator-default
volumes:
- type: volume
source: validator-block-volume
target: /var/lib/sawtooth/
- type: volume
source: validator-key-volume
target: /etc/sawtooth/keys/
expose:
- 4004
- 8800
ports:
- 4004:4004
- 8800:8800
secrets:
- source: validator_logging
target: /etc/sawtooth/log_config.toml
entrypoint: |
bash -c ‘if [[ ! -f /etc/sawtooth/keys/validator.pub ]]
then
echo “First run”
sawadm keygen
fi
sawtooth-validator -vv
–endpoint tcp://111.111.111.11:8800 \ <-(my ip)
–bind component:tcp://eth0:4004
–bind network:tcp://eth0:8800
–peering dynamic
–seeds tcp://creditcoin-node.gluwa.com:8800
–seeds tcp://creditcoin-gateway.gluwa.com:8800
–seeds tcp://118.27.14.197:8800
–seeds tcp://118.27.20.120:8800
–seeds tcp://160.251.9.11:8800
–seeds tcp://160.251.9.75:8800
–seeds tcp://160.251.10.137:8800
–seeds tcp://160.251.13.5:8800
–maximum-peer-connectivity 5
–scheduler parallel’
stop_signal: SIGKILL
logging:
driver: “json-file”
options:
max-file: “5”
max-size: “100m”

rest-api:
image: hyperledger/sawtooth-rest-api:1.0
container_name: sawtooth-rest-api-default
ports:
- 8008:8008
secrets:
- source: rest_api_logging
target: /etc/sawtooth/log_config.toml
depends_on:
- validator
entrypoint: sawtooth-rest-api -C tcp://validator:4004 --bind rest-api:8008
stop_signal: SIGKILL
logging:
driver: “json-file”
options:
max-file: “5”
max-size: “10m”

processor:
image: gluwa/creditcoin-processor:latest
container_name: creditcoin-processor
depends_on:
- validator
- settings-tp
- rest-api
entrypoint: |
bash -c ‘rest_status=$$(curl -s --head -w %{http_code} http://rest-api:8008/state?address=000000 -o /dev/null)
while [ “$$rest_status” != “200” ]
do
echo $$rest_status
sleep 2
rest_status=$$(curl -s --head -w %{http_code} http://rest-api:8008/state?address=000000 -o /dev/null)
done
./ccprocessorLinux.out tcp://validator:4004 tcp://gateway:55555 http://rest-api:8008
stop_signal: SIGKILL
logging:
driver: “json-file”
options:
max-file: “5”
max-size: “10m”

gateway:
image: gluwa/creditcoin-gateway:latest
container_name: creditcoin-gateway
expose:
- 55555
ports:
- 55555:55555
secrets:
- source: gateway_config
target: /home/Creditcoin/Gateway/appsettings.json
entrypoint: ./ccgateway
stop_signal: SIGKILL
logging:
driver: “json-file”
options:
max-file: “5”
max-size: “10m”

secrets:
gateway_config:
file: ./gatewayConfig.json
rest_api_logging:
file: ./rest_api-log_config.toml
validator_logging:
file: ./validator-log_config.toml

volumes:
validator-block-volume:
validator-key-volume:

=========================

gatewayConfig 설정 파일입니다.
{
“bindIP”: “0.0.0.0”,
“bitcoin”: {
“rpc”: “”,
“credential”: “<rpc_username:rpc_password>”
},
“ethereum”: {
“creditcoinContract”: “0xa3ee21c306a700e682abcdfe9baa6a08f3820419”,
“creditcoinContractAbi”: “[{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolders’,‘type’:‘address[]’},{‘name’:‘amounts’,‘type’:‘uint256[]’}],‘name’:‘recordSales730Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘VestingStartDate’,‘outputs’:[{‘name’:’’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘name’,‘outputs’:[{‘name’:’’,‘type’:‘string’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘spender’,‘type’:‘address’},{‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘approve’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘totalSupply’,‘outputs’:[{‘name’:‘amount’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf365Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘value’,‘type’:‘uint256’},{‘name’:‘sighash’,‘type’:‘string’}],‘name’:‘exchange’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘from’,‘type’:‘address’},{‘name’:‘to’,‘type’:‘address’},{‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘transferFrom’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf183Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘decimals’,‘outputs’:[{‘name’:’’,‘type’:‘uint8’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolders’,‘type’:‘address[]’},{‘name’:‘amounts’,‘type’:‘uint256[]’}],‘name’:‘recordSales1095Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf365Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘burn’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf2190Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolders’,‘type’:‘address[]’},{‘name’:‘amounts’,‘type’:‘uint256[]’}],‘name’:‘recordSales183Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’},{‘name’:‘numCoins’,‘type’:‘uint256’}],‘name’:‘recordSale365Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf730Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘owner’,‘type’:‘address’}],‘name’:‘balanceOf’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[],‘name’:‘finalizeSales’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘from’,‘type’:‘address’},{‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘burnFrom’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf2190Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf730Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘symbol’,‘outputs’:[{‘name’:’’,‘type’:‘string’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’},{‘name’:‘numCoins’,‘type’:‘uint256’}],‘name’:‘recordSale183Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘to’,‘type’:‘address’},{‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘transfer’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘creditcoinSalesLimit’,‘outputs’:[{‘name’:’’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf1095Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘creditcoinLimitInFrac’,‘outputs’:[{‘name’:’’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’},{‘name’:‘numCoins’,‘type’:‘uint256’}],‘name’:‘recordSale2190Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’},{‘name’:‘numCoins’,‘type’:‘uint256’}],‘name’:‘recordSale730Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf1095Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘owner’,‘type’:‘address’},{‘name’:‘spender’,‘type’:‘address’}],‘name’:‘allowance’,‘outputs’:[{‘name’:‘remaining’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[],‘name’:‘startVesting’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolders’,‘type’:‘address[]’},{‘name’:‘amounts’,‘type’:‘uint256[]’}],‘name’:‘recordSales2190Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf183Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘IsSalesFinalized’,‘outputs’:[{‘name’:’’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolders’,‘type’:‘address[]’},{‘name’:‘amounts’,‘type’:‘uint256[]’}],‘name’:‘recordSales365Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’},{‘name’:‘numCoins’,‘type’:‘uint256’}],‘name’:‘recordSale1095Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘inputs’:[{‘name’:‘creditcoinFoundation’,‘type’:‘address’},{‘name’:‘devCost’,‘type’:‘address’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘constructor’},{‘payable’:true,‘stateMutability’:‘payable’,‘type’:‘fallback’},{‘anonymous’:false,‘inputs’:[{‘indexed’:true,‘name’:‘from’,‘type’:‘address’},{‘indexed’:false,‘name’:‘value’,‘type’:‘uint256’},{‘indexed’:true,‘name’:‘sighash’,‘type’:‘string’}],‘name’:‘Exchange’,‘type’:‘event’},{‘anonymous’:false,‘inputs’:[{‘indexed’:true,‘name’:‘from’,‘type’:‘address’},{‘indexed’:false,‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘Burnt’,‘type’:‘event’},{‘anonymous’:false,‘inputs’:[{‘indexed’:true,‘name’:‘from’,‘type’:‘address’},{‘indexed’:true,‘name’:‘to’,‘type’:‘address’},{‘indexed’:false,‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘Transfer’,‘type’:‘event’},{‘anonymous’:false,‘inputs’:[{‘indexed’:true,‘name’:‘owner’,‘type’:‘address’},{‘indexed’:true,‘name’:‘spender’,‘type’:‘address’},{‘indexed’:false,‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘Approval’,‘type’:‘event’}]”,
“rpc”: “https://mainnet.infura.io/v3/06343434443344343434346a
indent preformatted text by 4 spaces
},
“ethless” : {
“rpc”: “https://mainnet.infura.io/v3/06d8343434343434433456a
},
“erc20”: {
“rpc”: “https://mainnet.infura.io/v3/06d8734343434434343056a
}
}

==================================================--------------------
설정이 끝나고 나서 PowerShell window 에서
docker-compose -f docker-compose.yaml down
docker-compose -f docker-compose.yaml up -d
docker-compose -f docker-compose.yaml up

이렇게 해주었습니다.

설정이 잘못 된 부분이 있을까요?
Is there any wrong setting?

  1. Re: “docker-compose -f docker-compose.yaml up -d
    docker-compose -f docker-compose.yaml up”

Only the first command is needed; not the second one.
‘docker-compose -f … up -d’ runs Creditcoin software in the background, ie, log messages won’t appear. To view log messages, run this command in a PowerShell window:
docker logs -f sawtooth-validator-default

  1. Re:
    ports:
    - 4004:4004
    - 8800:8800

Port numbers must be inside quotes:
- “4004:4004”
- “8800:8800”

The setting seems to be fine except for what glenn said above, and it seems that the peer search is not working well.

If the peers specified by --seeds are busy or their 8800 port is closed, your Validator won’t connect to them. Try these endpoints:
158.247.196.52:8800
107.155.108.175:8800
158.247.207.209:8800

thx glenn I’ll try it

It seems that the phenomenon of forks continues to occur as the network becomes crowded around the difficulty level of 30~32.

1 Like

The updated server and client require docker-compose.yml, gateway Config,clientConfig,json code. It seems to be different from the guide, so it is very different.

Creditcoin Miner's Manual - Creditcoin Documentation is the best source for up-to-date information. If you have encountered any issues with these docs or have suggestions for improving them, please let us know.