He estado probando GunJs durante un par de días y realmente lo estoy disfrutando. Como proyecto inicial, he seguido el video de la aplicación de chat de Fireship que tiene como objetivo crear su propio chat.
Aquí está el problema, ahora que he terminado el tutorial me gustaría crear mi propio chat. Sin embargo, por alguna razón, si obtengo un nodo de 'chat' dentro de mi propia aplicación, parece retomar el mismo nodo de 'chat' que el del tutorial que está en línea .
onMount(() => { // Get Messages in large chat db.get('chat') .map() .once(async (data, id) => { if (data) { // key for E2E - to do: change for web3 const key = '#foo'; var message = { //transform the data who: await db.user(data).get('alias'), what: (await SEA.decrypt(data.what, key)) + '', when: GUN.state.is(data, 'what'), }; if (message.what) { messages = [...messages.slice(-100), message] } } }) })Este también es el caso si cambio la clave de cifrado (entonces los mensajes simplemente se vuelven indefinidos). De esto surgen múltiples preguntas:
Incluso si he leído la mayoría de los documentos, parece que hay algo que me falta en mi comprensión de cómo el gráfico generalmente se separa entre las aplicaciones. Cualquier idea sobre cómo funciona esto sería muy apreciada.
¿Son únicos los nombres de los nodos gráficos dentro de todo GunDb?
Sí.
¿Cómo maneja los conflictos en los que dos aplicaciones basadas en armas llaman al mismo nombre de nodo?
tu no El resultado esperado será que se sobrescribirán entre sí.
¿Este problema generalmente se resuelve mediante el filtrado usando accesorios de 'encabezado'?
No creo que sea la forma correcta de hacerlo.
¿Cómo hago para que recoja solo mis datos?
Utilice su propio servidor de retransmisión.
Conclusión: gunDB realmente no se preocupa por quién obtiene / coloca los datos. Si desea proteger sus datos, use su propio servidor de retransmisión (no uno público) y coloque los datos en su espacio de usuario. el espacio de usuario es de solo lectura para el público, pero de lectura/escritura para el propietario.