portanode

本サイトが提示する下記のベストプラクティスを実行するプロジェクトは、Open Source Security Foundation (OpenSSF) バッジを達成したことを自主的に自己認証し、そのことを外部に示すことができます。

ソフトウェアに欠陥や脆弱性がないことを保証する手立てはありません。形式論的な証明ができたとしても、仕様や前提が間違っていると誤動作の可能性があります。また、プロジェクトが健全で、かつ機能的な開発コミュニティであり続けることを保証する手立てもありません。しかし、ベストプラクティスの採用は、プロジェクトの成果の向上に寄与する可能性があります。たとえば、いくつものベストプラクティスがリリース前の複数人によるレビューを定めていますが、それによりレビュー以外では発見困難な技術的脆弱性を見つけるのを助け、同時に異なる企業の開発者間の信頼を築き、さらに交流を続けることに対する意欲を生んでいます。バッジを獲得するには、すべてのMUSTおよびMUST NOT基準を満たさなければなりません。すべてのSHOULD基準も満たさなければなりませんが、正当な理由がある場合は満たさなくても構いません。そしてすべてのSUGGESTED基準も満たさなければなりませんが、満たさないとしても、少なくとも考慮することが望まれます。フィードバックは、 GitHubサイトのissueまたはpull requestとして提示されれば歓迎します。また、議論のためのメールリストも用意されています。

私たちは多言語で情報を提供していますが、翻訳版に矛盾や意味の不一致がある場合は、英語版を正式な記述とします。
これがあなたのプロジェクトである場合は、プロジェクトページにベースラインバッジステータスを表示してください!ベースラインバッジステータスは次のようになります: プロジェクト15649のベースラインバッジレベルはbaseline-1です ベースラインバッジを埋め込む方法は次のとおりです:
ベースラインバッジステータスを表示するには、マークダウンファイルに以下を埋め込みます:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/15649/baseline)](https://www.bestpractices.dev/projects/15649)
または、HTMLに以下を埋め込みます:
<a href="https://www.bestpractices.dev/projects/15649"><img src="https://www.bestpractices.dev/projects/15649/baseline"></a>


これらはベースラインレベル1の基準です。 これらは基準バージョン v2026.08.28 の評価項目です。

Baseline Series: ベースラインレベル1 ベースラインレベル2 ベースラインレベル3

        

 基本的情報

  • 一般

    他のプロジェクトが同じ名前を使用していないか注意してください。

    Portable (external disk) cross-platform Bitcoin full node.

    SPDXライセンスの表現形式を使用してください。 例:「Apache-2.0」、「BSD-2-Clause」、「BSD-3-Clause」、「GPL-2.0+」、「LGPL-3.0+」、「MIT」、「(BSD-2-Clause OR Ruby)」。一重引用符または二重引用符を含めないでください。
    複数の言語がある場合は、コンマを区切り(スペースを入れてもよい)としてリストし、使用頻度の高いものから順に並べます。使用言語が多くある場合は、少なくとも最初の3つの最も多く使われるものをリストアップしてください。言語がない場合(例:ドキュメントだけ、またはテスト専用のプロジェクトの場合)、1文字 " - "を使用します。言語ごとにある大文字・小文字の慣用を踏襲してください(例:「JavaScript」)。
    Common Platform Enumeration(CPE)は、情報技術(IT)システム、ソフトウェア、およびパッケージのための構造化された命名体系です。脆弱性を報告する際に、多くのシステムやデータベースで使用されています。

 管理策 24/24 ●

  • 管理策


    ユーザーがプロジェクトの権威リポジトリにある機密リソースを読み取ったり変更したりしようとする場合、システムは多要素認証プロセスの完了をユーザーに要求しなければなりません。 [OSPS-AC-01.01]
    プロジェクトのバージョン管理システムに多要素認証を強制し、協力者が機密データにアクセスしたりリポジトリ設定を変更したりする際に第2の認証形式を提供するよう要求します。パスキーはこの管理として許容されます。

    The btclib-org organization requires two-factor authentication of every member and accepts only secure methods, not SMS. https://github.com/btclib-org/.github/issues/1362#issuecomment-5903994882



    新しい協力者が追加される場合、バージョン管理システムは手動による権限割り当てを要求するか、デフォルトで協力者の権限を最低利用可能な特権に制限しなければなりません。 [OSPS-AC-02.01]
    ほとんどの公開バージョン管理システムは、この方法で設定されています。プロジェクトのバージョン管理システムが、協力者を追加する際にデフォルトで常に利用可能な最低限の権限を割り当て、必要な場合にのみ追加の権限を付与するように設定してください。

    A new member gets read access, the organization's base permission (gh api orgs/btclib-org --jq .default_repository_permission). This repository has no direct collaborator. A higher grant is an issue in btclib-org/.github that an owner other than the one asking approves. https://github.com/btclib-org/.github/blob/main/GOVERNANCE.md#how-a-decision-is-made



    プロジェクトのプライマリブランチに直接コミットが試行された場合、強制メカニズムが変更の適用を防止しなければなりません。 [OSPS-AC-03.01]
    バージョン管理システムが集中型の場合は、プロジェクトのバージョン管理システムのプライマリブランチにブランチ保護を設定してください。あるいは、Linuxカーネルのような分散型アプローチを使用します。この場合、変更はまず別のリポジトリで提案され、プライマリリポジトリへの変更のマージには特定の個別の操作が必要です。

    The main-self-merge ruleset requires a pull request for every change to main. Its one bypass actor holds it in pull_request mode, which excuses a merge and never a direct push. https://github.com/btclib-org/.github/blob/main/README.md#branch-protection-and-rulesets



    プロジェクトのプライマリブランチの削除が試行された場合、バージョン管理システムはこれを機密性の高い活動として扱い、意図の明示的な確認を要求しなければなりません。 [OSPS-AC-03.02]
    プロジェクトのバージョン管理システムのプライマリブランチにブランチ保護を設定して削除を防止してください。

    The main-integrity ruleset forbids deleting main and has no bypass actor. https://github.com/btclib-org/portanode/blob/main/REPOSITORY.md#rulesets



    CI/CDパイプラインが信頼できないメタデータを処理する場合、それらのパラメータはパイプラインで使用する前にサニタイズおよび検証されなければならない。 [OSPS-BR-01.01]
    CI/CDパイプラインは、信頼できないソースに対応するすべてのメタデータ入力をサニタイズ(期待値の引用、エスケープ、または終了)する必要があります。これには、ブランチ名、コミットメッセージ、タグ、プルリクエストのタイトル、作者情報などのデータが含まれます。

    No workflow uses pull_request_target or workflow_run. No run: step expands an event field; verified-signatures.yml's inputs reach a script only through env:. zizmor's template-injection audit runs in the required Lint check. https://github.com/btclib-org/portanode/blob/main/.pre-commit-config.yaml



    CI/CDパイプラインが信頼されていないコードスナップショットで動作する場合、特権のあるCI/CDクレデンシャルおよびアセットへのアクセスを防止しなければなりません。 [OSPS-BR-01.03]
    CI/CDパイプラインは、信頼されていないコードスナップショットを特権のあるクレデンシャルおよびアセットから分離する必要があります。特に、プロジェクトは、協力者によるレビュー前にコードをビルドまたは実行するワークフローがCI/CDクレデンシャルにアクセスできないよう注意する必要があります。

    Pull-request runs use the pull_request and pull_request_review_comment triggers, which give a fork no secrets and a read-only token. The review job, which holds a secret, runs only when the head repository is this one. On issue_comment, the mention job checks out the default branch. https://github.com/btclib-org/.github/blob/main/.github/workflows/reusable-claude-review.yml



    プロジェクトがURIを公式プロジェクトチャンネルとしてリストする場合、そのURIは暗号化されたチャンネルを使用して排他的に配信されなければなりません。 [OSPS-BR-03.01]
    プロジェクトのウェブサイトおよびバージョン管理システムを、データ送信にSSHまたはHTTPSなどの暗号化されたチャンネルを使用するように設定してください。プロジェクトドキュメントで参照されるすべてのツールとドメインが、暗号化されたチャンネルを介してのみアクセスできるようにしてください。

    Every official channel is served over HTTPS only: the GitHub repository, its issue tracker, its Security tab and its releases. https://github.com/btclib-org/portanode



    プロジェクトが公式配布チャネルとしてURIを掲載する場合、そのチャネルは暗号学的に認証されたチャネルを使用して、中間者(adversary-in-the-middle)攻撃から保護されなければならない。 [OSPS-BR-03.02]
    プロジェクトによって配布される成果物は、完全性と真正性を保証するチャネルを通じて配布されるべきです。ダウンロードにHTTPSを使用すること、署名付きリリースを使用すること、信頼できるパッケージマネージャーを通じて配布することは、いずれも中間者攻撃から保護するための許容できる方法です。

    The project is distributed only from GitHub, over HTTPS: git clone, the ZIP of main and the release's source archive. Each release is a signed tag. https://github.com/btclib-org/portanode/releases



    プロジェクトは、シークレットや認証情報などの暗号化されていない機密データが、バージョン管理システムに意図せず保存されることを防止しなければなりません。 [OSPS-BR-07.01]
    機密情報を含む可能性のあるファイルを除外するために、.gitignoreまたは同等のものを設定してください。プリコミットフックおよび自動スキャンツールを使用して、コミットに機密データが含まれることを検出および防止してください。

    Secret scanning and its push protection are on. The detect-private-key and detect-secrets hooks run in the required Lint check. https://github.com/btclib-org/portanode/blob/main/REPOSITORY.md#security-settings



    プロジェクトがリリースを行った場合、プロジェクトドキュメントには、すべての基本機能に対するユーザーガイドを含まなければなりません。 [OSPS-DO-01.01]
    プロジェクトのすべての基本機能について、インストール、設定、およびプロジェクトの機能の使用方法を説明するユーザーガイドまたはドキュメントを作成してください。既知の危険な行為または破壊的な行為が利用可能な場合は、非常に目立つ警告を含めてください。

    README.md is the user guide: getting the folder, the quick start, each launcher, updating and rolling back the binaries, and troubleshooting. Each scripts directory has its own README.md. https://github.com/btclib-org/portanode/blob/main/README.md



    プロジェクトがリリースを行った場合、プロジェクトドキュメントには、欠陥報告のためのガイドを含まなければなりません。 [OSPS-DO-02.01]
    プロジェクトでは、バージョン管理システムのデフォルトの課題追跡ツールを使用することをお勧めします。外部ソースが使用される場合は、プロジェクトドキュメントと貢献ガイドで報告システムの使用方法を明確かつ目立つように説明してください。プロジェクトドキュメントでは、欠陥がどのようにトリアージおよび解決されるかについての期待値を設定することもお勧めします。

    README.md's Getting Help says to search the open issues and file through the bug form. CONTRIBUTING.md's The issue tracker says where an issue goes, and the security policy sends a vulnerability to a private channel. https://github.com/btclib-org/portanode/blob/main/.github/ISSUE_TEMPLATE/bug_report.yml



    プロジェクトは、提案された変更や利用上の障害についての公開討論のための1つ以上のメカニズムを持たなければならない。 [OSPS-GV-02.01]
    メーリングリスト、インスタントメッセージング、または課題追跡ツールなど、プロジェクト内の公開討論のための1つ以上のメカニズムを確立し、オープンなコミュニケーションとフィードバックを促進してください。

    Proposed changes and usage obstacles are discussed publicly in the repository's GitHub issues and pull requests; cross-repository questions go to btclib-org/.github's tracker. https://github.com/btclib-org/portanode/issues



    プロジェクトのドキュメントには、貢献プロセスの説明を含めなければならない、または一般からの貢献を受け付けていないことを明確に記載しなければならない。 [OSPS-GV-03.01]
    変更の提出手順やプロジェクトメンテナーとのやり取りを含む、貢献プロセスの概要を示すCONTRIBUTING.mdまたはCONTRIBUTING/ディレクトリを作成します。

    CONTRIBUTING.md explains the contribution process: one subject per pull request, the local gates, the review and the landing. https://github.com/btclib-org/portanode/blob/main/CONTRIBUTING.md



    ソースコードのライセンスは、OSIのオープンソース定義またはFSFのフリーソフトウェア定義を満たさなければならない。 [OSPS-LE-02.01]
    OSI(Open Source Initiative)によって承認されたライセンス、またはFSF(Free Software Foundation)によって承認されたフリーライセンスを含むLICENSEファイルをプロジェクトのリポジトリに追加します。そのようなライセンスの例としては、MIT、BSD 2-clause、BSD 3-clause revised、Apache 2.0、Lesser GNU General Public License(LGPL)、およびGNU General Public License(GPL)が含まれます。特許などの他の障害がない場合、パブリックドメインへのリリースはこの管理を満たします。

    The source code is under the MIT license, which the OSI approves. https://github.com/btclib-org/portanode/blob/main/LICENSE



    リリースされたソフトウェア資産のライセンスは、OSIのオープンソース定義またはFSFのフリーソフトウェア定義を満たさなければならない。 [OSPS-LE-02.02]
    リリースされたソフトウェア資産に異なるライセンスが含まれている場合は、OSI(Open Source Initiative)によって承認されたライセンス、またはFSF(Free Software Foundation)によって承認されたフリーライセンスであることを確認してください。そのようなライセンスの例としては、MIT、BSD 2-clause、BSD 3-clause revised、Apache 2.0、Lesser GNU General Public License(LGPL)、およびGNU General Public License(GPL)が含まれます。リリースされたソフトウェア資産のライセンスはソースコードとは異なる場合があることに注意してください。

    The only release asset is GitHub's source archive of the tag, which carries the same MIT LICENSE file. https://github.com/btclib-org/portanode/releases/latest



    ソースコードのライセンスは、対応するリポジトリのLICENSEファイル、COPYINGファイル、LICENSES/ディレクトリ、またはLICENSE/ディレクトリで管理されなければならない。 [OSPS-LE-03.01]
    ライセンス条項の可視性と明確性を確保するため、プロジェクトのソースコードライセンスをプロジェクトのLICENSEファイル、COPYINGファイル、LICENSES/ディレクトリ、またはLICENSE/ディレクトリに含めてください。ファイル名には拡張子を付けてもかまいません。プロジェクトが複数のリポジトリを持つ場合は、各リポジトリにライセンスファイルが含まれていることを確認してください。

    The license text is the repository's root LICENSE file. https://github.com/btclib-org/portanode/blob/main/LICENSE



    リリースされたソフトウェア資産のライセンスは、リリースされたソースコードに含めるか、対応するリリース資産と共にLICENSEファイル、COPYINGファイル、またはLICENSE/ディレクトリに含めなければならない。 [OSPS-LE-03.02]
    ライセンス条件に関する可視性と明確性を提供するために、プロジェクトのリリースされたソフトウェア資産のライセンスを、リリースされたソースコードに、または対応するリリース資産と一緒にあるLICENSEファイル、COPYINGファイル、またはLICENSE/ディレクトリに含めます。ファイル名には拡張子を付けることができます。プロジェクトに複数のリポジトリがある場合は、各リポジトリにライセンスファイルが含まれていることを確認してください。

    The release's source archive holds the root LICENSE file; .gitattributes excludes nothing from it. https://github.com/btclib-org/portanode/blob/main/LICENSE



    プロジェクトのソースコードリポジトリは、静的なURLで公開され、読み取り可能でなければならない。 [OSPS-QA-01.01]
    GitHub、GitLab、Bitbucketなどの一般的なVCSを使用します。リポジトリが公開読み取り可能であることを確認してください。主要なソースを明確にする可視性の高いドキュメントがない限り、リポジトリの複製またはミラーリングを避けてください。リポジトリURLに影響を与える可能性のある頻繁なリポジトリの変更を避けてください。リポジトリが公開されていることを確認してください。

    The repository is public on GitHub at a static URL. https://github.com/btclib-org/portanode



    バージョン管理システムには、行われたすべての変更、誰が変更を行ったか、いつ変更が行われたかの公開読み取り可能な記録が含まれている必要があります。 [OSPS-QA-01.02]
    GitHub、GitLab、Bitbucketなどの一般的なVCSを使用して、公開読み取り可能なコミット履歴を維持します。コミットの作成者が不明瞭になるような方法でコミットをスカッシュまたは書き換えることは避けてください。

    Git history on GitHub records every change with its author, committer and date; linear history and no force-push on main keep it from being rewritten. https://github.com/btclib-org/portanode/commits/main



    パッケージ管理システムがサポートしている場合、ソースコードリポジトリには、直接の言語依存関係を説明する依存関係リストが含まれている必要があります。 [OSPS-QA-02.01]
    これは、package.json、Gemfile、go.modなど、すべての直接依存関係を列挙するパッケージマネージャーまたは言語依存関係ファイルの形式を取ることができます。

    Bash, batch and PowerShell have no package manager here, and the tree has no manifest or lock file. The binaries the updaters install are fetched from their publishers and pinned by keys/*.fingerprints. https://github.com/btclib-org/portanode/blob/main/.github/dependabot.yml



    複数のリポジトリを持つプロジェクトは、プロジェクトの一部であるコードベースの一覧を文書化しなければならない。 [OSPS-QA-04.01]
    プロジェクトによって生成され、リリースにコンパイルされる追加のサブプロジェクトコードリポジトリを文書化します。このドキュメントには、それぞれのコードベースのステータスと意図を含める必要があります。

    The organization standard's section 2 lists every repository of btclib-org and its tier, portanode included. PortaNode is this one repository. https://github.com/btclib-org/.github#which-repositories-and-how-far



    バージョン管理システムには、生成された実行可能な成果物を含めてはなりません(MUST NOT)。 [OSPS-QA-05.01]
    プロジェクトのバージョン管理システムで生成された実行可能アーティファクトを削除します。生成された実行可能アーティファクトがテストなどのプロセスで重要と思われるシナリオでは、代わりにビルド時に生成するか、別に保存して、明確に文書化されたパイプライン ステップ中に取得する必要があることが推奨されます。

    No generated executable is committed: git ls-files names no binary file. The bin/ directories hold only a README.md and a .gitignore naming the binaries the updaters install. https://github.com/btclib-org/portanode/blob/main/macos/bin/.gitignore



    バージョン管理システムには、レビュー不可能なバイナリ成果物を含めてはなりません(MUST NOT)。 [OSPS-QA-05.02]
    プロジェクトのバージョン管理システムにレビュー不可能なバイナリアーティファクトを追加しないでください。これには、実行可能なアプリケーションバイナリ、ライブラリファイル、および同様のアーティファクトが含まれます。これには、グラフィック画像、音声や音楽ファイル、および通常バイナリ形式で保存されるコンテンツなどのアセットは含まれません。

    The tree holds no binary file of any kind: every tracked file is text. https://github.com/btclib-org/portanode



    プロジェクトの文書には、セキュリティ連絡先を含めなければなりません(MUST)。 [OSPS-VM-02.01]
    プロジェクトのセキュリティ連絡先を含むsecurity.md(または同様の名前の)ファイルを作成してください。

    The security policy on the Security tab, the organization's SECURITY.md, names the contacts: a private GitHub security advisory, or email to security at btclib dot org. GOVERNANCE.md's Roles says that address reaches every owner. https://github.com/btclib-org/portanode/security/policy https://github.com/btclib-org/.github/blob/main/GOVERNANCE.md#roles



ツールやAIシステムを使って、https://www.bestpractices.dev/ja/projects/15649/choose/edit?osps_ac_01_01_status=Met&osps_ac_01_01_justification=GitHub+enforcedのような簡単なURLで変更を提案できます。その方法については、自動化提案システムをご覧ください。 このデータは、Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0)のもとで利用可能です。これは、データ受領者が、データ受領者がこの契約のテキストを共有データとともに利用可能にする限り、変更の有無にかかわらずデータを共有できることを意味します。Ferdinando AmetranoおよびOpenSSFベストプラクティスバッジのコントリビューターにクレジットを表示してください。

プロジェクト バッジ登録の所有者: Ferdinando Ametrano.
エントリの作成日時 2026-10-18 11:16:35 UTC、 最終更新日 2026-10-18 14:34:30 UTC