Desarrollo del sistema Smart Contract Dapp (plan)

DAPP se denomina aplicación distribuida y DAPP es una aplicación basada en la tecnología blockchain. DApp se ejecuta en redes P2P de diferentes computadoras, no en una sola computadora. Las DApps han existido desde el comienzo de las redes P2P. En realidad, es un programa de software diseñado para ejecutarse en Internet de una manera que no está controlada por una sola entidad. Todos los datos sobre aplicaciones descentralizadas se almacenan en un libro mayor distribuido. Es imposible romper una red descentralizada.
Para convertirse en una DApp de blockchain, se deben cumplir las siguientes condiciones: la
aplicación debe ser completamente de código abierto: debe ejecutarse de forma autónoma y ninguna entidad controla la mayoría de sus tokens. La aplicación puede ajustar su protocolo según las mejoras propuestas y los comentarios del mercado, pero sus cambios finales deben basarse en el consenso del usuario.
Los datos de la aplicación y los registros de operaciones: deben cifrarse y almacenarse en nodos de blockchain descentralizados y públicos para evitar cualquier punto central de falla.
La aplicación debe usar criptomonedas (bitcoin o su token de sistema) y proporcionar ciertos incentivos de token a los mineros.
La aplicación debe generar tokens basados ​​en un algoritmo de encriptación estándar como prueba de valor, y los nodos están contribuyendo a la aplicación (Bitcoin usa un algoritmo de prueba de trabajo).

  function registration(address userAddress, address referrerAddress) private {
    require(msg.value == 0.05 ether, "registration cost 0.05");
    require(!isUserExists(userAddress), "user exists");
    require(isUserExists(referrerAddress), "referrer not exists");
    
    uint32 size;
    assembly {
        size := extcodesize(userAddress)
    }
    require(size == 0, "cannot be a contract");
    
    User memory user = User({
        id: lastUserId,
        referrer: referrerAddress,
        partnersCount: 0
    });
    
    users[userAddress] = user;
    idToAddress[lastUserId] = userAddress;
    
    users[userAddress].referrer = referrerAddress;
    
    users[userAddress].activeX3Levels[1] = true; 
    users[userAddress].activeX6Levels[1] = true;
    
    
    userIds[lastUserId] = userAddress;
    lastUserId++;
    
    users[referrerAddress].partnersCount++;

    address freeX3Referrer = findFreeX3Referrer(userAddress, 1);
    users[userAddress].x3Matrix[1].currentReferrer = freeX3Referrer;
    updateX3Referrer(userAddress, freeX3Referrer, 1);

    updateX6Referrer(userAddress, findFreeX6Referrer(userAddress, 1), 1);
    
    emit Registration(userAddress, referrerAddress, users[userAddress].id, users[referrerAddress].id);
}

Supongo que te gusta

Origin blog.csdn.net/m0_51754086/article/details/109290032
Recomendado
Clasificación