プレイブック
リミックス + OpenZeppelin: ヘルメットなしでの配信 (Openzeppelin)
Bare Crypto プロトコルは、Hardhat/Foundry を使用せずに、Remix IDE と OpenZeppelin v4.1 GitHub インポートを使用してどのようにコンパイルおよびデプロイされましたか? ADR とトレードオフ。
Bare Crypto Solidity マーケットプレイス プロトコル
一部 1 の 5
Remix IDE および OpenZeppelin v4.1 を使用した Hardhat/Foundry なしの BareNFT GitHub インポート、リザーブ、英国オークション、および NFT ゲートの BareToken エミッション アーキテクチャ。 ADR、弱い RNG、緊急権限のトレードオフ。
ツールチェーンがない場合の契約の配信
Bare Crypto マーケットプレイス プロトコルは、ローカル Hardhat または Foundry パイプラインをインストールせずに、GitHub URL を使用して OpenZeppelin v4.1.0 コントラクトを直接インポートすることにより、Remix IDE 内でコンパイルされました。これは、2021 年の迅速なテストとシングル オペレーターの導入を目的とした意図的な ADR であり、速度とリリース ピンは向上しましたが、再現可能な CI とタイプ セーフ テストは失われています。```text Remix IDE ├─ BareNFT.sol ├─ BareNFTReserve.sol ├─ BareNFTAuction.sol └─ BareToken.sol | v https://github.com/OpenZeppelin/.../v4.1.0/... | v injected Web3 / MetaMask deploy
## 最初に説明した概念```text
📦 Remix IDE
Tarayici tabanli Solidity derleyici ve deploy yuzeyi; lokal node_modules gerektirmez.
📦 GitHub import pin
OpenZeppelin sozlesmelerini v4.1.0 blob URL'siyle sabitleyerek surum kaymasini onleme.
📦 ADR
Mimari karar kaydi: ne secildi, neden, hangi sonuc kabul edildi.
📦 Tekrarlanabilir build
Ayni kaynaklarin farkli makinelerde ayni bytecode'u uretmesi; Remix'te zayif nokta.
```リミックス + 固定された GitHub インポートは、「迅速な権利」と「CI の権利」の間の意識的なトレードオフです。ピンがない場合、各コンパイルには異なる依存関係がある可能性があります。
## ADR: ヘルメットなし、リミックスのみ
決定: Remix のプロトコル協定を維持し、GitHub から OpenZeppelin v4.1.0 をインポートし、MetaMask 経由でデプロイします。理論的根拠: 小規模なチーム、単一のオペレーター、高速な反復。受け入れられた価格: 自動テスト スイート、カバレッジ、ガス レポーター、決定論的なアーティファクト アーカイブはありません。このADRは、「市場を稼働させろ」という圧力のもと、故意にCI債務を延期した。
## 固定された OpenZeppelin サーフェス
BareNFT と BareToken は https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.1.0/... 経由で OpenZeppelin ERC721/ERC20/AccessControl/Pausable サーフェスをプルします。タグ ピンはマイナー バージョン スリップを中断します。ただし、Remix キャッシュと .deps フォルダーを使用すると、チームは「どのバイトコードがブロードキャストされるか?」を尋ねることができます。地元のヘルメットのアーティファクトほど明確に質問に答えているわけではありません。```text
import OZ v4.1.0
ERC721 + Enumerable + Burnable + Pausable
AccessControlEnumerable
SafeMath / IERC20
|
v
Remix .deps/github mirror
```## 失敗: フローティング依存関係とサイレント フォーク
オペレーターが誤って BLOB URL 内のタグをマスターに変更した場合、または Remix が別のコンパイラ プラグマで再コンパイルした場合、同じソースに「似ている」ものの、異なるバイトコードを生成するフォークが発生します。 Marketplace UI は、古い ABI と通信するときに、クレーム/入札の呼び出しを元に戻します。このインシデントは「フロントエンドのバグ」であると考えられており、根本的な原因はツールチェーンの規律の乱れにあります。パフォーマンスの点では、Remix では大規模な OZ ツリーがビルドごとに新たに解決されます。フィードバック ループはローカル キャッシュのない CI よりも遅く、より脆弱です。
## このエピソードで最も混乱を招く対戦```text
❌ Remix = sadece oyuncak, production'da kullanilmaz
✓ Remix + pinned OZ, kucuk operator marketplace'lerinde gecerli bir ADR olabilir; bedeli dokumante edilmelidir
❌ GitHub import otomatik olarak guvenlidir
✓ Tag pin olmadan import, tedarik zinciri kaymasidir; v4.1.0 blob sabitlemesi zorunlu disiplindir
❌ Hardhat yoksa audit edilemez
✓ Audit kaynak ve bytecode uzerinden yapilir; eksik olan tekrarlanabilir pipeline ve regresyon testidir
独自のシステムのチェックリスト
- OpenZeppelin インポート URL にバージョン タグ (例: v4.1.0) はありますか?
- 同じコミットからの 2 つの Remix ビルドは同じバイトコード ハッシュを与えますか?
- デプロイされたアドレスの ABI はどのアーティファクトから取得されますか? リミックスまたは手動コピー?
- コンパイラのバージョンと最適化設定は ADR または README で修正されていますか?
- 依存関係が失われると、マーケットプレイスの UI にはどのような症状が表示されますか? 誰が気づきますか?
このセクションで覚えておくべきこと
- Bare Crypto はスピードを重視してヘルメット不要のリミックス配信を選択しました。彼はそれが繰り返される可能性があることを知りながら、それを借金として残しました。
- OpenZeppelin v4.1 GitHub ピンは、ツールチェーンがない場合の唯一の真のバージョン ロックです。
- バイトコード オフセットが UI で「奇妙な復帰」として表示されます。 root がフロントエンドではないことが多いのはなぜですか?
素早い配送が特徴です。ピンレスインポートはサイレントフォークファクトリーです。
FAQ
よくある質問
リミックスIDEとは何ですか?
ブラウザベースの Solidity コンパイラーとデプロイ サーフェス。ローカルのnode_modulesは必要ありません。
GitHubインポートピンとは何ですか?
OpenZeppelin コントラクトを v4.1.0 BLOB URL に固定することで、バージョン クリープを防ぎます。
「リミックス=ただのおもちゃ、本番では使われない」って本当ですか?
リミックス + 固定 OZ は、小規模事業者の市場では有効な ADR となる可能性があります。費用は文書化する必要がある
このセクションでは何を修正しますか?
このセクションでは、Bare Crypto がハードハットのない配信モデルを選択した理由と、この選択によりどのような障害シナリオが発生するかを説明します。 Bare Crypto マーケットプレイス プロトコルは、ローカル Hardhat または Foundry パイプラインをインストールせずに、GitHub URL を使用して OpenZeppelin v4.1.0 コントラクトを直接インポートすることにより、Remix IDE 内でコンパイルされました。これは、2021 年の迅速なテストとシングル オペレーターの導入を目的とした意図的な ADR であり、速度とリリース ピンは向上しましたが、再現可能な CI とタイプ セーフ テストは失われています。
学んだエンジニアリング原則
- ツールチェーン ADR は、チームの規模とオペレーターの信頼モデルを考慮して作成する必要があります。
- 本番デプロイメントは、GitHub インポートをタグで固定せずに実行しないでください。
- 再現可能なバイトコードがなければ、インシデントの根本原因分析は推測にすぎません。
続きを読む
続きを読む
シリーズの次のシリーズ
BareNFT: ロール、一時停止可能、およびトークン URI
BareNFT は、ERC721 Enumerable/Burnable/Pausable および AccessControl を備えたロールゲート型 mint(to,id,uri) を提供します。トークンごとの URI と一時停止のトレードオフ。
同じシリーズ
BareNFTReserve: エスクロー、RandomBuy、弱い RNG
オーナー専用の createNewListing、buy および randomBuy — keccak256(revealNonce, block.difficulty, msg.sender) % 3. オーナー運営のマーケットプレイス ADR および緊急送金。
同じシリーズ
BareNFTAuction: 請求、返金および緊急権限
英国のオークション: 入札、請求、キャンセル、保留中の返品、および所有者の緊急送金Nft/transferFundsのトレードオフ。