Nuevo en blockchain y contratos inteligentes. He estado investigando y me doy cuenta de que no puedo actualizar mi contrato inteligente de transacciones. ¿Es posible almacenar datos de la base de datos como una entrada en el libro mayor o en otro contrato inteligente al que solo yo actualizo que el contrato inteligente de transacciones puede acceder para extraer los datos?
Por ejemplo
El usuario quiere hacer un pago de donación a una organización. Su billetera necesita atraer todas las organizaciones posibles para que él elija de una base de datos que me gustaría descentralizar.
¿Dónde puedo almacenar las organizaciones y su dirección de billetera, así como actualizarlas o eliminarlas? También quiero agregar subsecciones de una organización y su dirección.
Por ejemplo
La billetera del usuario ingresa:
Leería el único que agrega organizaciones y las elimina. ¿Hay alguna manera de hacer todo esto descentralizado dentro de la cadena de bloques?
cris
Los contratos inteligentes pueden tener matrices y mapas como estructuras de datos que almacenan el estado de forma permanente en la cadena de bloques, y las funciones del contrato inteligente pueden modificarlos.
Para tu ejemplo, podrías usar algo como esto:
pragma solidity ^0.4.16;
contract MyOrgDatabase {
struct Organization {
address _where;
string _name;
}
Organization[] public availableOrgs;
address public owner = msg.sender;
function addOrg(address _where, string _name) {
require(msg.sender == owner);
availableOrgs.push(Organization(_where, _name));
}
}
Ese contrato tiene una availableOrgs
propiedad pública que cualquiera puede leer desde la cadena de bloques. Pero solo la dirección que creó el contrato (el owner
) puede agregar organizaciones a esa lista (probablemente también desee agregar funciones para eliminar organizaciones de la lista o cambiar la propiedad del contrato por un contrato con todas las funciones, pero eso debería darte una idea).
eduardo pereira
MedianocheRelámpago
address
campo de tipo es un tipo de tamaño específico para contener direcciones de Ethereum (generalmente números largos codificados en hexadecimal).Aniketh Saha
MedianocheRelámpago
MedianocheRelámpago