Gelişen dijital ortamda, işletmeler ve geliştiriciler sürekli olarak verileri izlemek ve analiz etmek için en etkili araçları aramaktadır. Origin'de, web tabanlı etkileşimleri izlemek için Google Analytics'i çözüm olarak kullanıyorduk, ancak blockchain teknolojisi cazip bir alternatif sunuyor: zincir üzerindeki işlemleri izlemek. Bu yaklaşım, özellikle doğruluk ve şeffaflık konusunda benzersiz avantajlar sunuyor.
Yönlendirmeleri zincir üzerinde izlemenin arkasındaki temel dayanak noktası, kontrol ettiğiniz merkezi olmayan bir uygulamadan (dapp) kaynaklanan herhangi bir işlemin çağrı verilerine bazı ekstra baytlar eklemektir. Ekstra baytlar genellikle sözleşme çağrısına müdahale etmez (istisnalar olsa da), ancak işlemin gaz maliyetini çok küçük bir miktar artırır.
Bu ekstra baytlar zincir üzerinde saklanır ve Etherscan ya da diğer indeksleyicilerde görülebilir. Origin'in durumunda, bilinen bir bayt dizisi ile biten calldata'ya sahip işlemleri etiketlemek için Subsquid'i kullanıyoruz, böylece hangi işlemlerin dapp'ımızdan kaynaklandığını biliyoruz.
Bu teknik bir süredir NFT pazarları tarafından kullanılıyor ve işlem hacminin Blur veya Gem gibi toplayıcılara nasıl atfedilebileceğini gösteriyor. Reservoir gibi NFT altyapı projeleri bu işlevi doğrudan SDK'larına eklemiş olsa da bu teknik henüz DeFi içinde yaygın değildir.
Zincir üzerinde bir yönlendirici sistemi uygulamak nispeten basit bir süreçtir, ancak birkaç önemli husus vardır. Ne tür bir ilişkilendirme yapacağınıza karar vermeniz gerekir
1. Bir dizeyi hashleyerek 4 baytlık bir kod oluşturun, örneğin bytes4(keccak256("oeth.com")).
2. Daha sonra başvurulabilmesi için hash'i bir kod deposu veya elektronik tablo gibi bir yerde saklayın.
3. Dapp'inizi URL paramları aracılığıyla yönlendirme kodlarını kabul edecek şekilde değiştirin, örneğin mydapp.com/?code=abc12345 ve bu kodu localStorage'da saklayın
4. Dapp'iniz bir işlem gönderirken, yönlendirme kodunu calldata'ya ekleyin
5. İşlem çıkarıldıktan sonra, yönlendirme kodunun calldata'ya eklendiğini ve Etherscan'da veya eth_getTransactionByHash RPC çağrısı aracılığıyla görülebildiğini göreceksiniz.
Zincirleme yönlendirme takibi, geleneksel takip mekanizmalarına göre değişmezlik, şeffaflık ve yaygın web takibi sorunlarına karşı direnç gibi bazı cazip avantajlar sunar. Artan gaz maliyetleri ve potansiyel uyumsuzluklar gibi kendi zorluklarıyla birlikte gelse de, faydaları muhtemelen bu sınırlamalardan daha ağır basmaktadır ve teknik bir alternatif olarak değerlendirilmeye değerdir.