2017-12-05 3 views
1

저는 몇 달 동안 Fabric으로 작업을 해왔고 체인 코드 내에서 다소 복잡한 가상 머신 인 Ethereum 가상 머신을 실행하려고했습니다. JavaScript로 작성되었으므로 nodeJS chaincode 버전으로 작업했습니다. 필자는 내가 설치하고 피어에 인스턴스화하는 디렉토리에 체인 코드와 함께 VM을 압축했습니다. 그러나 인스턴스화 몇 분 동안 매달려 후, 오류없이 완료하고 종료를 설치하는 것은 나에게 오류를 반환Hyperledger 패브릭 체인 코드 인스턴스화 시간 초과가 만료되었습니다.

Error: Error endorsing chaincode: rpc error: code = Unknown desc = timeout expired while starting chaincode mychaincode:1.0(networkid:dev,peerid:peer0.org1.example.com,tx:.... 

그것은 추가 된 패키지는 적어도 ~ 15메가바이트에 따라 꽤 몇 분 동안 실행해야 예제 nodejs 체인 코드는 적어도 1 분 동안 실행됩니다.

예제 nodejs chaincode (chaincode_example02)는 자습서의 BYFN 네트워크와 내가 시작한 기본 네트워크 모두에서 완벽하게 실행됩니다. 내 환경은 fabric-samples 저장소 (v1.1.0)의 설명서 (v1.1.0)에 따라 설정되었습니다. 비록 require 메소드로 예제 chaincode에 하나의 패키지 만 추가한다고하더라도 리턴 에러보다는 멈춘다.

나는 chaincode 인스턴스화에 대한 시간 초과 값을 설정할 수있는 플래그 또는 구성을 찾고 있었지만 운이 없었습니다. 타임 아웃 값을 어디에서 늘릴 수 있습니까? soution 검색을 위해 앞으로 나아갈 수있는 로그는 무엇입니까?

덕분에 당신은 기본이 아닌 다른 뭔가를 지정하는 기본/피어 base.yaml 고정 표시기의 작성 파일에 CORE_CHAINCODE_STARTUPTIMEOUT 환경 변수를 추가하여 chaincode.startuptimeout의 설정을 수정할 수 있습니다, 발린

+0

흥미 롭습니다 ... 우리가 fabric https://jira.hyperledger.org/browse/FAB-6590에서 EVM에 대한 공식 지원 (잠재적으로)을 위해 노력하고 있다는 점이 흥미 롭습니다. chaincode 컨테이너에서 로그에. – christo4ferris

+0

https://i.stack.imgur.com/hAqAh.png - 피어의 로그 인 'peer0.org1.example.com'의 스크린 샷을 제공합니다. chaincode 컨테이너 자체에서 특정 로그를 제공 할 수 없습니다. 왜냐하면 그것은 타임 아웃의 모든 beacause에서 생성되지 않기 때문입니다. (첫 번째 오류로 인해 실수로 체인 코드를 다시 설치하게 됨) – blintso

+0

시간 제한이 지나면 생성되지 않고 삭제 된 것이 확실합니까? "docker ps -a"를 수행하여 컨테이너가 종료되었는지 확인할 수 있습니다. – yacovm

답변

0

사전이다.

+0

peer-base.yaml의 CORE_CHAINCODE_STARTUPTIMEOUT 변수에 여러 값 ("큰 숫자")을 설정하려고했지만 여전히 타임 아웃 에러 제공된 값은 '초'라고 가정합니다. 최대 값이 있습니까, 아니면 정의되지 않은 채로 설정하는 옵션이 있습니까? 따라서 코드가 영원히 실행됩니다. – blintso

+0

기본값은 300s 또는 5 분입니다. 설정 한 시간 초과 값과 일치하는 기간 후에도 오류가 계속 발생하고 있습니까? 어쩌면 pastebin이나 요점을 통해 동료 로그를 공유 할 수 있다면 우리가 제공 할 수있는 추가적인 통찰력이있을 수 있습니다. – christo4ferris

+0

https://pastebin.com/QjAxVgy5 - 인스턴스 생성 중에 대상이되는 피어의 전체 로그. 타임 아웃 = 600000으로 설정했습니다. – blintso

관련 문제