Why Hyperledger Iroha v1.0 beta-4 version do not release Linux-x86_64-binaries.tar.gz?
aalinyu opened this issue · comments
Why Hyperledger Iroha v1.0 beta-4 version do not release Linux-x86_64-binaries.tar.gz?
Why just release source code, When I compile the source code ,can not continue
by clone code: HTTP request failed
Can realese the complied with Linux-x86_64-binaries.tar.gz in beta-4?
Why only release source code?
When i am compling the souce code get:
make[2]: *** [../external/src/reactive_extensions_rxcpp-stamp/reactive_extensions_rxcpp-download] Error 1
make[1]: *** [CMakeFiles/reactive_extensions_rxcpp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
Cloning into 'grpc_grpc'...
error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
-- Had to git clone more than once:
3 times.
CMake Error at /Users/aalin/Downloads/iroha-1.0.0_beta-4/external/tmp/grpc_grpc-gitclone.cmake:66 (message):
Failed to clone repository: 'https://github.com/grpc/grpc'
make[2]: *** [../external/src/grpc_grpc-stamp/grpc_grpc-download] Error 1
make[1]: *** [CMakeFiles/grpc_grpc.dir/all] Error 2
make: *** [all] Error 2
It's caused by failed git clone
.
Recently, I tried to build Iroha under Ubuntu 18.04. Several dependences (e.g. grpc, soci) can be installed using apt-get
, i.e.:
build-essential cmake libboost-all-dev libgtest-dev google-mock libgflags-dev libtbb-dev rapidjson-dev libspdlog-dev libprotobuf-dev libgrpc++-dev libsoci-dev protobuf-compiler protobuf-compiler-grpc libpq-dev
But gtest
, rxcpp
and ed25519
still need to be pulled from git repo.
BTW, I have no success to build Iroha v1.0.0_beta-4 under Ubuntu 18.04, more investigation is needed.
With following patch, compilation can go further, seems that grpc has changed a lot from 0.11 to 1.3.
diff --git a/cmake/functions.cmake b/cmake/functions.cmake
index 93f93523a..90ccc03d1 100644
--- a/cmake/functions.cmake
+++ b/cmake/functions.cmake
@@ -73,7 +73,7 @@ function(compile_proto_to_cpp PROTO)
add_custom_command(
OUTPUT ${SCHEMA_OUT_DIR}/${GEN_PB_HEADER} ${SCHEMA_OUT_DIR}/${GEN_PB}
COMMAND ${GEN_COMMAND}
- ARGS -I${GEN_ARGS} -I${CMAKE_CURRENT_SOURCE_DIR} ${ARGN} --cpp_out=${SCHEMA_OUT_DIR} ${PROTO}
+ ARGS -I${GEN_ARGS} -I${CMAKE_CURRENT_SOURCE_DIR} ${ARGN} --cpp_out=${SCHEMA_OUT_DIR} ${SCHEMA_PATH}/${PROTO}
DEPENDS protoc ${SCHEMA_PATH}/${PROTO}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
@@ -85,7 +85,7 @@ function(compile_proto_only_grpc_to_cpp PROTO)
add_custom_command(
OUTPUT ${SCHEMA_OUT_DIR}/${GEN_GRPC_PB_HEADER} ${SCHEMA_OUT_DIR}/${GEN_GRPC_PB}
COMMAND ${CMAKE_COMMAND} -E env LD_LIBRARY_PATH=${protobuf_LIBRARY_DIR}:$ENV{LD_LIBRARY_PATH} "${protoc_EXECUTABLE}"
- ARGS -I${protobuf_INCLUDE_DIR} -I${CMAKE_CURRENT_SOURCE_DIR} ${ARGN} --grpc_out=${SCHEMA_OUT_DIR} --plugin=protoc-gen-grpc="${grpc_CPP_PLUGIN}" ${PROTO}
+ ARGS -I${protobuf_INCLUDE_DIR} -I${CMAKE_CURRENT_SOURCE_DIR} ${ARGN} --grpc_out=${SCHEMA_OUT_DIR} --plugin=protoc-gen-grpc="${grpc_CPP_PLUGIN}" ${SCHEMA_PATH}/${PROTO}
DEPENDS grpc_cpp_plugin ${SCHEMA_PATH}/${PROTO}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
diff --git a/irohad/torii/impl/command_service.cpp b/irohad/torii/impl/command_service.cpp
index 9dd6dbf80..1e676a658 100644
--- a/irohad/torii/impl/command_service.cpp
+++ b/irohad/torii/impl/command_service.cpp
@@ -165,12 +165,12 @@ namespace torii {
}
// form an error message, shared between all txs in a sequence
auto first_tx_blob =
- shared_model::proto::makeBlob(txs[0].payload());
+ shared_model::proto::makeBlob(txs.Get(0).payload());
auto first_tx_hash =
shared_model::crypto::DefaultHashProvider::makeHash(
first_tx_blob);
auto last_tx_blob =
- shared_model::proto::makeBlob(txs[txs.size() - 1].payload());
+ shared_model::proto::makeBlob(txs.Get(txs.size() - 1).payload());
auto last_tx_hash =
shared_model::crypto::DefaultHashProvider::makeHash(
last_tx_blob);
diff --git a/shared_model/backend/protobuf/util.hpp b/shared_model/backend/protobuf/util.hpp
index 981974907..86f38a147 100644
--- a/shared_model/backend/protobuf/util.hpp
+++ b/shared_model/backend/protobuf/util.hpp
@@ -28,7 +28,7 @@ namespace shared_model {
template <typename T>
crypto::Blob makeBlob(T &&message) {
crypto::Blob::Bytes data;
- data.resize(message.ByteSizeLong());
+ data.resize(message.ByteSize());
message.SerializeToArray(data.data(), data.size());
return crypto::Blob(std::move(data));
}
diff --git a/shared_model/interfaces/iroha_internal/transaction_sequence.cpp b/shared_model/interfaces/iroha_internal/transaction_sequence.cpp
index 025413a28..1b98ea9f7 100644
--- a/shared_model/interfaces/iroha_internal/transaction_sequence.cpp
+++ b/shared_model/interfaces/iroha_internal/transaction_sequence.cpp
@@ -3,6 +3,8 @@
* SPDX-License-Identifier: Apache-2.0
*/
+#include <unordered_map>
+
#include "interfaces/iroha_internal/transaction_sequence.hpp"
#include "interfaces/iroha_internal/transaction_batch.hpp"
I have no success to build Iroha v1.0.0_beta-4 under Centos 6.8 too
The version of Iroha mentioned is old. Please try a new one if issue is still occurring.