C-toxcore: Proposal fitur: penjaga jaringan

Dibuat pada 18 Jan 2018  ·  11Komentar  ·  Sumber: TokTok/c-toxcore

Idenya sebagian besar menyerupai penjaga IRC, di mana seseorang menyiapkan klien proxy/relay yang tetap terhubung ke jaringan, sementara klien yang sebenarnya menempel/melepas dari penjaga untuk berkomunikasi. Itu terutama akan membantu adopsi untuk sistem seluler (misalnya, ponsel cerdas) yang mengalami pengurasan baterai dan biaya jaringan telekomunikasi dari DHT.

Hanya menyebutkan ini, karena saya memiliki setidaknya 3 orang meninggalkan jaringan semata-mata karena mereka terutama pengguna seluler dan menganggap kelemahan yang disebutkan di atas tidak dapat diterima.

P3 proposal

Komentar yang paling membantu

Anda harus dapat menulis pustaka bouncer yang memperlihatkan antarmuka tox.h sehingga klien dapat dibangun melawannya seolah-olah itu adalah toxcore, tanpa perlu mengubah kode klien apa pun. Misalnya, panggilan pertama yang dilakukan klien ke fungsi tox_bootstrap() di pustaka bouncer ini dapat diperlakukan sebagai address:port :pubkey dari daemon bouncer yang harus disambungkan oleh pustaka bouncer. Setelah koneksi dibuat, semua fungsi tox_ pada klien akan menjadi RPC untuk penjaga jarak jauh, misalnya klien yang melakukan tox_friend_send_message() akan mengirim RPC ke daemon yang memintanya untuk mengirim pijatan itu ke nama dan mengembalikan kode fungsi kembali kepada kami untuk memberikan kembali kepada klien. Pustaka bouncer dapat menggunakan apa pun yang diinginkan untuk berkomunikasi dengan daemon bouncer yang berjalan di server jauh, dari HTTPS biasa (yang mungkin Anda inginkan jika Anda ingin mengurangi penggunaan jaringan) hingga paket kustom toxcore.

Ya, saya setuju dengan @sudden6 , itu adalah sesuatu yang harus menjadi perpustakaan terpisah, bukan bagian dari perpustakaan toxcore.

Semua 11 komentar

Saya pikir fitur ini mungkin lebih baik diterapkan di bot dan bukan di perpustakaan inti.

Anda harus dapat menulis pustaka bouncer yang memperlihatkan antarmuka tox.h sehingga klien dapat dibangun melawannya seolah-olah itu adalah toxcore, tanpa perlu mengubah kode klien apa pun. Misalnya, panggilan pertama yang dilakukan klien ke fungsi tox_bootstrap() di pustaka bouncer ini dapat diperlakukan sebagai address:port :pubkey dari daemon bouncer yang harus disambungkan oleh pustaka bouncer. Setelah koneksi dibuat, semua fungsi tox_ pada klien akan menjadi RPC untuk penjaga jarak jauh, misalnya klien yang melakukan tox_friend_send_message() akan mengirim RPC ke daemon yang memintanya untuk mengirim pijatan itu ke nama dan mengembalikan kode fungsi kembali kepada kami untuk memberikan kembali kepada klien. Pustaka bouncer dapat menggunakan apa pun yang diinginkan untuk berkomunikasi dengan daemon bouncer yang berjalan di server jauh, dari HTTPS biasa (yang mungkin Anda inginkan jika Anda ingin mengurangi penggunaan jaringan) hingga paket kustom toxcore.

Ya, saya setuju dengan @sudden6 , itu adalah sesuatu yang harus menjadi perpustakaan terpisah, bukan bagian dari perpustakaan toxcore.

Saya bahkan tidak berpikir sejauh perpustakaan RPC, tetapi lebih seperti bot yang hanya menyimpan pesan dan meneruskannya pada perintah teks.

Bagaimana Anda berkomunikasi dengan bot? Jika itu adalah bot Tox, tidakkah Anda perlu terhubung ke DHT, yang ingin dihindari zer0def?

@sudden6 Saya lebih memikirkan tentang bouncer IRC daripada bot. Tidak yakin apakah Anda terbiasa dengan penjaga IRC, jadi bayangkan saja klien qTox, yang merupakan GUI + toxcore, tetapi alih-alih menjalankan GUI dan toxcore di mesin lokal Anda, Anda masih menjalankan GUI yang berjalan di mesin Anda tetapi toxcore GUI berkomunikasi dengan berjalan di server jauh. Anda dapat mencapai ini dengan menulis pustaka yang berpura-pura menjadi toxcore, sehingga qTox akan mengkompilasinya tanpa perubahan kode apa pun yang diperlukan, tetapi sebenarnya itu bukan toxcore melainkan pustaka yang berkomunikasi dengan instance toxcore jarak jauh.

Tetapi bukankah ini diimplementasikan dalam node penuh yang digunakan klien seluler melalui mode TCP? Modus TCP tidak berpartisipasi dalam jaringan DHT untuk pemahaman terbaik saya.

@dingosan Anda masih harus selalu terhubung ke node TCP. Sejauh yang saya mengerti, penjaga juga akan menyimpan pesan?

@ tiba-tiba6 mungkin harus menjaga konsistensi log, jika tidak menjalankan klien Anda sebagai simpul TCP mungkin sudah cukup

Hai, Saya melakukan beberapa pekerjaan seperti ini tanpa memodifikasi protokol toxcore.
Ini bukan bouncer seperti IRC, tapi lebih seperti bridge.
Ini menggunakan gRPC/websock untuk mendukung klien program asli dan aplikasi web.
Bridge menyimpan semua pesan saat online. Dan semua klien bridge dapat menerima pesan yang disinkronkan.
Klien dapat menarik semua pesan riwayat, dan beberapa klien dapat menyinkronkan pesan satu sama lain dengan bantuan jembatan penyebab.

Ini sedang dalam proses, masih demo, siapa pun yang tertarik dapat melihat:
https://github.com/envsh/tox-homeserver

Masalahnya sekarang grup tersebut bersifat sementara, tidak ada cara yang baik untuk menggabungkan pesan grup setelah membuat ulang grup.

Rapi :) terdengar luar biasa!

Masalahnya sekarang grup tersebut bersifat sementara, tidak ada cara yang baik untuk menggabungkan pesan grup setelah membuat ulang grup.

Kami memiliki masalah yang sama di qTox. Ini akan dimungkinkan dengan grup persisten, karena mereka memiliki ID unik. Cara lain adalah dengan memperlakukan setiap grup yang dibuat sebagai terpisah dan menampilkan semuanya sebagai riwayat terpisah kepada pengguna. Seperti ini:

26.05.2018 12:45 Tox Public Chat
26.05.2018 11:31 #toktok
26.05.2018 10:15 meeting
25.05.2018 08:10 meeting
24.05.2018 01:20 Tox Public Chat

Tidak terlalu bagus, tapi masih bisa digunakan. Beberapa orang mungkin bahkan lebih suka melihat sejarah dengan cara ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat