Bir DIDComm aracısı nedir ve bir ajanın neden birine ihtiyacı olur
Sorun, tam olarak
İki ajan şifreli mesaj alışverişi yapmak istiyor. Hiçbiri sunucu değil. İkisi de uyuyan bir telefondaki cüzdan, günde doksan saniye çalışan bir işçi ya da kapatılmış bir tarayıcı sekmesi.
Doğrudan teslimat, iki tarafın da aynı anda çevrimiçi olmasını gerektirir. Yazılım ajanları için bu neredeyse hiçbir zaman doğru değildir ve buna göre inşa etmek ya (a) bir şeyi yoklamak demektir, ki bu bir şeye ihtiyaç duyar, ya da (b) bir ajanı kalıcı olarak çevrimiçi tutmak demektir, ki bu bir cüzdanı sunucuya dönüştürür.
Bir aracı işte o şeydir. Şu anda ulaşılamayan bir alıcıya adreslenmiş mesajları kabul eder, onları tutar ve o alıcı yeniden bağlandığında teslim eder.
İşin tamamı budur. Bir posta sunucusuyla aynı biçimdir; diğer her şeyden daha çok önem taşıyan tek bir farkla: aracı, taşıdığı şeyi okuyamaz.
Ne değildir
- Bir mesaj aracısı (broker) değildir. Bir broker yönlendirdiği mesajların sahibidir ve yönlendirmek için onları tipik olarak okur. Bir aracı ise açamadığı şifreli zarfları yönlendirir.
- Anlık bildirim değildir. APNs ya da Firebase bir uygulamayı uyandırır; kimliği doğrulanmış ajandan ajana mesajlar için bir taşıma katmanı değildirler ve bir platform satıcısında sona ererler.
- Bir dizin ya da kimlik sağlayıcısı değildir. Kimseye kefil olmaz. Zarfları taşır.
- Bir Seyahat Kuralı ürünü değildir. Relay taşımadır. Bir mesajın içeriği hakkında hiçbir şeyi başlatmaz, doğrulamaz ya da beyan etmez. Solidus'ta böyle bir ürün yoktur.
Bir mesaj gerçekte nasıl yol alır
- Alice'in ajanı Bob'un DID belgesine bakar ve
routingKeysiçeren birserviceEndpointbulur. O anahtarlar şunu söyler: Bob'a doğrudan teslim etme; bunu sar ve onun aracısına gönder. - Alice mesajı Bob için şifreler, sonra o şifreli metni aracıya adreslenmiş bir
forwardmesajı içine sarar. Aracıya zarf içinde zarf ulaşır: yalnızca "bunu X yönlendirme anahtarına teslim et" diyen dıştakini açabilir, içtekini asla. - Aracı onu kuyruğa alır, Bob'un yönlendirme anahtarına karşı.
- Bob'un ajanı çevrimiçi olur ve bir
delivery-requestile postasını ister, kuyruktaki zarfları alır ve aracının onları düşürebilmesi için teslim aldığını bildirir.
Adım 2 ve 4'ün mekaniği forward mesajı ve yönlendirme anahtarları ile Pickup Protocol 3.0 sayfalarındadır. Bir aracının en baştan sizin adınıza posta kabul etmesini sağlamak ise Coordinate Mediation 2.0 sayfasıdır.
Tek komutla görün
Solidus Relay'in ön kapısı standart bir bant dışı davettir ve kayıt gerektirmez:
curl -s https://relay.solidus.network/invite | jq '.body.goal_code, .services[0].serviceEndpoint.uri'
# "request-mediate"
# "https://relay.solidus.network/didcomm"
Tam anlatım bir ajanı aracıya bağlayın sayfasındadır.
O yanıttan dürüst bir ayrıntı: aracı kendini bir did:solidus ile değil, bir did:key ile
tanıtır. did:key kendi kendine yeterlidir: açık anahtarın kendisi tanımlayıcıdır, çözümlenecek
bir şey yoktur. Sağlam bir tercihtir ve şu anlama gelir: Solidus başka neyi demirlerse demirlesin,
aracının kendi kimliği zincire demirlenmemiştir.
Bir aracıya neyi emanet ediyorsunuz
Mesaj içeriklerinizi değil: onlar uçtan uca şifrelidir. Ama yönlendirme bilgiden bağımsız değildir: aracı kimin bağlandığını, ne zaman, ne sıklıkta ve zarfların ne kadar büyük olduğunu görür. Bu yapısaldır, bizimki dahil her aracı için doğrudur ve sizin hakkınızda gerçek şeyler çıkarmaya yeterlidir.
Önemsediğiniz bir şeyi yönlendirmeden önce bir aracının görebildikleri ve göremedikleri sayfasını okuyun. O sayfa, "okuyamadığı zarfları yönlendirir" cümlesinin doğru olduğu hâlde okumayı orada bırakanları yanılttığı için vardır.
Gerçekten birine ihtiyacınız var mı?
Çoğu zaman hayır, ve bunu kendi sayfamızda söylemeye değer. İki ajan da kararlı açık uç noktaları olan sürekli çalışan hizmetlerse doğrudan teslim edin; bir aracı hiçbir karşılığı olmadan bir sıçrama, bir bağımlılık ve bir üstveri gözlemcisi ekler. Bir aracıya ihtiyacınız olmadığı zamanlar sayfasına ve ihtiyacınız varsa barındırılan mı, kendi kendine barındırılan mı sayfasına bakın; kendi aracınızı çalıştırmak bazen doğru cevaptır.
Solidus Relay nerede duruyor
Coordinate Mediation 2.0 ve Pickup Protocol 3.0 uygular ve bugün DIDComm v2'ye yanıt verir. Bağımsız bir DIDComm uygunluk paketine karşı çalıştırılmamıştır, dolayısıyla iddia "uygundur" değil "uygular"dır; belirli bir satıcının ajanıyla katı birlikte çalışabilirlik sizin için önemliyse, ona bağımlı olmadan önce test edin.