


Adakah mungkin untuk menggunakan gRPC dengan hyperledger-chaincode, dan jika ya, bagaimana untuk mengelakkan ralat semasa panggilan pada rangkaian ujian?
editor php Xigua di sini untuk menjawab soalan anda. Ya, anda boleh menggunakan gRPC dengan Hyperledger Chaincode. gRPC ialah rangka kerja panggilan prosedur jauh (RPC) sumber terbuka berprestasi tinggi yang membolehkan Chaincode anda berkomunikasi dengan perkhidmatan lain. Untuk mengelakkan ralat semasa panggilan pada rangkaian ujian, terdapat beberapa langkah yang boleh anda ambil. Mula-mula, pastikan rangkaian ujian anda dikonfigurasikan dan berjalan dengan betul. Kedua, semak kod dan fail konfigurasi anda untuk memastikan anda menggunakan gRPC dengan betul. Akhir sekali, lakukan pengendalian ralat dan pengelogan yang sesuai supaya sebarang isu ditemui dan diselesaikan dengan segera. Dengan langkah ini, anda seharusnya dapat mengelakkan ralat semasa panggilan pada rangkaian ujian anda dan berkomunikasi menggunakan gRPC dengan lancar.
Kandungan soalan
Saya ingin menggunakan grpc dalam kod rantai fabrik untuk mencapai komunikasi silang rantai dan bukannya menggunakan sdk kain. Tetapi apabila saya memanggil fungsi chaincode pada fabric-sample/test-network, saya sentiasa mendapat ralat.
error: endorsement failure during invoke. response: status:500 message:"error in simulation: failed to execute transaction eb5e480bd4075a767f56ae263741ca0f5f19620ef88952e26b7f1952bdbe83cd: could not launch chaincode chaincode_1.2:d3f97f15a635e73d3de230c8e5899e5fb95a68cf897c03e19f9e4eeca7ca3fd5: chaincode registration failed: container exited with 2"
Boleh sesiapa beritahu saya apa yang menyebabkan ralat ini? Adakah terdapat pepijat dalam kod rantai saya atau grpc tidak boleh digunakan dalam fungsi kod rantai?
Kod rantai saya untuk grpc:
func (s *smartcontract) begin(ctx contractapi.transactioncontextinterface) error { server.main() return nil } func (s *smartcontract) client(ctx contractapi.transactioncontextinterface) error { // client.clientfunc is the client main function client.clientfunc(xt, r, sign, m) }
server.go
func main() { listen, err := net.listen("tcp", ":9090") if err != nil { fmt.printf("failed to listen: %v", err) return } grpcserver := grpc.newserver() pb.registersendserviceserver(grpcserver, &server{}) err2 := grpcserver.serve(listen) if err2 != nil { fmt.printf("failed to serve: %v", err2) return } }
client.go
func Clientfunc(Xt *btcec.PublicKey, R *btcec.PublicKey, s *big.Int, m []byte) []byte { conn, err := grpc.Dial("127.0.0.1:9090", grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { log.Fatalf("did not connect: %v", err) } defer conn.Close() client := pb.NewSendServiceClient(conn) output := &pb.SignInput{ XtX: Xt.X().Int64(), XtY: Xt.Y().Int64(), M: m, RX: R.X().Int64(), RY: R.Y().Int64(), S: s.Int64(), } resp, _ := client.Send(context.Background(), output) return resp.GetM() }
Penyelesaian
Siapa boleh beritahu saya apa yang menyebabkan ralat ini?
Lihat hyperledger fabric v2.x/ Log Control untuk butiran, apa yang boleh memberitahu anda apa yang menyebabkan Ralat 500 (Ralat Pelayan Dalaman) ialah log pelayan
Bergantung pada cara anda menjalankannya:
docker logs <chaincode_container_id> kubectl logs -n <namespace> <pod_name> oc logs -n <namespace> <pod_name>
Ini mungkin disebabkan oleh isu dalam kod rantai anda (seperti pepijat dalam kod grpc anda), atau ia mungkin disebabkan oleh persekitaran di mana kod rantai dijalankan.
Daripada kod anda, anda mungkin menganggap tidak memulakan pelayan grpc dalam kod rantai (server.main()
). Chaincode berjalan dalam rangkaian fabrik hyperledger dan tidak mengendalikan komunikasi rangkaian seperti aplikasi kendiri.
Sebaliknya, anda harus menjadikan pelayan grpc sebagai perkhidmatan berasingan yang berjalan secara bebas, dan kod rantai kemudiannya boleh berkomunikasi dengan perkhidmatan tersebut mengikut keperluan.
plus client.clientfunc()
nampaknya mewujudkan sambungan grpc, menghantar permintaan, dan menunggu respons. Ini adalah operasi segerak dan boleh menyebabkan masalah jika respons mengambil masa yang lama untuk tiba. Sebaik-baiknya menggunakan operasi tak segerak (iaitu menghantar permintaan dan mengendalikan respons dalam fungsi panggil balik) untuk mengelak daripada menyekat pelaksanaan kod rantai.
Dan... anda tidak sepatutnya mengabaikan kesilapan daripada client.send()
;)
Pastikan pelayan grpc anda tidak memerlukan sambungan selamat, jika tidak grpc.withtransportcredentials(insecure.newcredentials())
(sambungan tidak selamat tanpa ssl/tls) akan gagal.
Secara amnya, adalah disyorkan untuk mengendalikan komunikasi dengan sistem luaran (cth. melalui grpc) dalam aplikasi klien fabrik, bukannya dalam kod rantai itu sendiri.
Jika saya hanya mahu menggunakan kod rantai dan bukannya aplikasi fabrik, adakah terdapat cara untuk berkomunikasi antara organisasi pada saluran yang berbeza?
Komunikasi antara organisasi pada saluran yang berbeza boleh menjadi rumit, kerana ia merupakan aspek asas reka bentuk fabrik hyperledger yang saluran diasingkan antara satu sama lain untuk mengekalkan privasi data.
Anda mungkin mempertimbangkan:
-
Fungsi kod rantai: Organisasi boleh memanggil fungsi kod rantai pada salurannya sendiri, yang seterusnya memanggil fungsi kod rantai pada saluran lain. Ini mungkin kerana kod rantai boleh dikaitkan dengan berbilang saluran.
Ambil perhatian bahawa pendekatan ini mempunyai had bahawa panggilan fungsi kedua tidak tergolong dalam transaksi yang sama seperti panggilan fungsi pertama, jadi jika transaksi pertama gagal, ia tidak boleh ditarik balik. -
Dual Keahlian: Organisasi boleh tergolong dalam berbilang saluran. Oleh itu, ia boleh membaca data dari satu saluran dan menulis data ke saluran lain. Walau bagaimanapun, ini dilakukan dalam dua transaksi berasingan, jadi atomicity tidak dijamin.
Pengumpulan Data Peribadi (pdc): Jika matlamatnya adalah untuk berkongsi data peribadi antara organisasi tertentu (atau merentasi saluran yang berbeza), pdc mungkin menjadi pilihan. pdc membenarkan subset organisasi yang ditentukan pada saluran untuk menyokong, menyerahkan atau menanyakan data peribadi tanpa perlu mengedarkan data kepada semua organisasi pada saluran tersebut.
-
Penyelesaian kebolehoperasian: Terdapat juga penyelesaian yang lebih maju untuk kebolehkendalian rantaian blok sedang dibangunkan, seperti interledger protocol (ilp), yang boleh digunakan untuk menyambungkan rangkaian fabrik yang berbeza (atau malah memindahkan data atau aset sepenuhnya antara jenis yang berbeza rangkaian blockchain).
Walau bagaimanapun, teknologi ini sebahagian besarnya masih dalam peringkat penyelidikan dan pembangunan dan mungkin belum bersedia untuk kegunaan pengeluaran.
Atas ialah kandungan terperinci Adakah mungkin untuk menggunakan gRPC dengan hyperledger-chaincode, dan jika ya, bagaimana untuk mengelakkan ralat semasa panggilan pada rangkaian ujian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Posisi Rolling Mata Wang Digital adalah strategi pelaburan yang menggunakan pinjaman untuk menguatkan leverage perdagangan untuk meningkatkan pulangan. Artikel ini menerangkan proses penggulungan mata wang digital secara terperinci, termasuk langkah-langkah utama seperti memilih platform perdagangan yang menyokong rolling (seperti Binance, Okex, Gate.io, Huobi, Bybit, dll), membuka akaun leverage, menetapkan leverage berbilang, meminjam dana untuk perdagangan, Walau bagaimanapun, perdagangan kedudukan rolling sangat berisiko, dan pelabur perlu beroperasi dengan berhati -hati dan merumuskan strategi pengurusan risiko yang lengkap. Untuk mengetahui lebih lanjut mengenai tip rolling mata wang digital, sila teruskan membaca.

Yuran pengendalian platform perdagangan Gate.io berbeza mengikut faktor seperti jenis urus niaga, pasangan transaksi, dan tahap VIP pengguna. Kadar yuran lalai untuk perdagangan tempat ialah 0.15% (tahap VIP0, pembuat dan pengambil), tetapi tahap VIP akan diselaraskan berdasarkan jumlah dagangan 30 hari pengguna dan kedudukan GT. Semakin tinggi tahap, semakin rendah kadar bayaran akan. Ia menyokong potongan duit syiling platform GT, dan anda boleh menikmati diskaun minimum sebanyak 55%. Kadar lalai untuk urus niaga kontrak ialah pembuat 0.02%, pengambil 0.05% (tahap VIP0), yang juga dipengaruhi oleh tahap VIP, dan jenis kontrak yang berbeza dan leverage

Artikel ini memperkenalkan secara terperinci pendaftaran, penggunaan dan prosedur pembatalan akaun Ouyi OKEX. Untuk mendaftar, anda perlu memuat turun aplikasinya, masukkan nombor telefon bimbit atau alamat e-mel anda untuk mendaftar, dan menyelesaikan pengesahan nama sebenar. Penggunaan meliputi langkah -langkah operasi seperti log masuk, cas semula dan pengeluaran, transaksi dan tetapan keselamatan. Untuk membatalkan akaun, anda perlu menghubungi perkhidmatan pelanggan Ouyi OKEX, memberikan maklumat yang diperlukan dan menunggu pemprosesan, dan akhirnya mendapatkan pengesahan pembatalan akaun. Melalui artikel ini, pengguna dengan mudah dapat menguasai pengurusan kitaran hayat lengkap akaun Ouyi Okex dan menjalankan urus niaga aset digital dengan selamat dan mudah.

Artikel ini mencadangkan sepuluh laman web cadangan aplikasi yang berkaitan dengan mata wang maya, termasuk Binance Academy, OKX Learn, Coingecko, Cryptoslate, Coindesk, Investopedia, Coinmarketcap, Huobi University, Coinbase Learn and Cryptocompare. Laman web ini bukan sahaja memberikan maklumat seperti data pasaran mata wang maya, analisis trend harga, dan lain -lain, tetapi juga menyediakan sumber pembelajaran yang kaya, termasuk pengetahuan asas blok, strategi perdagangan, dan tutorial dan ulasan pelbagai aplikasi platform perdagangan, membantu pengguna memahami dan menggunakannya

Artikel ini menyediakan panduan lengkap untuk log masuk dan pendaftaran pada versi PC Binance. Pertama, kami menerangkan secara terperinci langkah -langkah untuk pembalakan dalam versi PC Binance: Cari "Laman Web Rasmi Binance" Dalam penyemak imbas, klik butang Login, masukkan e -mel dan kata laluan (membolehkan 2FA untuk memasukkan kod pengesahan) untuk log masuk. Kedua, artikel menerangkan proses pendaftaran: Klik butang "Daftar" Akhirnya, artikel itu juga menekankan keselamatan akaun, mengingatkan pengguna untuk memberi perhatian kepada nama domain rasmi, persekitaran rangkaian, dan mengemas kini kata laluan secara teratur untuk memastikan keselamatan akaun dan penggunaan pelbagai fungsi yang disediakan oleh Versi PC Binance, seperti melihat keadaan pasaran, menjalankan transaksi dan mengurus aset.

Artikel ini menyenaraikan sepuluh platform perdagangan Web3 yang terkenal, termasuk Binance, OKX, Gate.io, Kraken, Bybit, Coinbase, Kucoin, Bitget, Gemini dan Bitstamp. Artikel ini membandingkan ciri -ciri setiap platform secara terperinci, seperti bilangan mata wang, jenis dagangan (tempat, niaga hadapan, pilihan, NFT, dll), yuran pengendalian, keselamatan, pematuhan, kumpulan pengguna, dan lain -lain, bertujuan untuk membantu pelabur memilih platform perdagangan yang paling sesuai. Sama ada peniaga frekuensi tinggi, peminat perdagangan kontrak, atau pelabur yang memberi tumpuan kepada pematuhan dan keselamatan, mereka dapat mencari maklumat rujukan daripadanya.

Ia berada di antara bahagian atas di dunia, menyokong semua kategori urus niaga seperti tempat, kontrak, dan dompet Web3. Ia mempunyai yuran pengendalian keselamatan yang tinggi dan rendah. Platform perdagangan yang komprehensif dengan sejarah yang panjang, yang terkenal dengan pematuhan dan kecairan yang tinggi, menyokong perkhidmatan berbilang bahasa. Pemimpin industri meliputi perdagangan mata wang, leverage, pilihan, dan lain -lain, dengan kecairan yang kukuh dan menyokong yuran potongan BNB.

Sesame Exchange Gate.io Web Versi mudah untuk log masuk. Hanya masukkan "Gate.io" di bar alamat penyemak imbas dan tekan Enter untuk mengakses laman web rasmi. Laman web ringkas menyediakan pilihan "log masuk" dan "mendaftar" yang jelas, dan pengguna boleh memilih untuk log masuk ke akaun berdaftar atau mendaftarkan akaun baru mengikut situasi mereka sendiri. Selepas mendaftar atau log masuk, anda boleh memasukkan antara muka perdagangan utama untuk menjalankan perdagangan cryptocurrency, memeriksa keadaan pasaran dan pengurusan akaun. Gate.io mempunyai antara muka yang mesra dan mudah dikendalikan, sesuai untuk pemula dan peniaga profesional.
