GitHub से Buzz और Nostr पर जाने पर क्या जानना जरूरी है
TuBrief 편집팀
2026년 8월 24일
0
Computing/Software원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
커뮤니티의 다른 글
댓글 (0)
Log in to leave a comment
아직 작성된 글이 없습니다
원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
Log in to leave a comment
아직 작성된 글이 없습니다
केंद्रीयकृत रिपॉजिटरी में कोड डालना तब अजीब लगने लगता है जब नीतियां बार-बार बदलती हैं और आपको यह नहीं पता होता कि आपके कोड का उपयोग कहां किया जा रहा है। एक फ्रीलांसर या छोटी टीम के लिए डेटा संप्रभुता अस्तित्व का सवाल है। Buzz और Nostr NIP-34 प्रोटोकॉल किसी एकल कंपनी पर निर्भर न रहने के व्यावहारिक विकल्प हैं। हालांकि, जब आप वास्तव में माइग्रेट करने का प्रयास करते हैं, तो यह भारी लग सकता है। आपको प्रक्रियाओं, लागत और सुरक्षा समस्याओं को अपने दम पर हल करना होगा।
यदि आप केवल git push --mirror टाइप करते हैं, तो सर्वर इसे अस्वीकार कर देगा। ऐसा GitHub-विशिष्ट संदर्भ refs/pull/* के कारण होता है। टारगेट सर्वर छिपे हुए संदर्भों को स्वीकार नहीं करता है। संघर्षों के बिना कोड स्थानांतरित करने के लिए, आपको अनावश्यक संदर्भों को हटाना होगा और स्पष्ट रूप से पुश करना होगा।
आपको एक अस्थायी निर्देशिका में एक बेयर रिपॉजिटरी बनानी होगी, GitHub-विशिष्ट संदर्भों को हटाना होगा, और उन्हें Buzz एंडपॉइंट में धकेलना होगा। यदि बड़ी फाइलें हैं, तो आपको LFS ऑब्जेक्ट्स को भी अलग से प्रबंधित करना होगा।
`bash
#!/usr/bin/env bash
set -euo pipefail
GITHUB_REPO_URL="2"
TEMP_DIR=$(mktemp -d -t buzz-migration-XXXXXX)
trap 'rm -rf "$TEMP_DIR"' EXIT
git clone --mirror "TEMP_DIR/bare_repo.git"
cd "$TEMP_DIR/bare_repo.git"
git for-each-ref --format='%(refname)' refs/pull/ | while read -r ref; do
git update-ref -d "$ref"
ddone
git remote add buzz "$BUZZ_REMOTE_URL"
git push --force --prune buzz "+refs/heads/:refs/heads/" "+refs/tags/:refs/tags/"
ROOT_COMMIT=ROOT_COMMIT)"
`
जब आप इस स्क्रिप्ट को चलाते हैं, तो कमिट इतिहास 100% सुरक्षित रहता है। प्रारंभिक कमिट हैश प्रोजेक्ट की अनूठी पहचान बन जाता है।
| तुलना आइटम | GitHub | Buzz / Nostr NIP-34 |
|---|---|---|
| रिपॉजिटरी पहचान | केंद्रीय सर्वर DB रिकॉर्ड (org/repo) |
प्रारंभिक कमिट ID और Nostr इवेंट ID |
| प्रमाणीकरण विधि | OAuth, PAT, SSH Key | secp256k1 दीर्घवृत्तीय वक्र असममित हस्ताक्षर |
| पैच एक्सचेंज | GitHub-विशिष्ट API | NIP-34 पैच इवेंट (kind: 1617) |
Nostr生态 में, चाहे कोई व्यक्ति हो या AI एजेंट, वे एक ही एन्क्रिप्टेड इकाई हैं। वे 32-बाइट सार्वजनिक कुंजियों और श्नोर हस्ताक्षरों का उपयोग करके एक-दूसरे को प्रमाणित करते हैं। जिस क्षण आप कोड में निजी कुंजी एम्बेड करते हैं, यह सुरक्षा दुर्घटना का कारण बनता है। इसे पर्यावरण चर के माध्यम से केवल मेमोरी में लोड किया जाना चाहिए या रिमोट साइनर का उपयोग किया जाना चाहिए।
यह सत्यापित करने के लिए कि एजेंट द्वारा भेजा गया पैच रास्ते में संशोधित नहीं किया गया था, आपको NIP-01 क्रमांकन हैश को सत्यापित करना होगा।
`python
import json
import hashlib
from coincurve import PrivateKey
def create_signed_agent_event(secret_key_hex: str, kind: int, content: str, tags: list) -> dict:
sk = PrivateKey.from_hex(secret_key_hex)
pubkey_hex = sk.public_key.format(compressed=True)[1:].hex()
created_at = 1710000000
serialized_data = json.dumps(
[0, pubkey_hex, created_at, kind, tags, content],
separators=(',', ':'),
ensure_ascii=False
)
event_id = hashlib.sha256(serialized_data.encode('utf-8')).hexdigest()
sig_hex = sk.schnorr_sign(bytes.fromhex(event_id), None, raw=True).hex()
return {
"id": event_id,
"pubkey": pubkey_hex,
"created_at": created_at,
"kind": kind,
"tags": tags,
"content": content,
"sig": sig_hex
}
def verify_agent_event(event: dict) -> bool:
preimage = [0, event["pubkey"], event["created_at"], event["kind"], event["tags"], event["content"]]
serialized = json.dumps(preimage, separators=(',', ':'), ensure_ascii=False)
computed_id = hashlib.sha256(serialized.encode('utf-8')).hexdigest()
return computed_id == event["id"]
`
जब आपको गुप्त रूप से कोड का आदान-प्रदान करने की आवश्यकता हो, तो NIP-44 v2 विनिर्देश का उपयोग करके ChaCha20 के साथ एन्क्रिप्ट करें।
यदि आप कोडिंग को किसी एजेंट को सौंपते हैं, तो यह एक स्वायत्त सुधार पाश में आ जाता है और तुरंत टोकन जला देता है। जैसे-जैसे विफल रिकॉर्ड जमा होते हैं, संदर्भ दूषित हो जाता है और लागत बढ़ जाती है। इसे रोकने के लिए, आपको प्रॉक्सी स्तर पर सीमाएं निर्धारित करनी होंगी।
LiteLLM प्रॉक्सी को सामने रखें और वर्चुअल कुंजी के आधार पर दैनिक बजट और गति को सीमित करें।
`bash
curl -X POST 'http://localhost:4000/key/generate'
-H 'Authorization: Bearer sk-master-key-1234'
-H 'Content-Type: application/json'
-d '{
"key_alias": "auto-coder-agent-01",
"max_budget": 5.0,
"budget_duration": "1d",
"tpm_limit": 50000,
"rpm_limit": 30,
"models": ["agent-code-model"]
}'
`
यदि दैनिक बजट $5 से अधिक हो जाता है, तो यह तुरंत एक त्रुटि फेंकता है और बंद हो जाता है। आप कॉन्फ़िगरेशन फ़ाइल के साथ पूरी टीम के बजट को भी कस सकते हैं।
`yaml
model_list:
litellm_settings:
max_budget: 100.0
budget_duration: "30d"
default_team_settings:
`
आपको संदर्भ में संपूर्ण कोड डालना भी बंद कर देना चाहिए। टोकन की बर्बादी को कम करने के लिए आवश्यक फ़ंक्शन हस्ताक्षरों और संशोधित हंक के आसपास के क्षेत्र को ट्रिम करने के लिए Tree-Sitter का उपयोग करें। इस विधि का उपयोग करने से अनावश्यक टूल कॉल आधे से अधिक कम हो जाते हैं।