Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

222
Visualizações
Ejemplos simples de espacio público, espacio de usuario y espacio congelado en gun db

Gun parece genial, ¡tanto útil como usable! Sin embargo, me cuesta entender la diferencia entre una ubicación de espacio público , una ubicación de espacio de usuario y una ubicación de espacio congelado . Mis intentos en los ejemplos más simples posibles son:

Espacio publico

 let gun = Gun() gun.put('hello') // public space put anyone can edit?

Espacio de usuario

 let user = gun.user() user.create('Bob','password123',console.log) user.auth('Bob' ,'password123',console.log) user.get('test').put("Bob's text") let user2 = gun.user() user2.create('Eve','password456',console.log) user2.auth('Eve' ,'password456',console.log) user2.get('test').put("Eve's text") gun.get('test').once(console.log) // Should this result in separately indexed entries in the db? // Is the verification built in or up to the app developer?

Espacio Congelado

// Del ejemplo :

 var data = "hello world"; var hash = await SEA.work(data, null, null, {name: "SHA-256"}); gun.get('#').get(hash).put(data); //Would not this hash key's value be replaceable by another user? Is the onus on the app developer to check result of returned result (and remove peers that send bad info)?

Suponiendo que un usuario pueda elegir cualquier servidor de retransmisión (incluidos los que juegan aleatoriamente con los datos), qué parte de la autenticación (espacio del usuario) y la identificación del contenido (congelado) se realiza en el protocolo GUN, y cuánto depende de la aplicación desarrollador(es)?

¿Alguien puede mejorar los ejemplos anteriores?

EDITAR

De los documentos:

Esto es útil, porque te permite verificar que los datos no hayan sido cambiados, incluso si están en un lugar público. Y al usar SEA con GUN, evita que los compañeros cambien los datos si se usa alguna combinación de nombre/tecla de '#'+hash.

Parece que el direccionamiento del contenido, el espacio congelado , está integrado.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Espacio publico

Cualquiera puede editar.

 let gun = Gun() gun.get('foo').put({hello: 'world'})

Documentos: https://gun.eco/docs/Hello-World


Espacio de usuario (o espacio clave)

Solo se pueden poner datos firmados con la clave del usuario. Utiliza MAR.

El operador ~ se utiliza para acceder al espacio de usuario. Gun interpreta esto como " solo permitir que los datos firmados por la clave que sigue a ~ se coloquen aquí ".

 let Bob = await SEA.pair(); await gun.user().auth(Bob) gun.get('~'+Bob.pub).get('test').get('TestPropery').put("Hello from Bob",console.log) let Eve = await SEA.pair() await gun.user().auth(Eve) // comment this out and below line will fail, because authorised user Bob not Eve gun.get('~'+Eve.pub).get('test').get('TestPropery').put("Hello from Alice",console.log)

Documentos: https://gun.eco/docs/SEA#quickstart


Espacio congelado (espacio hash, espacio de ID de contenido)

Se utiliza el operador # . Gun interpreta algo como " Permitir que los datos se coloquen aquí solo si su hash coincide con el objeto hash adjunto".

 var data = "hello world"; var hash = await SEA.work(data, null, null, {name: "SHA-256"}); gun.get('#').get(hash).put(data);

De documentos: https://gun.eco/docs/Content-Addressing


También he observado que puedes tener un espacio congelado encima del espacio del usuario, pero no al revés:

 //works (content hash id enforced) gun.get(pub).get('#').get('bR+eukWF7mYgxibHHRc6tJ+G6PIMEB91O1WVEbAYuWU=').put('NJViiTklbpVb2mmXmRel1cZ0F5lm6ZSTAjYg3RWhqkU.qbu9aOlUXGbrFwqZqeLdw2KiMlpj3QMbezmGRm4u7l0') //you can't append data to a # obj like this gun.get('#').get('bR+eukWF7mYgxibHHRc6tJ+G6PIMEB91O1WVEbAYuWU=').get('NJViiTklbpVb2mmXmRel1cZ0F5lm6ZSTAjYg3RWhqkU.qbu9aOlUXGbrFwqZqeLdw2KiMlpj3QMbezmGRm4u7l0').put({'something':'else'})
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda