Как разрешить доступ к запрещенному каналу в hyperledger-fabri c и java -sdk - PullRequest
0 голосов
/ 02 марта 2020

Я столкнулся с проблемой. То есть, когда я собираю и запускаю свой проект java ( HLF- Java -Sdk ) из командной строки java -jar something.jar, это работает отлично. Но когда я запускаю свой проект, я имею в виду main class as java application из sts ide, это дает ошибку. В журнале я обнаружил, что это grpc error access denied. После этого я даю sudo permission of the channel. Но это не работает вообще. происходит то же самое.

Журнал ошибок:

java .lang.Exception: io.grp c .StatusRuntimeException: UNKNOWN: доступ запрещен: канал [магазин] создатель org [Org1MSP] at org.hyperledger.fabri c .sdk.Channel.sendProposalToPeers (Channel. java: 4087) [fabri c -sdk- java -2.0.0-SNAPSHOT.jar: na] в org.hyperledger.fabri c .sdk.Channel.getConfigBlock (Channel. java: 845) [fabri c -sdk- java -2.0.0-SNAPSHOT.jar: na] в org.hyperledger .fabri c .sdk.Channel.parseConfigBlock (Channel. java: 1728) [fabri c -sdk- java -2.0.0-SNAPSHOT.jar: na] at org.hyperledger.fabri c .sdk.Channel.loadCACertificates (Channel. java: 1565) [fabri c -sdk- java -2.0.0-SNAPSHOT.jar: na] at org.hyperledger.fabri c .sdk. Channel.sendProposalToPeers (Channel. java: 4006) [fabri c -sdk- java -2.0.0-SNAPSHOT.jar: na] в org.hyperledger.fabri c .sdk.Channel.sendProposal ( Канал. java: 3979) [fabri c -sdk- java -2.0.0-SNAPSHOT.jar: na] at org.hyperledger.fabri c .sdk.Channe l.sendProposalSerially (Channel. java: 3904) [fabri c -sdk- java -2.0.0-SNAPSHOT.jar: na] в org.hyperledger.fabri c .sdk.Channel.queryBlockchainInfo ( Channel. java: 3122) [fabri c -sdk- java -2.0.0-SNAPSHOT.jar: na] at org.hyperledger.fabri c .sdk.Channel.queryBlockchainInfo (Channel. * 1054) *: 3052) [fabri c -sdk- java -2.0.0-SNAPSHOT.jar: na] at org.hyperledger.fabri c .ShopChainServiceImpl.getBlockList (ShopChainServiceImpl. java: 361) [классы /: na] at org.hyperledger.fabri c .ShopChainServiceImpl.getBlocks (ShopChainServiceImpl. java: 298) [классы /: na] в blockchain.controller.ChaincodeController.queryBlocks (ChaincodeController *: 40) * classes /: na] в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~ [na: 1.8.0_242] в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 62) ~ [na: 1.8.0_ at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl. java: 43) ~ [na: 1.8.0_242] в java .lang.reflect.Method.invoke (M ethod. java: 498) ~ [na: 1.8.0_242] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke (InvocableHandlerMethod. java: 205) [spring-web-4.3.7.RELEASE. jar: 4.3.7.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest (InvocableHandlerMethod. java: 133) [spring-web-4.3.7.RELEASE.jar: 4.3.7.RELEASE] at org.springframework.web.servlet. mvc .method.annotation.ServletInvocableHandlerMethod.invokeAndHandle (ServletInvocableHandlerMethod. java: 116) [spring-web mvc -4.3.7.RELEASE.jar ] at org.springframework.web.servlet. mvc .method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter. java: 827) [spring-web mvc -4.3.7.RELEASE.jar: 4.3: RELEASE] at org.springframework.web.servlet. mvc .method.annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter. java: 738) [spring-web mvc -4.3.7.RELEASE.jar: 4.3.7 .RELEASE] at org.springframework.web.servlet. mvc .method.Abstr actHandlerMethodAdapter.handle (AbstractHandlerMethodAdapter. java: 85) [spring-web mvc -4.3.7.RELEASE.jar: 4.3.7.RELEASE] в org.springframework.web.servlet.DispatcherServlet.doDispatch. 1080 *: 963) [spring-web mvc -4.3.7.RELEASE.jar: 4.3.7.RELEASE] в org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet. java: 897) [spring -web mvc -4.3.7.RELEASE.jar: 4.3.7.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet. java: 970) [spring-web mvc -4.3.7.RELEASE.jar: 4.3.7.RELEASE] на org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet. java: 861) [ spring-web mvc -4.3.7.RELEASE.jar: 4.3.7.RELEASE] по адресу javax.servlet.http.HttpServlet.service (HttpServlet. java: 622) [tomcat-embed-core-8.5.11 .jar: 8.5.11] at org.springframework.web.servlet.FrameworkServlet.service (FrameworkServlet. java: 846) [spring-web mvc -4.3.7.RELEASE.jar: 4.3.7.RELEASE] в javax.servlet.http.HttpServlet.service (HttpServlet. java: 729) [tomcat-embed-core-8.5.11.jar: 8.5.11] в org. apache .catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain. java: 230) [tomcat-embed-core-8.5.11.jar: 8.5.11] в org. apache .catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain. java: 165) [ tomcat-embed-core-8.5.11.jar: 8.5.11] в орг. apache .tomcat.websocket.server.WsFilter.doFilter (WsFilter. java: 52) [tomcat-embed-websocket-8.5. 11.jar: 8.5.11] at org. apache .catalina.core.ApplicationFilterChain.interna lDoFilter (ApplicationFilterChain. java: 192) [tomcat-embed-core-8.5.11.jar: 8.5.11] в org. apache .catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain. java: 165) [tomcat-embed-core-8.5.11.jar: 8.5.11] at org.springframework.web.filter.CorsFilter.doFilterInternal (CorsFilter. java: 96) [spring-web-4.3.7.RELEASE.jar : 4.3.7.RELEASE] в org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter. java: 107) [spring-web-4.3.7.RELEASE.jar: 4.3.7.RELEASE] в орг. apache .catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain. java: 192) [tomcat-embed-core-8.5.11.jar: 8.5.11] в орг. apache .catalina.core.ApplicationFilterChain. doFilter (ApplicationFilterChain. java: 165) [tomcat-embed-core-8.5.11.jar: 8.5.11] в org.springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter. java: 99) [пружина -web-4.3.7.RELEASE.jar: 4.3.7.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter. java: 107) [spring-web-4.3.7.RELEASE.jar: 4.3.7.RELEASE] at org. apache .catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain. java: 192) [tomcat-embed -core-8.5.11.jar: 8.5.11] at org. apache .catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain. java: 165) [tomcat-embed-core-8.5.11.jar: 8.5 .11] at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal (HttpPutFormContentFilter. java: 105) [spring-web-4.3.7.RELEASE.jar: 4.3.7.RELEASE] в org.springframework.we. filter.OncePerRequestFilter.doFilter (OncePerRequestFilter. java: 107) [spring-web-4.3.7.RELEASE.jar: 4.3.7.RELEASE] at org. apache .catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterC). java: 192) [tomcat-embed-core-8.5.11.jar: 8.5.11] в орг. apache .catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain. java: 165) [tomcat-embed -core-8.5.11.jar: 8.5.11] at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal (HiddenHttpMethodFilter. * 11 20 *: 81) [spring-web-4.3.7.RELEASE.jar: 4.3.7.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter. java: 107) [spring-web- 4.3.7.RELEASE.jar: 4.3.7.RELEASE] at org. apache .catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain. java: 192) [tomcat-embed-core-8.5.11.jar: 8.5.11] в org. apache .catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain. java: 165) [tomcat-embed-core-8.5.11.jar: 8.5.11] в org.springframework.web .filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter. java: 197) [spring-web-4.3.7.RELEASE.jar: 4.3.7.RELEASE] в org.springframework.web.filter.OncePerRequestFilter.ilFilter 1127 *: 107) [spring-web-4.3.7.RELEASE.jar: 4.3.7.RELEASE] at org. apache .catalina.core.ApplicationFilterChain. internalDoFilter (ApplicationFilterChain. java: 192) [tomcat-embed-core-8.5.11.jar: 8.5.11] в org. apache .catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain. java: 165) [tomcat-embed-core-8.5.11.jar: 8.5.11] в орг. apache .catalina.core.StandardWrapperValve.invoke (StandardWrapperValve. java: 198) [tomcat-embed-core-8.5.11 .jar: 8.5.11] в org. apache .catalina.core.StandardContextValve.invoke (StandardContextValve. java: 96) [tomcat-embed-core-8.5.11.jar: 8.5.11] в org. apache .catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase. java: 474) [tomcat-embed-core-8.5.11.jar: 8.5.11] в орг. apache .catalina.core.StandardHostValve. invoke (StandardHostValve. java: 140) [tomcat-embed-core-8.5.11.jar: 8.5.11] в org. apache .catalina.valves.ErrorReportValve.invoke (ErrorReportValve. java: 79) [tomcat-embed-core-8.5.11.jar: 8.5.11] в орг. apache .catalina.core.StandardEngineValve.invoke (StandardEngineValve. java: 87) [tomcat-embed-core-8.5.11 .jar: 8.5.11] в орг. apache .catalina.connec tor.CoyoteAdapter.service (CoyoteAdapter. java: 349) [tomcat-embed-core-8.5.11.jar: 8.5.11] в org. apache .coyote.http11.Http11Processor.service (Http11Processor. java: 783) [tomcat-embed-core-8.5.11.jar: 8.5.11] в орг. apache .coyote.AbstractProcessorLight.process (AbstractProcessorLight. java: 66) [tomcat-embed-core-8.5 .11.jar: 8.5.11] at org. apache .coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol. java: 798) [tomcat-embed-core-8.5.11.jar: 8.5.11] в org. apache .tomcat.util. net .NioEndpoint $ SocketProcessor.doRun (NioEndpoint. java: 1434) [tomcat-embed-core-8.5.11.jar: 8.5.11] в орг. apache .tomcat.util. net .SocketProcessorBase.run (SocketProcessorBase. java: 49) [tomcat-embed-core-8.5.11.jar: 8.5.11] в java .util.concurrent.ThreadPoolExecutor. runWorker (ThreadPoolExecutor. java: 1149) [na: 1.8.0_242] в java .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. java: 624) [na: 1.8.0_242] в орг. apache .tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread. java: 61) [tomcat-embed-core-8.5.11.jar: 8.5.11] в java .lang.Thread.run (Тема. java: 748) [na: 1.8.0_242] Вызвано от: io.grp c .StatusRuntimeException: UNKNOWN: доступ запрещен: создатель канала [Магазин] org [Org1MSP] на io.grp c .Status.asRuntimeException (Status. java: 530) ~ [grp c -core-1.18.0.jar: 1.18.0] на io.grp c .stub.ClientCalls $ UnaryStreamToFuture.onClose (ClientCalls. java: 482) ~ [grp c -stub-1.18.0 .jar: 1.18.0] в io.grp c .PartialForwardingClientCallListener.onClose (PartialForwardingClientCallListener. java: 39) ~ [grp c -core-1.18.0.jar: 1.18.0] в io.grp c .ForwardingClientCallListener.onClose (ForwardingClientCallListener. java: 23) ~ [grp c -core-1.18.0.jar: 1.18.0] в io.grp c .ForwardingClientCallListener $ SimpleForwardingClientCallentCallentCallingClose . java: 40) ~ [grp c -core-1.18.0.jar: 1.18.0] в io.grp c .internal.CensusStatsModule $ StatsClientInterceptor $ 1 $ 1.onClose (CensusStatsModule. java: 699) ~ [grp c -core-1.1 8.0.jar: 1.18.0] на io.grp c .PartialForwardingClientCallListener.onClose (PartialForwardingClientCallListener. java: 39) ~ [grp c -core-1.18.0.jar: 1.18.0] на io. grp c .ForwardingClientCallListener.onClose (ForwardingClientCallListener. java: 23) ~ [grp c -core-1.18.0.jar: 1.18.0] в io.grp c .ForwardingClientCallListener $ SimpleForwardingClient. ForwardingClientCallListener. java: 40) ~ [grp c -core-1.18.0.jar: 1.18.0] в io.grp c .internal.CensusTracingModule $ TracingClientInterceptor $ 1 $ 1.onClose (CensusTracingModule. 1195. : 397) ~ [grp c -core-1.18.0.jar: 1.18.0] в io.grp c .internal.ClientCallImpl.closeObserver (ClientCallImpl. java: 459) ~ [grp c -core-1.18.0.jar: 1.18.0] по адресу io.grp c .internal.ClientCallImpl.access $ 300 (ClientCallImpl. java: 63) ~ [grp c -core-1.18.0. jar: 1.18.0] в io.grp c .internal.ClientCallImpl $ ClientStreamListenerImpl.close (ClientCallImpl. java: 546) ~ [grp c -core-1.18.0.jar: 1.18.0] в io.grp c .internal.ClientCallImpl $ ClientStreamListenerImpl.access $ 600 (ClientCallImpl. java: 467) ~ [grp c -core-1.18.0.jar: 1.18.0] в io.grp c .internal.ClientCallImpl $ ClientStreamListenerImpl $ 1StreamClosed.runInContext (ClientCallImpl. java: 584) ~ [grp c -core-1.18.0.jar: 1.18.0] в io.grp c .internal.ContextRunnable. run (ContextRunnable. java: 37) ~ [grp c -core-1.18.0.jar: 1.18.0] в io.grp c .internal.SerializingExecutor.run (SerializingExecutor. java: 123 ) ~ [grp c -core-1.18.0.jar: 1.18.0] в java .util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1149) [na: 1.8.0_242]

Есть ли какое-либо предложение, которому я могу следовать, чтобы избавиться от этого застрявшего. Версия HyperLedger - 1.4.1

1 Ответ

0 голосов
/ 09 марта 2020

Я нашел способ решения проблемы:

  • при создании usercontext Я имею в виду генерировать или читать admin.ser файл, который записывается в каталог или читается из каталога, если он уже создан.

  • Так что для моего случая, когда /some_dir/user/org1/admin.ser этот файл создан без разрешения на чтение. Вот почему я получаю ошибку "Отказано в разрешении". После изменения разрешения или если я изменил каталог, в котором есть разрешение на чтение / запись, он работает отлично.

  • , поэтому изменение в основном я сделал с code для чтения / записи admin.ser

String directoryPath = System.getProperty ("user.home") + File.separator + "users" + File.separator + userContext.getAffiliation () ; // Просто делюсь своим кодом. Для понимания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...