Construir una aplicación paso a paso y descentralizada (Ethereum Blockchain Dapp) en más de 128 palabras – Parte 1

Este artículo tiene como objetivo explicar los conceptos clave de blockchain, dapp (aplicación descentralizada), contrato inteligente y tokenización.

Blockchain

Una cadena de bloques es una base de datos descentralizada, se comparte entre varios nodos que tiene una copia de esa base de datos.

Bloquear

Una solicitud para que un usuario agregue datos a la base de datos es una transacción. Las transacciones se agrupan y se agregan a un bloque en la cadena de bloques.

Tenga en cuenta que todos los datos de este registro compartido, la cadena de bloques, están protegidos por hash criptográfico y validados por un algoritmo que es un consenso entre los usuarios de la red.

Concepto de bloque en una cadena de bloques

Menor

Los menores son usuarios de la red que utilizan un programa para validar nuevas transacciones y registrarlas en la cadena de bloques.

Ejemplo de granja de un minero equipada para calcular transacciones en la cadena de bloques (a través de la resolución de problemas matemáticos y criptográficos complejos), los mineros reciben una "recompensa" por su trabajo.

Blockchain Ethereum

Ethereum es una plataforma de código abierto que utiliza la tecnología blockchain para ejecutar aplicaciones descentralizadas (dapps).

Esta plataforma se basa en la creación de Smart Contract, es un programa que contiene datos y funciones a las que llaman las aplicaciones.

Basado en la cadena de bloques no hay una base de datos centralizada, pero un registro compartido y mantenido en peer to peer por los usuarios.

Esta tecnología se puede utilizar para intercambiar divisas o para crear aplicaciones descentralizadas que llaman a contratos inteligentes y almacenan sus datos en bloques de la cadena de bloques.

Cadena de bloques pública

En una cadena de bloques pública no hay permiso, todo el mundo puede unirse a la red blockchain, lo que significa que puede leer, escribir o participar con una cadena de bloques pública.

Las cadenas de bloques públicas están descentralizadas, nadie tiene control sobre la red y permanecen seguras porque los datos no se pueden cambiar una vez validados en la cadena de bloques.

Plataformas blockchain públicas como Bitcoin, Ethereum, Litecoin son plataformas blockchain no autorizadas, tratando de aumentar y proteger el anonimato del usuario.

Cadena de bloques privada

En una cadena de bloques privada hay restricciones para filtrar quién puede participar en la red y qué transacciones.

Las cadenas de bloques privadas tienden a estar asociadas con herramientas de administración de identidades o con una arquitectura modular en la que puede conectar su propia solución de administración de identidades.

Puede ser un proveedor de servicios de solución de OAuth que usa Facebook, LinkedIn, por ejemplo,…

Token Ethereum

Los tokens o tokens de Ethereum son activos digitales que se construyen a partir de la cadena de bloques Ethereum. Estos son tokens que atestian que tiene un valor (económico, por ejemplo). Estos tokens se basan en la infraestructura existente de Ethereum.

Para almacenar, recibir, enviar éter (criptomoneda en el etereum blockchain) o tokens (que son tokens que son activos digitales), necesita al menos una cuenta. La forma más fácil de crear una cuenta es:

Es posible crear su propio token para crear su aplicación descentralizada que utiliza el ethereum blockchain público.

Tokenización de activos financieros

La tokenización es un método que convierte los derechos de un activo (financiero, inmobiliario…) en tokens digitales (tokens).

Ejemplo para un apartamento de 400.000 euros. Tokenizarconsiste en convertirlo en 400.000 tokens (el número es arbitrario, el problema puede ser de 4 millones o 100 fichas).

Los tokens se emiten en una especie de plataforma que admite contratos inteligentes, por ejemplo en Ethereum. El objetivo es que los tokens se intercambien libremente.

Cuando compras un token, en realidad compras una parte de la propiedad del activo (desde el apartamento de 400.000 euros).

Compra 200.000 fichas y posees la mitad de los activos. El Blockchain es un registro compartido que es inmutable, garantiza que una vez que compre tokens, nadie pueda eliminar su propiedad.

Aplicación descentralizada

Las aplicaciones descentralizadas son aplicaciones que se comunican con la cadena de bloques. La interfaz de aplicación descentralizada es similar a cualquier sitio web o aplicación móvil.

El contrato inteligente representa la lógica central de la aplicación descentralizada.

Ilustración de una DApp que utiliza una cadena de bloques con contratos inteligentes combinados con los saqueadores de Swarm y Whisper.
Fuente: Intercambio de Ethereum Stack

Contrato inteligente

Los contratos inteligentes contienen toda la lógica empresarial de una DApp. Son responsables de leer y escribir datos en la cadena de bloques, por lo que ejecutan la lógica de negocios.

Los contactos inteligentes se escriben en un lenguaje de programación llamado SOLIDITY https://solidity.readthedocs.io, similar a Javascript.

Para leer sobre el tema:

ANGULAR en menos de 128 palabras – TypeScript – Angular Part 8

Este artículo sigue a los primeros siete sobre el tema ANGULAR y trata con el lenguaje TypeScript:

Plantillas e interpolación

La interpolación es la incorporación de expresiones en texto marcado. De forma predeterminada, la interpolación utiliza llaves dobles, 'y 'a' como delimitador.

<h3>Número de cliente: 'numbereroClient'</h3>

Ejemplo de una directiva con iteración:

<li *ngfor="let client of listeClients">'customer.name'</li>

Servicios:

Los servicios permiten desacoplar el componente de la llamada a un servicio, por lo que son reutilizables.

ng generar servicio al cliente
importación - Inyectable - de '@angular/núcleo';

@Injectable
  siempre: 'raíz',
})
clase de exportación ClientService

  constructor()

}

La lógica se desacopla del servicio que es inyectable a través de la inyección de adicción.

Inyección de adicciones

Ejemplo de inyección de la dependencia CustomerService en un componente CustomerComponent

importación - Componente, OnInit - de '@angular/núcleo';

importar 'Héroe' desde '.. /héroe';
importar 'HeroService' desde '.. /hero.service';
importar 'MessageService' desde '.. /message.service';

@Component
  selector: 'app-heroes',
  templateUrl: './heroes.component.html',
  StyleUrls:['./heroes.component.css']
})
la clase de exportación ClientComponent implementa OnInit

...

  getClients(): void
    this.clientService.getClients();
  }
}

ANGULAR en menos de 128 palabras – TypeScrip – Angular Parte 7

Este artículo sigue los primeros seis sobre el tema ANGULAR y trata con el lenguaje TypeScript:

Fabricante:

El generador es el método llamado para crear la instancia de un objeto

Punto de clase
    x: número;
    y: número;

    constructor (x: número, y: número)
        this.x x;
        this.y - y;
    }
    añadir (punto: Punto)
        devolver nuevo Punto (this.x - point.x, this.y - point.y);
    }
}

var p1 - nuevo punto (30, 5);
var p2 - nuevo punto (14, 21);
var p3 - p1.add (p2);

Ajuste opcional:

Si una configuración se declara opcional, todos los parámetros declarados a su derecha son opcionales. Ejemplo de la configuración de nombre en el fabricante.

Punto de clase
    x: número;
    y: número;
    name: string;

    constructor (x: number, y: number, name?:string)
        this.x x;
        this.y - y;
        this.name - nombre;
    }
}

Visibilidad:

De forma predeterminada, la visibilidad de la configuración es pública, puede usar "modificadores de acceso" para cambiarla.

Punto de clase
    x privado: número;

Los modificadores de acceso se pueden colocar en métodos, variables y propiedades.

Punto de clase
...
     private add (punto: Punto)
        devolver nuevo Punto (this.x - point.x, this.y - point.y);
    }
}
Punto de clase
...
    constructor (privado x: número, número y privado)
...

Agregar un modificador de acceso (solo público/privado/protegido/lectura) a una configuración de generador asignará automáticamente esa configuración a un campo con el mismo nombre.

Getter y setter:

TypeScript admite getters/setters como una forma de interceptar el acceso a un miembro de un objeto.

Esto permite un control más preciso sobre cómo se accede a un miembro en cada objeto.

Const lengthMaxDuNom - 10;

Clase salarial
    _nomComplet privada: string;

    get nameComplet(): tanga
        devolver this._nomComplet;
    }

    nombre setComplet (newName: string)
        if (newName - newNom.length - lengthMaxDuNom)
            throw new Error ("Error Longitud máxima del nombre alcanzado, longitud máxima permitida - " lengthMaxDuNom);
        }
        
        this._nomComplet - newName;
    }
}

deje que salarie - nuevo Salarie();
salarie.nameComplet - "Toto Hello";
si (employee.nomComplete)
    console.log (employee.nameComplete);
}

Referencias a leer:

ANGULAR en menos de 128 palabras – Componentes angulares – Parte 6

Construcción de aplicaciones de bloques

Los componentes son como bloques de creación en una aplicación Angular.

Los componentes se definen mediante el decorador de @component. Un componente tiene un selector, un modelo, un estilo y otras propiedades, con las que especifica los metadatos necesarios para procesar el componente.

Ejemplo de arquitectura de bloques de componentes Angular

AppComponent es el componente raíz de nuestra aplicación. Esta es la base del árbol de componentes de aplicación Angular.

https://angular.io/guide/architecture-modules

Para generar un componente, el comando es:

ng g componente MyComponent

Componente de muestra:

importación - Componente - de "@angular/núcleo";

@Component
  selector: "artículos"
  plantilla: "<h2>Artículo</h2>"
})
clase de exportación ArticlesComponent
}

Tenga en cuenta que si no ha utilizado el control de generación de componentes, debe agregar manualmente el componente al archivo src/app/app.module.ts en las importaciones.

importación - BrowserModule - desde "@angular/plataforma-navegador";
importación - NgModule - desde "@angular/core";
importación - AppComponent - desde "./app.component";
importación - ArticlesComponent - de "./articles.component";

@NgModule
  Declaraciones[AppComponent, ArticlesComponent]:
  Importacione[BrowserModule, ArticlesComponent]s:
  Proveedores[]:
  Bootstrap:[AppComponent]
})
clase de exportación AppModule

ANGULAR en menos de 128 palabras – TypeScript – Parte 5

Este artículo sigue a los cuatro primeros sobre el tema ANGULAR y trata con el lenguaje TypeScript:

Uso de clases

Al igual que en otros idiomas, una clase permite crear objetos y reúne variables y funciones que están fuertemente relacionadas "Altamente relacionadas"

Ejemplo de clase

Persona de clase
  name: string;
  nombre: string;

  Para ser más
    console.log ('Mi nombre es'- this.name' - this.prenom);
  }
}

Módulos:

El almacenamiento en clase se puede hacer en archivos separados, en este caso es una instrucción de módulo.

Los módulos hacen que la clase sea accesible fuera del archivo. La clase debe exportarse primero a través de "export" para ser un ejemplo visible de person.ts:

clase de exportación Persona
  name: string;
  nombre: string;

  Para ser más
    console.log ('Mi nombre es'- this.name' - this.prenom);
  }
}

ejemplo de archivo hand.ts que importa la clase Person:

importación - Persona - desde "./persona";

dejar que la persona - nueva persona();

Tenga en cuenta que hay módulos Angular que se importarán con la mención @angular ejemplo:

importación - Componente - de '@angular/núcleo';

relacionado:

https://www.typescriptlang.org/docs/handbook/modules.html

https://www.angularchef.com/recette/50/

ANGULAR en menos de 128 palabras – TypeScript – Parte 4

Este artículo sigue a los tres primeros sobre el tema ANGULAR y trata con el lenguaje TypeScript:

Concepto de "tipo de aserción"

La aserción de tipos es una forma de indicar al compilador TypeScript qué tipo de variable es. La aserción de tipos es similar a la conversión de tipos en otros lenguajes, pero en TypeScript, es solo una función de compilación.

let testComplete: any - "Test Assertion type";
let test -<string>(prueba completa) subcadena (0.4);</string>
console.log(s);

Otras puntuaciones:

y prueba completa: any - "Test Assertion type";
let test - (testComplete as string).substring (0.4);
console.log(s);

Función de flecha:

El uso de la flecha de función elimina la necesidad de utilizar la palabra clave "función." Los ajustes se cambian <> entre corchetes y la expresión de función se coloca entre corchetes.

let addition - (a: number, b: number): number): number
            devolver a b;
}
adición (1, 2);

Anotación en línea:

En TypeScript, las anotaciones de tipo en línea permiten declarar un objeto para cada una de las propiedades del objeto.

Otros usos:

let adición - (pairDeNombre - numberA: number,numberB: number' number: number: number
            devolver a b;
}

Interfaz:

Las interfaces le permiten asignar un nombre a estos tipos y son una forma eficaz de definir contratos en el código, así como contratos con código fuera del proyecto.

Interfaz de puntos
  x: número,
  y: número
}

Enlace a la documentación de TypeScript: https://www.typescriptlang.org/docs/home.html