Développement du système Smart Contract Dapp (plan)

DAPP s'appelle une application distribuée, et DAPP est une application basée sur la technologie blockchain. DApp fonctionne sur les réseaux P2P de différents ordinateurs, pas sur un seul ordinateur. Les DApp existent depuis le début des réseaux P2P. Il s'agit en fait d'un programme logiciel conçu pour fonctionner sur Internet d'une manière qui n'est contrôlée par aucune entité. Toutes les données sur les applications décentralisées sont stockées dans un registre distribué. Il est impossible de casser un réseau décentralisé.
Pour devenir un DApp blockchain, les conditions suivantes doivent être remplies: l'
application doit être complètement open source: elle doit fonctionner de manière autonome, et aucune entité ne contrôle la plupart de ses tokens. L'application peut ajuster son protocole en fonction des améliorations proposées et des commentaires du marché, mais ses modifications finales doivent être basées sur le consensus de l'utilisateur.
Données d'application et enregistrements d'opérations: doivent être cryptés et stockés dans des nœuds blockchain publics et décentralisés pour éviter tout point central de défaillance.
L'application doit utiliser la crypto-monnaie (bitcoin ou son jeton système) et fournir certaines incitations symboliques aux mineurs.
L'application doit générer des jetons basés sur un algorithme de cryptage standard comme preuve de valeur, et le nœud contribue à l'application (Bitcoin utilise un algorithme de preuve de travail).

  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);
}

Je suppose que tu aimes

Origine blog.csdn.net/m0_51754086/article/details/109290032
conseillé
Classement