Desarrollo del sistema de matriz de Forsage | Construcción de matriz de contrato inteligente de Forsage

El contrato inteligente es una nueva tecnología que solo se puede realizar a través de blockchain. Los contratos estándar ordinarios cubren los términos de los acuerdos entre las partes y, a menudo, se hacen cumplir por ley; los contratos inteligentes son digitales, se almacenan en la cadena de bloques y usan códigos encriptados para hacer cumplir el acuerdo.
En otras palabras, los contratos inteligentes son solo programas de software y, como todos los programas, se ejecutan exactamente como pretendía el programador. Los contratos inteligentes son como aplicaciones de programación: "Una vez que aparecen, ejecútelos".
Forsage es un esquema de cifrado de MLM popular que permite a los usuarios ganar moneda Ethereum de las siguientes formas con 2 estructuras de recomendación de matriz. El forraje es un ecosistema descentralizado basado en contratos inteligentes. Haga que la configuración técnica esté completamente disponible y automatizada, para que sea segura y estable.
El programa Forsage utiliza un esquema de regalos con una estructura de matriz binaria. Hay 2 tipos de matriz X3 y X4. Puede elegir montar en bicicleta con cualquiera. Para comenzar a usar cualquier bucle de matriz, debe pagar una tarifa de 0.05ETH (tarifa de inscripción) y luego comenzar las referencias a través de su enlace de referencia.
El tamaño de la matriz utilizada en el ciclador Forsage es 3 × 1 y 2 × 2. La matriz 3 × 1 es de naturaleza muy simple y solo necesita llenar tres posiciones. La matriz 2 × 2 comienza desde dos posiciones en la primera capa y luego se expande a cuatro posiciones en la segunda capa. Los puestos se cubren mediante la contratación directa e indirecta de miembros de Forsage. Una vez que se llenan todas las posiciones en la matriz, se activa la comisión recurrente. También se ingresará una nueva matriz del mismo tamaño en la posición de la matriz.
Este contrato inteligente también se conoce como el proyecto de matriz de cadena de bloques de Ethereum y debe proporcionar a cualquier participante "la capacidad de realizar transacciones personales y comerciales directamente". El sitio web en sí es (como mucho) vago, tratando de atraer a otros al campo de las criptomonedas con los términos conocidos de este activo digital y tecnología blockchain. Más o menos, parece entenderse mejor de lo que implica el uso de estos términos.
El contrato inteligente del proyecto de matriz compartida global distribuida es público y siempre se puede ver en la cadena de bloques Ethereum.
Análisis de las ventajas de los contratos inteligentes DAPP
1. No se puede manipular
Forsage implementó un contrato inteligente autoejecutable en la cadena de bloques Ethereum. El contrato existe para siempre y nadie puede modificarlo. El acceso indefinido es una función inherente de la programación en contratos inteligentes para permitir la participación continua en proyectos matriciales.
2. El pago descentralizado de igual a igual en la cadena
es una pasarela de pago de contrato inteligente que puede facilitar los pagos de comisiones de igual a igual entre los participantes de su plan, y el 100% ingresará directamente en las billeteras descentralizadas de los participantes.
3. Autonomía
Un proyecto de matriz descentralizada de crowdfunding, diseñado específicamente para estimular el reposicionamiento global del ecosistema criptográfico al proporcionar una introducción perfecta para los recién llegados, lo que permite a Ethereum obtener el consenso de más personas. (Sin organización jerárquica)
4. Transparencia y anonimato Los
datos del proyecto son transparentes y abiertos, las estadísticas y el historial de transacciones de sus socios se pueden consultar públicamente en la cadena de bloques Ethereum. Los monederos descentralizados pueden participar de forma anónima. (Transparencia de datos, anonimato de riqueza)
5. Garantía de transacción Los
nodos de red registran de manera irrevocable y almacenan extensamente el historial de transacciones de todos los socios de la red de Forsage en la cadena de bloques Ethereum

solidez del pragma> = 0,4,23 <0,6,0;

contrato SmartMatrixForsage {

struct User {
    uint id;
    address referrer;
    uint partnersCount;
    
    mapping(uint8 => bool) activeX3Levels;
    mapping(uint8 => bool) activeX6Levels;
    
    mapping(uint8 => X3) x3Matrix;
    mapping(uint8 => X6) x6Matrix;
}

struct X3 {
    address currentReferrer;
    address[] referrals;
    bool blocked;
    uint reinvestCount;
}

struct X6 {
    address currentReferrer;
    address[] firstLevelReferrals;
    address[] secondLevelReferrals;
    bool blocked;
    uint reinvestCount;

    address closedPart;
}

uint8 public constant LAST_LEVEL = 12;

mapping(address => User) public users;
mapping(uint => address) public idToAddress;
mapping(uint => address) public userIds;
mapping(address => uint) public balances; 

uint public lastUserId = 2;
address public owner;

mapping(uint8 => uint) public levelPrice;

event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId);
event Reinvest(address indexed user, address indexed currentReferrer, address indexed caller, uint8 matrix, uint8 level);
event Upgrade(address indexed user, address indexed referrer, uint8 matrix, uint8 level);
event NewUserPlace(address indexed user, address indexed referrer, uint8 matrix, uint8 level, uint8 place);
event MissedEthReceive(address indexed receiver, address indexed from, uint8 matrix, uint8 level);
event SentExtraEthDividends(address indexed from, address indexed receiver, uint8 matrix, uint8 level);


constructor(address ownerAddress) public {
    levelPrice[1] = 0.025 ether;
    for (uint8 i = 2; i <= LAST_LEVEL; i++) {
        levelPrice[i] = levelPrice[i-1] * 2;
    }
    
    owner = ownerAddress;
    
    User memory user = User({
        id: 1,
        referrer: address(0),
        partnersCount: uint(0)
    });
    
    users[ownerAddress] = user;
    idToAddress[1] = ownerAddress;
    
    for (uint8 i = 1; i <= LAST_LEVEL; i++) {
        users[ownerAddress].activeX3Levels[i] = true;
        users[ownerAddress].activeX6Levels[i] = true;
    }
    
    userIds[1] = ownerAddress;
}

function() external payable {
    if(msg.data.length == 0) {
        return registration(msg.sender, owner);
    }
    
    registration(msg.sender, bytesToAddress(msg.data));
}

function registrationExt(address referrerAddress) external payable {
    registration(msg.sender, referrerAddress);
}

Supongo que te gusta

Origin blog.csdn.net/T13242772558/article/details/109286983
Recomendado
Clasificación