fabric网络环境整合java-sdk grpc连接异常

1、调用fabric-java-sdk整合fabric网络环境。启动的过程中一直报错

23:16:57.825 [main] ERROR org.hyperledger.fabric.sdk.Channel - Channel Channel{id: 1, name: mychannel} Sending proposal with transaction: 5fe505ed0e555ac50cc4773876d8eb3746da951a3ad2f8461b2fa177901e5862 to Peer{ id: 2, name: peer0.org1.example.com, channelName: mychannel, url: grpc://x.x.x.x:7051} failed because of: gRPC failure=Status{code=INTERNAL, description=http2 exception, cause=io.netty.handler.codec.http2.Http2Exception: First received frame was not SETTINGS. Hex dump for first 5 bytes: 1503010002
    at io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:85)
    at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.verifyFirstFrameIsSettings(Http2ConnectionHandler.java:350)
    at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.decode(Http2ConnectionHandler.java:251)
    at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:450)
    at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:677)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:612)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:529)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:491)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.lang.Thread.run(Thread.java:748)
}
java.lang.Exception: io.grpc.StatusRuntimeException: INTERNAL: http2 exception
    at org.hyperledger.fabric.sdk.Channel.sendProposalToPeers(Channel.java:4179)
    at org.hyperledger.fabric.sdk.Channel.getConfigBlock(Channel.java:854)
    at org.hyperledger.fabric.sdk.Channel.parseConfigBlock(Channel.java:1820)
    at org.hyperledger.fabric.sdk.Channel.loadCACertificates(Channel.java:1657)
    at org.hyperledger.fabric.sdk.Channel.initialize(Channel.java:1103)

grpc://x.x.x.x:7051 访问失败
服务器地址为阿里云服务
根据网上提供的方法都说是grpc通信错误,添加相应的依赖,
然后并没用。
实在搞不懂是怎么弄了
哪位大神指导一下。
Fabric环境为1.0的版本

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何下载fabric-sdk-go的所有依赖项?

<div class="post-text" itemprop="text"> <p>I used command "<strong>go get github.com/hyperledger/fabric-sdk-go</strong>" to download fabric-sdk-go and its dependencies. No error happened.</p> <p>In the golang documentation( <a href="https://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies" rel="nofollow noreferrer">https://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies</a> ), it said that "Get downloads the packages named by the import paths, along with their dependencies. It then installs the named packages, like 'go install'."</p> <p>So I originally thought that all the dependencies of fabric-sdk-go would be downloaded <strong>recursively</strong>. But the fact proved that I was wrong.</p> <p>When I ran command "go install ./..." under fabric-sdk-go directory, many errors "cannot find package" were displayed: <a href="https://i.stack.imgur.com/nlrwu.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/nlrwu.png" alt="enter image description here"></a> So my questions are:</p> <ol> <li><p>Does "go get" download dependencies <strong>recursively</strong> or not?</p></li> <li><p>How to download <strong>all</strong> the dependencies of fabric-sdk-go, instead of using "go get [a_dependency_package]" to download every single dependency one by one?</p></li> </ol> <p>Thanks very much.</p> </div>

无法安装fabric-sdk-go及其依赖项

<div class="post-text" itemprop="text"> <p>I am trying to download <code>fabric-sdk-go</code> library and all its dependency with the below command in a linux VM. </p> <pre><code>go get -u github.com/hyperledger/fabric-sdk-go/... </code></pre> <p>It is giving the below error. </p> <pre><code># github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric/core/operations ../github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric/core/operations/system.go:227:23: not enough arguments in call to s.statsd.SendLoop have (&lt;-chan time.Time, string, string) want (context.Context, &lt;-chan time.Time, string, string) # github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric-ca/util ../github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric-ca/util/csp.go:47:8: cannot convert nil to type csr.KeyRequest ../github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric-ca/util/csp.go:132:37: cannot use req.KeyRequest (type *csr.KeyRequest) as type csr.KeyRequest in argument to getBCCSPKeyOpts </code></pre> <p>Could this be because of <code>go</code> version mismatch or something? Here is the <code>go version</code> I am using the in linux VM. </p> <pre><code>go version go1.12.8 linux/amd64 </code></pre> </div>

无法使用gRPC中的proto 3.0缓冲区生成客户端代码

<div class="post-text" itemprop="text"> <p>I am trying to generate client and server code in gRPC. I have installed grpc directory from github and trying to generate <code>C++</code> code. I installed proto compiler 3.0.0. </p> <p>When I am executing protoc i am getting below error</p> <pre><code>$ protoc -I ../../protos/ --grpc_out=. --plugin=protoc-gen-grpc=grpc_cpp_plugin ../../protos/helloworld.proto grpc_cpp_plugin: program not found or is not executable --grpc_out: protoc-gen-grpc: Plugin failed with status code 1. </code></pre> <p>Any idea why I am not able to generate client/server code</p> </div>

fabric-sdk-go错误:无对等连接

<div class="post-text" itemprop="text"> <p>We are using the IBM Managed Blockchain based on fabric 1.2, and using the Go SDK @5e291d3a34f59beb9a8ae2bcbba388515648dc73. When we try to invoke the chaincode we have installed on the peers, we get a "no peers to connect to" error:</p> <pre><code>[fabsdk/fab] 2019/01/25 12:25:57 UTC - dispatcher.(*Dispatcher).Start.func1 -&gt; DEBU Listening for events... [fabsdk/fab] 2019/01/25 12:25:57 UTC - client.(*Client).connect -&gt; DEBU ... got error in connection response: no peers to connect to [fabsdk/common] 2019/01/25 12:25:57 UTC - retry.(*RetryableInvoker).Invoke -&gt; DEBU Failed with err [error registering for TxStatus event: no peers to connect to] on attempt #1. Checking if retry is warranted... [fabsdk/util] 2019/01/25 12:25:57 UTC - lazyref.(*Reference).setTimerRunning -&gt; DEBU Timer started [fabsdk/common] 2019/01/25 12:25:57 UTC - retry.(*RetryableInvoker).Invoke -&gt; DEBU ... retry for err [error registering for TxStatus event: no peers to connect to] is NOT warranted after 1 attempt(s). [fabsdk/util] 2019/01/25 12:25:57 UTC - lazyref.checkTimeStarted -&gt; DEBU Starting timer </code></pre> <p>After putting some extra logging of our own it looks like the failure happens because the peer discovery service (<a href="https://github.com/hyperledger/fabric-sdk-go/blob/master/pkg/client/common/discovery/dynamicdiscovery/chservice.go#L72" rel="nofollow noreferrer">https://github.com/hyperledger/fabric-sdk-go/blob/master/pkg/client/common/discovery/dynamicdiscovery/chservice.go#L72</a>) doesn't return any peers in its response. The targets seem to be set correctly.</p> <p>After dumping the GRPC response, we get </p> <pre><code>(*discovery.Response)(0xc4205cd600)( results: &lt; members: &lt; peers_by_org: &lt; key: "org1" value: &lt;&gt; &gt; &gt; &gt; ) </code></pre> <p>We also set up a different fabric network on our own with the same chaincode, which works properly and the same dump shows this instead (some parts were redacted):</p> <pre><code>(*discovery.Response)(0xc42045ed20)( results: &lt; members: &lt; peers_by_org: &lt; key: "Org1MSP" value: &lt; peers: &lt; state_info: &lt; payload:"&lt;redacted&gt;" &gt; membership_info: &lt;payload:"&lt;redacted&gt;" &gt; identity:"&lt;redacted&gt;" &gt; peers: &lt; state_info: &lt; payload:"&lt;redacted&gt;" signature:"&lt;redacted&gt;" &gt; membership_info: &lt; payload:"&lt;redacted&gt;" signature:"&lt;redacted&gt;" &gt; identity:"&lt;redacted&gt;" &gt; &gt; &gt; peers_by_org: &lt; key:"Org2MSP" value: &lt; peers: &lt; state_info:&lt; payload:"&lt;redacted&gt;" signature:"&lt;redacted&gt;" &gt; membership_info: &lt; payload:"&lt;redacted&gt;" &gt; identity:"&lt;redacted&gt;" &gt; peers: &lt; state_info: &lt; payload:"&lt;redacted&gt;" signature:"&lt;redacted&gt;" &gt; membership_info: &lt; payload:"&lt;redacted&gt;" signature:"&lt;redacted&gt;" &gt; identity:"&lt;redacted&gt;" &gt; &gt; &gt; &gt; &gt; ) </code></pre> <p>I am unsure if the issue is in the configuration of the SDK or the IBM Managed fabric network. If it is the IBM network, then it seems that somehow the peers aren't aware that they are members of an organization. </p> <p>Has anyone seen this behaviour before? I searched the hyperledger official rocket chat for the "no peers to connect to" error, and some results came up, but they seemed to be caused by other reasons, such as the peers being excluded by the SDK, not due to the response to the discovery request.</p> </div>

windows通过java-sdk调用远程虚拟机上的链码错误,交易失败

# 错误如下,并配上docker ps,及sdk参数配配置图片 exception in thread "main" org.hyperledger.fabric.sdk.exception.TransactionException: org.hyperledger.fabric.sdk.exception.ProposalException: getConfigBlock for channel mychannel failed with peer peer0.org1.example.com. Status FAILURE, details: Sending proposal to peer0.org1.example.com failed because of: gRPC failure=Status{code=UNKNOWN, description=null, cause=java.lang.IndexOutOfBoundsException: readerIndex(0) + length(10) exceeds writerIndex(0): PooledUnsafeDirectByteBuf(ridx: 0, widx: 0, cap: 30) at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1403) at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1390) at io.netty.buffer.AbstractByteBuf.readSlice(AbstractByteBuf.java:856) at io.netty.handler.codec.http2.DefaultHttp2FrameWriter$DataFrameHeader.slice(DefaultHttp2FrameWriter.java:644) at io.netty.handler.codec.http2.DefaultHttp2FrameWriter.writeData(DefaultHttp2FrameWriter.java:160) at io.netty.handler.codec.http2.Http2OutboundFrameLogger.writeData(Http2OutboundFrameLogger.java:44) at io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.write(DefaultHttp2ConnectionEncoder.java:411) at io.netty.handler.codec.http2.DefaultHttp2RemoteFlowController$FlowState.writeAllocatedBytes(DefaultHttp2RemoteFlowController.java:372) at io.netty.handler.codec.http2.DefaultHttp2RemoteFlowController$WritabilityMonitor$1.write(DefaultHttp2RemoteFlowController.java:562) at io.netty.handler.codec.http2.WeightedFairQueueByteDistributor$State.write(WeightedFairQueueByteDistributor.java:612) at io.netty.handler.codec.http2.WeightedFairQueueByteDistributor.distribute(WeightedFairQueueByteDistributor.java:293) at io.netty.handler.codec.http2.WeightedFairQueueByteDistributor.distributeToChildren(WeightedFairQueueByteDistributor.java:326) at io.netty.handler.codec.http2.WeightedFairQueueByteDistributor.distribute(WeightedFairQueueByteDistributor.java:272) at io.netty.handler.codec.http2.DefaultHttp2RemoteFlowController$WritabilityMonitor.writePendingBytes(DefaultHttp2RemoteFlowController.java:643) at io.netty.handler.codec.http2.DefaultHttp2RemoteFlowController.writePendingBytes(DefaultHttp2RemoteFlowController.java:267) at io.netty.handler.codec.http2.Http2ConnectionHandler.flush(Http2ConnectionHandler.java:200) at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:776) at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:768) at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:749) at io.netty.channel.DefaultChannelPipeline.flush(DefaultChannelPipeline.java:983) at io.netty.channel.AbstractChannel.flush(AbstractChannel.java:248) at io.grpc.netty.WriteQueue.flush(WriteQueue.java:136) at io.grpc.netty.WriteQueue.access$000(WriteQueue.java:32) at io.grpc.netty.WriteQueue$1.run(WriteQueue.java:44) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Unknown Source) } at org.hyperledger.fabric.sdk.Channel.parseConfigBlock(Channel.java:1168) at org.hyperledger.fabric.sdk.Channel.initialize(Channel.java:948) at com.chanpay.demo.Demo.initChannel(Demo.java:151) at com.chanpay.demo.Demo.invoke(Demo.java:59) at com.chanpay.demo.Demo.main(Demo.java:47)

--go_out:protoc-gen-go:系统找不到Windows 10指定的文件

<div class="post-text" itemprop="text"> <p>I am trying to use this command <code>protoc greet\greetpb\greet.proto --go_out=plugins=grpc:</code>. I got that message </p> <blockquote> <p>"--go_out: protoc-gen-go: The system cannot find the file specified."</p> </blockquote> <p>My protoc version is libprotoc 3.6.1 My go version go version go1.11.2 windows/386 Also into my package list is this github.com/golang/protobuf/protoc-gen-go/grpc</p> <p>I am new using golang and I trying to learn grpc. Could someone helps me with that problem? I am using windows 10.</p> </div>

grpc-java 如何做负载均衡?

那位大佬有关于grpc-java的负载均衡的demo?求大佬解救一下小白!!!

通过java版sdk调用智能合约向Fabric提交交易出现异常

是在程序中通过java版的Fabric-sdk调用部署在远程主机上的智能合约执行相关的业务逻辑,但在执行过程中出现异常信息,导致交易请求没有提交到Fabric的peer节点上,具体异常信息如下: ``` 17:16:06 [http-bio-8080-exec-5] ERROR org.hyperledger.fabric.sdk.Channel - Sending proposal to peer0.org0.example.com failed because of: gRPC failure=Status{code=UNKNOWN, description=chaincode error (status: 500, message: Failed to unmarshal section -), cause=null} java.lang.Exception: io.grpc.StatusRuntimeException: UNKNOWN: chaincode error (status: 500, message: Failed to unmarshal section -) at org.hyperledger.fabric.sdk.Channel.sendProposalToPeers(Channel.java:2241) at org.hyperledger.fabric.sdk.Channel.sendProposal(Channel.java:2155) at org.hyperledger.fabric.sdk.Channel.sendTransactionProposal(Channel.java:2103) at com.cmit.fabric.java.sdk.test.bean.ChaincodeManager.invokeWithTransactionId(ChaincodeManager.java:307) at com.cmit.fabric.java.sdk.test.service.impl.SectionSDKServiceImpl.updateSection(SectionSDKServiceImpl.java:155) at rsbc.controller.NetworkController.modifySave(NetworkController.java:357) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:832) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:743) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:895) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:869) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.planetj.servlet.filter.compression.CompressingFilter.doFilter(CompressingFilter.java:293) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at net.mopai.filter.SiteStatusFilter.doFilterInternal(SiteStatusFilter.java:50) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at net.mopai.filter.HtmlFilter.doFilterInternal(HtmlFilter.java:40) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: io.grpc.StatusRuntimeException: UNKNOWN: chaincode error (status: 500, message: Failed to unmarshal section -) at io.grpc.Status.asRuntimeException(Status.java:526) at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:427) at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:419) at io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:60) at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:493) at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$500(ClientCallImpl.java:422) at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:525) at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:102) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ... 1 common frames omitted ``` 面对这个问题没有什么头绪,不知道是哪里出了问题,求问Fabric方面的大神能否给帮忙解释一下,这个异常是因为什么问题导致的!!!不胜感激!!!

protoc-gen-java代码使用内联对象提示语法错误

<div class="post-text" itemprop="text"> <h2>describe</h2> <p>I want to use java to call golang grpc.I used the old golang's consumer_proto.proto to gen java code</p> <h2>process</h2> <pre><code>protoc --java_out=/home/xxx/src/main/java custom_proto.proto protoc --plugin=protoc-gen-grpc-java=/home/xxx/protoc-gen-grpc-java-1.7.0-linux-x86_64.exe --grpc-java_out=/home/xxx/main/java custom_proto.proto </code></pre> <h2>result</h2> <p>I success gen my proto java file.but I find use Inline object prompt syntax error,the problem is from:</p> <pre><code>message RepGetClassBySchoolD { RequestRClassStruct Class = 1; } </code></pre> <p>the error is:</p> <pre><code>getClass() in xx classes in 'java.lang.Object';attempting to use incompatible return type </code></pre> <p>when I run the code,The error is:</p> <pre><code>Error:(92, 62) java: com.xxx.RepGetClassBySchoolD getClass() Unable to cover java.lang.Object's getClass() </code></pre> <p>The method to be overwritten is final</p> <p>It happend at class RepGetClassBySchoolD:</p> <pre><code>public com.class100.service.usercenter.RequestRClassStruct getClass() { return class_ == null ? com.class100.service.usercenter.RequestRClassStruct.getDefaultInstance() : class_; </code></pre> <p>}</p> <p>Is there a way to make this work? Or any ideas? thanks</p> </div>

使用gRPC-web通过身份验证安全地公开gRPC服务

<div class="post-text" itemprop="text"> <p>We are using Improbable's <a href="https://github.com/improbable-eng/grpc-web" rel="nofollow noreferrer">gRPC-Web library</a> to expose a gRPC service (implemented in Go) to a Javascript client running in-browser. This service will sit alongside an existing front-end Go service which hosts a REST-based API. The existing service uses session-based authentication to authenticate its users (session cookies + XSRF protection with <a href="https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.md#double-submit-cookie" rel="nofollow noreferrer">double-submit cookies</a>, which are also verified using some per-session server-side state).</p> <p>The front-end Go service hosts various API endpoints which are either handled locally or fulfilled by proxying the request to other services. All endpoints are exposed via a Gin middleware handler chain, which implements the aforementioned session authentication and XSRF protection checks. It has been proposed that we host gRPC-Web's <a href="https://github.com/improbable-eng/grpc-web/tree/ebef475aee9558e615643bd7c669ef39cf0999e0/go/grpcwebproxy" rel="nofollow noreferrer">gogrpcproxy component</a> behind this existing middleware to expose our gRPC service to the world.</p> <p>I am interested in ensuring the approach for authenticating the incoming gRPC-Web requests is secure. The following methods have been proposed:</p> <ul> <li><p><strong>Token-based authentication</strong> – i.e. passing bearer tokens in the gRPC request metadata, which are verified by the back-end gRPC service. This matches the authentication model by which native gRPC calls would be authenticated if gRPC-Web was not involved.</p> <p>In this model, gRPC-Web's responsibility is the implementation of the transport abstraction between browser and server, and marshalling requests to/from the native gRPC representation; authentication is delegated to the backing gRPC service. The gRPC-Web proxy is hosted as a separate endpoint external to the existing REST API.</p></li> <li><p><strong>Session-based authentication</strong> – re-use of the existing session authentication middleware. In this model, the grpcweb proxy server is hosted behind the Gin handler chain. Gin performs its usual checks to verify existence of the relevant cookies and XSRF headers prior to admitting the request.</p> <p>This approach re-uses much of the existing authentication logic. However, it requires the passing of the XSRF header to ensure the request is admitted by the Gin middleware. This is possible in the current implementation by setting request metadata, which is (currently) implemented by setting headers on the outbound HTTP request. However, it is unclear to me whether this:</p> <ul> <li>is appropriate, as it appears to be a layer violation by exploiting the implementation detail that metadata is currently passed as HTTP headers. This is not documented and could conceivably change;</li> <li>is compatible with gRPC-Web's websocket transport, which does not appear to propagate metadata into headers, as the websocket transport is dialled prior to any requests being transmitted;</li> <li>suffers potential security issues in future, as the long-lived gRPC-Web transport connection to the front-end service is only authenticated by the front-end proxy when first established, rather than continually on every request (unless the gRPC service also validates the request metadata).</li> </ul></li> </ul> <p>My understanding is that gRPC-Web seeks to emulate the gRPC transport between a browser and server, so accordingly implements no specific authentication logic. The standard gRPC mechanisms for passing authentication details make no allowance for implicit session-based state, so my preference is the token-based approach.</p> <p>Is this a reasonable analysis of the available options?</p> </div>

Python client + Java Server 使用grpc 报错

Python client + Java Server 使用grpc 报错 因为没有找到现成的例子,对python也不是很熟悉.所以请各位看官大佬帮忙看下这个问题.最好有的demo的话也可以给一下.多谢 ``` grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNIMPLEMENTED, Method not found: DemoGrpc.SendMailService/sendMail)> ``` proto文件都是一样.同种语言之间调用没有问题,就是互相调用的时候直接报这个错.

Golang中的GRPC连接管理

<div class="post-text" itemprop="text"> <p>我对GRPC比较陌生,我想确定我正在正确地使用golang进行连接管理。我不想为每个请求创建一个新的连接,但我也不想在扩展时造成瓶颈。</p> <p>我在init函数中创建了一个连接:</p> <pre><code>var userConn *grpc.ClientConn var userServiceName string func init() { userServiceName := os.Getenv("USER_SERVICE_URL") if userServiceName == "" { userServiceName = "localhost" } logging.LogDebug("userClient: Connecting to: "+userServiceName, "") tempConn, err := grpc.Dial(userServiceName, grpc.WithInsecure()) if err != nil { logging.LogEmergency("account_user_client.Init() Could not get the connection. "+err.Error(), "") return } userConn = tempConn } </code></pre> <p>然后,对于每个函数,我都使用这个连接来创建一个Client:</p> <pre><code>c := user.NewUserClient(userConn) // Contact the server and print out its response. ctx, cancel := context.WithTimeout(context.Background(), time.Second) defer cancel() r, err := c.GetUserFromTokenID(ctx, &amp;user.GetUserFromTokenRequest{TransactionID: transactionID, OathToken: *oathToken}) //Handle Error and Response </code></pre> <p>这是处理GRPC连接的一种可接受的方法吗?或者说有更好的方法吗?</p> <p>十分感谢。</p> </div>

Hyperledger Fabric 在 chaincode-docker-devmode 中為何加入CouchDB容器,會導致Cli容器無法啟動?

因为目前还在初学阶段,所以选择fabric-simple 中的开发者模式来测试chaincode,但当我在docker-compose-simple.yaml 中加入 CouchDB容器,如下: ``` version: '2' services: orderer: container_name: orderer image: hyperledger/fabric-orderer environment: - FABRIC_LOGGING_SPEC=debug - ORDERER_GENERAL_LISTENADDRESS=orderer - ORDERER_GENERAL_GENESISMETHOD=file - ORDERER_GENERAL_GENESISFILE=orderer.block - ORDERER_GENERAL_LOCALMSPID=DEFAULT - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp - GRPC_TRACE=all=true, - GRPC_VERBOSITY=debug working_dir: /opt/gopath/src/github.com/hyperledger/fabric command: orderer volumes: - ./msp:/etc/hyperledger/msp - ./orderer.block:/etc/hyperledger/fabric/orderer.block ports: - 7050:7050 couchdb: container_name: couchdb image: hyperledger/fabric-couchdb environment: - COUCHDB_USER= - COUCHDB_PASSWORD= ports: - 5984:5984 peer: container_name: peer image: hyperledger/fabric-peer dns_search: . environment: - CORE_PEER_ID=peer - CORE_PEER_ADDRESS=peer:7051 - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer:7051 - CORE_PEER_LOCALMSPID=DEFAULT - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock - FABRIC_LOGGING_SPEC=DEBUG - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp - CORE_LEDGER_STATE_STATEDATABASE=CouchDB - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984 - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME= - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD= volumes: - /var/run/:/host/var/run/ - ./msp:/etc/hyperledger/msp working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer command: peer node start --peer-chaincodedev=true ports: - 7051:7051 - 7053:7053 depends_on: - orderer - couchdb cli: container_name: cli image: hyperledger/fabric-tools tty: true environment: - GOPATH=/opt/gopath - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock - FABRIC_LOGGING_SPEC=DEBUG - CORE_PEER_ID=cli - CORE_PEER_ADDRESS=peer:7051 - CORE_PEER_LOCALMSPID=DEFAULT - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp working_dir: /opt/gopath/src/chaincodedev command: /bin/bash -c './script.sh ; sleep 20' volumes: - /var/run/:/host/var/run/ - ./msp:/etc/hyperledger/msp - ./../chaincode:/opt/gopath/src/chaincodedev/chaincode - ./:/opt/gopath/src/chaincodedev/ depends_on: - orderer - peer chaincode: container_name: chaincode image: hyperledger/fabric-ccenv tty: true environment: - GOPATH=/opt/gopath - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock - FABRIC_LOGGING_SPEC=DEBUG - CORE_PEER_ID=example02 - CORE_PEER_ADDRESS=peer:7051 - CORE_PEER_LOCALMSPID=DEFAULT - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp working_dir: /opt/gopath/src/chaincode command: /bin/bash -c 'sleep 6000000' volumes: - /var/run/:/host/var/run/ - ./msp:/etc/hyperledger/msp - ./../chaincode:/opt/gopath/src/chaincode depends_on: - orderer - peer ``` 当我使用以下指令启动容器, ``` docker-compose -f docker-compose-simple.yaml up ``` 唯有Cli 容器是无法启动的状态,并在Logs中返回以下错误讯息 ``` Error: error getting endorser client for channel: endorser client failed to connect to peer:7051: failed to create new connection: connection error: desc = "transport: error while dialing: dial tcp 172.29.0.4:7051: connect: connection refused" ``` 有查询到同样错误讯息的人是在docker 启动设定档加入sleep指令,加长等待时间以确定CouchDB启动 ``` command: /bin/bash -c 'sleep 6000000' ``` 但我即使加入了,还是会报相同的错误

gRPC:如何使用Go服务器在Java客户端中获取多个返回值

<div class="post-text" itemprop="text"> <p>I have a <code>protocol buffer</code> file:</p> <pre><code>syntax = "proto3"; package v1api; option java_multiple_files = true; option java_package = "myApp.v1"; option java_outer_classname = "V1"; service API { rpc Login(LoginRequest) returns (LoginResponse) } message LoginRequest { int pin = 1 } message LoginResponse { string token = 1 } </code></pre> <p>I have my server written in Go (a language that can return multiple values), and my client being an Android application.</p> <p>When I use this protoBuf to generate Go code for server, it is something like:</p> <pre><code>... func (c *aPIClient) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) { out := new(LoginResponse) err := grpc.Invoke(ctx, "/v1api.API/Login", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } ... </code></pre> <p>Notice that there are <strong>two</strong> return values, <code>(*LoginResponse, error)</code>.</p> <p>Now, when I use this protoBuf to generate Java code for my Android side, I get something like:</p> <pre><code>public myApp.v1.LoginResponse login(myApp.v1.LoginRequest request) { return blockingUnaryCall(getChannel(), METHOD_LOGIN, getCallOptions(), request); } </code></pre> <p>Notice that, here, there is just <strong>one</strong> return value like Java allows, <code>myApp.v1.LoginResponse</code>.</p> <p>My question is, in case of an error returned by the server (something like: <code>return nil, err</code>), how will I get that second return value in my Android side.</p> </div>

通过同一连接访问多个gRPC服务

<div class="post-text" itemprop="text"> <p>I am running a <code>grpc</code> server listening on <code>localhost:6000</code>, exposing 2 <code>grpc</code> services: <code>RegisterSubscriberServiceServer</code> and <code>RegisterDropperServiceServer</code>. Since both of these services are reachable from <code>localhost:6000</code>, I'd like to only dial this address from the stub.</p> <p>The server looks like this:</p> <pre><code>func main() { grpcServer := grpc.NewServer() pb.RegisterSubscriberServiceServer(grpcServer, &amp;subscriberServer{}) pb.RegisterDropperServiceServer(grpcServer, &amp;dropperServer{}) l, err := net.Listen("tcp", ":6000") if err != nil { log.Fatalf("failed to listen: %v", err) } log.Println("Listening on tcp://localhost:6000") grpcServer.Serve(l) } </code></pre> <p>Why do I need to dial a different socket for each <code>grpc</code> service?</p> <pre><code>type DropperRPC struct { conn *grpc.ClientConn client pb.DropperServiceClient chunkSize int } type SubscriberRPC struct { conn *grpc.ClientConn client pb.SubscriberServiceClient chunkSize int } func NewSubscriber() (c SubscriberRPC, err error) { c.conn, err = grpc.Dial("localhost:6000", grpc.WithInsecure()) if err != nil { log.Fatal(err) } c.client = pb.NewSubscriberServiceClient(c.conn) return } func NewDropper() (c DropperRPC, err error) { c.conn, err = grpc.Dial("localhost:6000", grpc.WithInsecure()) if err != nil { log.Fatal(err) } c.client = pb.NewDropperServiceClient(c.conn) return } </code></pre> <p>And since the code is basically duplicated to accommodate each service, can't I just use an <code>Interface</code> to reduce the code?</p> <pre><code>func main() { c1, err := NewSubscriber() if err != nil { log.Fatal(err) } c2, err := NewDropper() if err != nil { log.Fatal(err) } cc1 := &amp;c1 cc2 := &amp;c2 } </code></pre> <p>And then use this <code>Interface</code> to implement the client side <code>grpc</code> functions for each service, instead of creating a new <code>struct</code> for each service. I have found <a href="https://github.com/soheilhy/cmux" rel="nofollow noreferrer">cmux</a> , but there must be a way to do this without using external libraries.</p> </div>

Prometheus 如何监控 grpc-java server

如何通过prometheus 去监控 grpc 的 server ip 等一些信息?用的是Java语言

python:在拦截器中读取grpc proto请求

<div class="post-text" itemprop="text"> <p>How can I read grpc proto request in interceptor with Python?</p> <p>In PHP, I can read the <code>$argument</code>, it's what I need.</p> <pre><code>&lt;?php use Grpc\Interceptor; class MyInterceptor extends Interceptor { public function interceptUnaryUnary($method, $argument, $deserialize, array $metadata = [], array $options = [], $continuation) { // $argument is what I needto return parent::interceptUnaryUnary($method, $argument, $deserialize, $metadata, $options, $continuation); } } </code></pre> </div>

安全性-无法使用gRPC创建安全的TLS连接

<div class="post-text" itemprop="text"> <p>I need a secure connection to Knative.</p> <p>Tried a milion, and on the top of my head - the following scenario:</p> <pre><code>WORKED: |----------------------------------------------------------------------------|--------------------------------------------| | 1. curl -H "Host: my-servivce.default.mydomin.com" http(s)://mydomain.com | knative-ingress-gateway(tls with cert.pem) | |----------------------------------------------------------------------------|--------------------------------------------| | 2. unsecure gRPC port:80 | knative | |----------------------------------------------------------------------------|--------------------------------------------| NOT WORKING: |-----------------------------|------------------------------------------------------------------------------------------------| | 3. unsecure gRPC port:443 | knative-ingress-gateway(tls PASSTHROUGH) | |-----------------------------|------------------------------------------------------------------------------------------------| | 4. --//-- | knative-ingress-gateway(tls with cert.pem) using same working certificate as for 1. (curl) | |-----------------------------|--------------------------------------------|---------------------------------------------------| | 5. secure gRPC(cert from 4.)| knative-ingress-gateway(tls PASSTHROUGH) | gRPC secure server OpenSSL mydomain.com | |-----------------------------|--------------------------------------------|---------------------------------------------------| | 6. OpenSSL secure gRPC | knative-ingress-gateway(tls PASSTHROUGH) | gRPC secure server OpenSSL mydomain.com | |-----------------------------|--------------------------------------------|---------------------------------------------------| | 7. --//-- | knative-ingress-gateway(tls PASSTHROUGH) | gRPC secure server OpenSSL internall host domain | |-------------------------- |--------------------------------------------|---------------------------------------------------| </code></pre> <p>If you have got anything working with TLS or http(s), or know one who has, I would very much like to know?</p> <p>Thanks in advance</p> </div>

无法使用python客户端连接到go grpc服务器

<div class="post-text" itemprop="text"> <p>I have a grpc server running in Go. I am not able to call a method into it using the python client. Not sure what is going wrong. I get the following error</p> <p><code>_Rendezvous of RPC that terminated with (StatusCode.UNIMPLEMENTED, method: /com.test/myMethod)&gt;</code></p> <p>Any idea what could have gone wrong? The Go client is able to communicate properly.</p> <p>Also I generated the stubs following the instructions <a href="https://grpc.io/docs/tutorials/basic/python.html" rel="nofollow noreferrer">https://grpc.io/docs/tutorials/basic/python.html</a></p> <pre><code>python -m grpc_tools.protoc -I../../protos --python_out=. --grpc_python_out=. ../../protos/route_guide.proto </code></pre> <p>Once I got the py files, I removed the proto files and zipped the package. This zipped package is what I am using for my python client. Is there anything wrong?</p> </div>

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:csdn590)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

Windows版YOLOv4目标检测实战:训练自己的数据集

课程演示环境:Windows10; cuda 10.2; cudnn7.6.5; Python3.7; VisualStudio2019; OpenCV3.4 需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:训练自己的数据集》 课程链接:https://edu.csdn.net/course/detail/28745 YOLOv4来了!速度和精度双提升! 与 YOLOv3 相比,新版本的 AP (精度)和 FPS (每秒帧率)分别提高了 10% 和 12%。 YOLO系列是基于深度学习的端到端实时目标检测方法。本课程将手把手地教大家使用labelImg标注和使用YOLOv4训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv4使用AlexyAB/darknet,在Windows系统上做项目演示。包括:安装软件环境、安装YOLOv4、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算)和先验框聚类分析。还将介绍改善YOLOv4目标检测性能的技巧。 除本课程《Windows版YOLOv4目标检测实战:训练自己的数据集》外,本人将推出有关YOLOv4目标检测的系列课程。请持续关注该系列的其它视频课程,包括: 《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》 《Windows版YOLOv4目标检测实战:中国交通标志识别》 《Windows版YOLOv4目标检测:原理与源码解析》

lena全身原图(非256*256版本,而是全身原图)

lena全身原图(非256*256版本,而是全身原图) lena原图很有意思,我们通常所用的256*256图片是在lena原图上截取了头部部分的256*256正方形得到的. 原图是花花公子杂志上的一个

快速入门Android开发 视频 教程 android studio

这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

Java调用微信支付

Java 使用微信支付 一. 准备工作 1.

汽车租赁管理系统需求分析规格说明书

汽车租赁管理系统需求分析规格说明书,这只是一个模板,如果有不会的可以借鉴一下,还是蛮详细的。。。。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

程序员的算法通关课:知己知彼(第一季)

【超实用课程内容】 程序员对于算法一直又爱又恨!特别是在求职面试时,算法类问题绝对是不可逃避的提问点!本门课程作为算法面试系列的第一季,会从“知己知彼”的角度,聊聊关于算法面试的那些事~ 【哪些人适合学习这门课程?】 求职中的开发者,对于面试算法阶段缺少经验 想了解实际工作中算法相关知识 在职程序员,算法基础薄弱,急需充电 【超人气讲师】 孙秀洋&nbsp;| 服务器端工程师 硕士毕业于哈工大计算机科学与技术专业,ACM亚洲区赛铜奖获得者,先后在腾讯和百度从事一线技术研发,对算法和后端技术有深刻见解。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27272 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程无限观看时长,但是大家可以抓紧时间学习后一起讨论哦~

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

Python入门视频精讲

Python入门视频培训课程以通俗易懂的方式讲解Python核心技术,Python基础,Python入门。适合初学者的教程,让你少走弯路! 课程内容包括:1.Python简介和安装 、2.第一个Python程序、PyCharm的使用 、3.Python基础、4.函数、5.高级特性、6.面向对象、7.模块、8.异常处理和IO操作、9.访问数据库MySQL。教学全程采用笔记+代码案例的形式讲解,通俗易懂!!!

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Java62数据提取代码

利用苹果手机微信下面的wx.data文件提取出62数据,通过62可以实现不同设备直接登陆,可以通过文件流的方式用脚本上传到服务器进行解析

Python代码实现飞机大战

文章目录经典飞机大战一.游戏设定二.我方飞机三.敌方飞机四.发射子弹五.发放补给包六.主模块 经典飞机大战 源代码以及素材资料(图片,音频)可从下面的github中下载: 飞机大战源代码以及素材资料github项目地址链接 ————————————————————————————————————————————————————————— 不知道大家有没有打过飞机,喜不喜欢打飞机。当我第一次接触这个东西的时候,我的内心是被震撼到的。第一次接触打飞机的时候作者本人是身心愉悦的,因为周边的朋友都在打飞机, 每

2018年全国大学生计算机技能应用大赛决赛 大题

2018年全国大学生计算机技能应用大赛决赛大题,程序填空和程序设计(侵删)

Lena图像处理测试专业用图,高清完整全身原图

Lena图像处理测试专业用图,高清完整全身原图,该图片很好的包含了平坦区域、阴影和纹理等细节,这些都有益于测试各种不同的图像处理算法。它是一幅很好的测试照片!其次,由于这是一个非常有魅力女人的照片。

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

verilog实现地铁系统售票

使用 verilog 实现地铁售票

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

微信小程序 实例汇总 完整项目源代码

微信小程序 实例汇总 完整项目源代码

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯。 本系统控制六层电梯, 采用集选控制方式。 为了完成设定的控制任务, 主要根据电梯输入/输出点数确定PLC 的机型。 根据电梯控制的要求,

相关热词 c#分级显示数据 c# 不区分大小写替换 c#中调用就java c#正则表达式 验证小数 c# vscode 配置 c#三维数组能存多少数据 c# 新建excel c#多个文本框 c#怎么创建tcp通讯 c# mvc 电子病例
立即提问