遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/960)
<a href="https://www.bestpractices.dev/projects/960"><img src="https://www.bestpractices.dev/projects/960/badge"></a>
Iroha is a simple and straightforward DLT platform for asset and identity management. It has client libraries for mobile and web application development; novel consensus, called YAC, and SQL-powered validation.
A signed developer certificate of origin is required to contribute https://github.com/hyperledger/iroha/blob/master/CONTRIBUTING.md
The project requires contributors to check DCO. https://github.com/hyperledger/iroha/blob/master/CONTRIBUTING.md "Signed-off every commit with DCO: Signed-off-by: $NAME <$EMAIL>. You can do it automatically using git commit -s."
https://github.com/hyperledger/iroha/blob/master/MAINTAINERS.md
https://github.com/hyperledger/iroha/blob/master/CODE_OF_CONDUCT.md
Hyperledger organization is a governing organization with multiple community architects: https://www.hyperledger.org/about/leadership. Also, project's bus factor is relatively high, which is good.
Analysis over "dev" branch on December 4 2018: (this tool was used — https://github.com/aserg-ufmg/Truck-Factor/tree/master/gittruckfactor)
2018-12-04 15:34:40 INFO hyperledger/iroha: Extracting and calculating authorship information... 2018-12-04 15:34:40 WARN DOACalculator:92 - No commits for test/module/irohad/ametsuchi/tx_presence_cache_stub.hpp TF = 7 (coverage = 46,18%) TF authors (Developer;Files;Percentage): Andrei Lebedev;314;21,23 Fyodor Muratov;185;12,51 Kitsu;178;12,04 kamilsa;134;9,06 grimadas;129;8,72 Akvinikym;104;7,03 Igor Egorov;101;6,83
https://soramitsucoltd.aha.io/published/e9bce93777c2c4b2448e4e6e78e90b4f?page=1
Information should be updated regularly at iroha.tech/roadmap
https://docs.iroha.tech
https://iroha.readthedocs.io/en/latest/guides/sec-install.html
https://iroha.readthedocs.io/en/latest/getting_started/index.html
The project always have the latest documentation. Releases have their own version of documentation. The project uses readthedocs service in order to fulfill the requirement
https://github.com/hyperledger/iroha readme header
All functionality is available from a keyboard. All the output is available in stdout and should be processed with required software.
Project's docs are translated into any language with the help of community: https://poeditor.com/join/project/SFpZw7o33o
We don't provide any service or authentication of our users.
We support backwards compatibility by versioning of client API and business objects. If migration has to occur — we will post a description for upgrade.
https://jira.hyperledger.org/secure/RapidBoard.jspa?rapidView=214&view=planning.nodetail&selectedIssue=IR-35&epics=visible
Credits are given in the release notes:
https://github.com/hyperledger/iroha/releases
"Fix of critical vulnerabilities discovered during the security audit
Previously, several problems existed:
Blocks can be signed more than once by the same peer (fixed in #1193) Transactions can be signed more than once by the same signatory (fixed in #1302) If ed25519 library was modified to use a non-deterministic nonce, these vulnerabilities were likely to be used. Thanks to @dhuseby who helped us to unveil this tricky part of ed25519."
Pull Request for CONTRIBUTING.md file: https://github.com/hyperledger/iroha/pull/2159/files
https://github.com/hyperledger/iroha/blob/master/CONTRIBUTING.md
we use git hooks that check if the code is conformant to clang-format checks
https://github.com/hyperledger/iroha/blob/master/CMakeLists.txt CMake and Iroha support clang, gcc and msvc compilers
https://github.com/hyperledger/iroha/blob/master/CMakeLists.txt debugging information is preserved in Debug build
https://github.com/hyperledger/iroha/blob/master/CMakeLists.txt all the modules are clearly non-cross dependent
We use docker image for dependencies that provides guarantee for bit-for-bit result, develop-build https://hub.docker.com/r/hyperledger/iroha/
develop-build
Software is installed as a docker container https://hub.docker.com/r/hyperledger/iroha/. Uninstallation process is typical.
Software is usually installed manually with docker container
Software is usually installed manually with docker container. Tests can be run as explained here: https://iroha.readthedocs.io/en/latest/guides/build.html#running-tests-optional
All external dependencies are resolved via CMakeLists https://github.com/hyperledger/iroha/blob/master/CMakeLists.txt
CMake files are periodically checked to contain vulnerable dependencies
All the dependencies are listed as cmake modules. Inside each cmake file a dependency is fixed to a specified commit. Thus anyone can modify the commit, identity and update the version of dependency. Example https://github.com/hyperledger/iroha/blob/master/cmake/Modules/Findgrpc.cmake
We don't use deprecated API where possible
Check build history and commit pipeline here https://jenkins.soramitsu.co.jp/job/iroha/job/iroha-hyperledger/job/dev/
There is a policy that for each bug there should be a regression. Example of fix and regression: https://github.com/hyperledger/iroha/pull/1894
Coverage report does not meet this criteria https://out-8410xxpdz.now.sh
https://raw.githubusercontent.com/hyperledger/iroha/master/.github/PULL_REQUEST_TEMPLATE.md <!-- * All new code must have code coverage above 70% (https://docs.codecov.io/docs/about-code-coverage). -->
No warnings are allowed in compiler's output for pull request build
http://github.com/hyperledger/iroha-ed25519/ SHA3
We don't support other algorithms, but our crypto component is pluggable
Files with private keys are separate from other information
Right now we don't have implementation for this, but project roadmap already has items for TLS support in gRPC
Until first major release we don't sign our releases
We use Codacy
We use fuzzing tool: libfuzz & protomutator for gRPC endpoints
后退