WEB3DEV

Cover image for Como construir sua própria blockchain usando Komodo
Rafael Ojeda
Rafael Ojeda

Posted on

Como construir sua própria blockchain usando Komodo

Como construir sua própria blockchain usando Komodo

Blockchain Komodo Criptomoeda Startup em Blockchain Desenvolvimento em Blockchain

Quer construir sua própria chain de ativos e token? É mais fácil do que você imagina, graças à Komodo.

Image description

Deseja construir sua própria blockchain? É mais fácil do que parece.

Hoje, vamos rever como construir uma blockchain privada usando a plataforma Komodo.

O que é Komodo?

Komodo é uma plataforma de desenvolvimento de blockchain com características poderosas. (Hyperledger e Quorum são tecnologias similares).

A plataforma Komodo tem sua própria blockchain com uma moeda chamada KMD. Você pode rodar sua própria blockchain (chain de ativos) na plataforma Komodo, utilizando a chain de ativos Komodo como modelo.

História

Em 2016, o Desenvolvedor Principal da Komodo, James 'jl777' Lee, estava trabalhando em um projeto chamado SuperNET on Nxt, uma das primeiras plataformas de blockchains do mundo.

A equipe da Nxt implementou grandes mudanças na base de código sem consultar nenhum dos projetos construídos sobre a plataforma Nxt. As mudanças quebraram a tecnologia back-end da SuperNET.

Este evento mostrou as limitações do modelo de plataforma de chain única. A jl777 emitiu uma Declaração de Independência em resposta e anunciou o projeto Komodo. A Komodo ICO levantou um total de 2.639 BTC em novembro de 2016.

Por que Komodo? (E, outras considerações sobre a plataforma)

Deixar analisar as plataformas de blockchain. Bitcoin foi a primeira geração de blockchains otimizadas para segurança e armazenamento de valor na chain. Em seguida vieram Etherum, Waves e Nxt, onde qualquer desenvolvedor podia construir aplicações descentralizadas enquanto compartilhava uma única chain. Entretanto, estas plataformas têm problemas como escalabilidade e interoperabilidade.

Komodo é uma plataforma de terceira geração, onde você pode rodar a partir de sua própria blockchain (uma como o ethereum).

Se você estiver interessado no desenvolvimento da blockchain Ethereum, a Crowdbotics tem um novo andaime ERC-20 que você implanta gratuitamente usando o construtor de aplicativos Crowdbotics. Experimente.

A Komodo é segura e cheia de características de última geração em blockchain. Cada chain construída usando Komodo recebe todas as características da blockchain Komodo e suporta tecnologias como contratos inteligentes, privacidade com conhecimento zero e trocas atômicas. A Komodo dá prioridade a 4 propriedades chave

  1. Segurança
  2. Escalabilidade
  3. Interpretabilidade
  4. Adaptabilidade

Delayed proof of work (dPoW)

A Komodo utiliza o dPoW como seu protocolo de consenso. O dPoW da Komodo aproveita o hashrate da rede Bitcoin para segurança. A cada 10 minutos, o instantâneo da blockchain do komodo é salvo na blockchain do Bitcoin como backup. Este recurso de segurança também se estende às chains de ativos que estão sendo construídas em Komodo. Assim, a Komodo tira um instantâneo de todas as chains*s de ativos e também do seu próprio estado. Este instantâneo é gravado em um bloco na *blockchain Bitcoin. Este processo é chamado de notarização. Há 64 nós sempre correndo para preencher completamente este propósito.

O que é a chain de ativos?

De acordo com o site Komodo:

"A chain KMD serve como um modelo mestre a partir do qual todas as outras blockchains em nosso ecossistema é gerada.
As Blockchains independentes na plataforma Komodo são chamadas de chains de ativos, e cada uma delas é um fork em tempo de execução da chain KMD. Isso significa que cada blockchain é dotada de características de privacidade à prova de conhecimento zero e a proteção da segurança dPoW".

Chains de ativos são chains privadas que possuem todas as características da chain Komodo, mas que são independentes das outras chains de ativos. A melhor parte é que um único projeto pode executar múltiplas chains de ativos. Elas também podem se sincronizar e conversar umas com as outras.

Benefícios de ter sua própria chain

Há muitos benefícios em ter sua própria cadeia. Vamos discutir alguns deles.

  • Escalabilidade - Atualmente o ethereum pode processar cerca de 15 transações por segundo. Cada contrato inteligente e DApp rodando no Ethereum está vinculado a esta velocidade de transação compartilhada. Isto é problemático, pois remove aplicações da equação que precisam de transações de alto volume.
  • Segurança- Um bug na plataforma principal pode trazer o "inferno santo" em todo o ecossistema. Se você estiver executando uma chain de ativos privados, você pode se isolar destes problemas. Interoperabilidade - Dois tokens na mesma plataforma não podem ser negociados um com o outro sem o token da plataforma principal. Por exemplo, vamos assumir que os tokens A e B estão rodando na plataforma principal que é o token Z. Você não pode trocar A → B sem A → Z →B. A Komodo resolveu este problema usando trocas atômicas.
  • Outra aplicação- A Komodo atualmente suporta 20K transações por segundo e está trabalhando para escalar para mais de um milhão de transações por segundo. Isto abre uma porta para mais casos de uso que podem ser cobertos usando a plataforma Komodo.
  • Liberdade de personalização - Como sua blockchain pertence a você, os limites da plataforma são determinados apenas por sua imaginação. Um desenvolvedor experiente pode alavancar a plataforma e construir mais customização em sua chain de ativos.

Como criar sua Blockchain (Chain de ativos)

Agora, vamos construir nossa própria chain chamada "Dragão" (não consigo pensar em nenhum nome melhor).

Pré-requisito

  • Compreensão básica da linha de comando
  • Entendimento básico do trabalho em rede
  • Entendimento básico de Git

Requisitos de Hardware

  • 2 Computadores com a capacidade de abrir portas.
  • Pelo menos 4GB de RAM cada
  • Pelo menos 2 núcleos de CPU cada
  • Sistema operacional de 64 bits (Ubuntu 16.04 recomendado)
  • Pelo menos 20 GB de memória secundária

Antes de estabelecer nossa própria chain de ativos, precisamos instalar o Komodo em si, pois o Komodo codebase funciona como um modelo para nossa chain de ativos.

Instalando Komodo

Vamos instalar o komodo. Vou usar a nuvem do Google para este fim. Se você tem dois sistemas, então você pode usá-los. Precisamos instalar Komodo em ambos. Estou usando um sistema Debian para isso. Se você estiver usando windows ou OSX, siga as instruções aqui e aqui de acordo.

sudo apt-get update
sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python zlib1g-dev wget bsdmainutils automake libboost-all-dev libssl-dev libprotobuf-dev protobuf-compiler libgtest-dev libqt4-dev libqrencode-dev libdb++-dev ntp ntpdate vim software-properties-common curl libcurl4-gnutls-dev cmake clang
Enter fullscreen mode Exit fullscreen mode

Instale nanomsg

Nanomsg é uma biblioteca de soquetes que fornece vários padrões comuns de comunicação. Seu objetivo é tornar a camada de rede rápida, escalonável e fácil de usar. Implementada em C, ela funciona em uma ampla gama de sistemas operacionais, sem outras dependências.

cd ~
git clone https://github.com/nanomsg/nanomsg
cd nanomsg
cmake . -DNN_TESTS=OFF -DNN_ENABLE_DOC=OFF
make -j2
sudo make install
sudo ldconfig
Enter fullscreen mode Exit fullscreen mode

Isto leva algum tempo, dependendo de sua conexão à Internet. Deixe que ela funcione em segundo plano. Agora é hora de instalar o Komodo.

’Instalando Komodo

cd ~
git clone https://github.com/jl777/komodo
cd komodo
git checkout dev
./zcutil/fetch-params.sh
./zcutil/build.sh -j2
Enter fullscreen mode Exit fullscreen mode

Isto vai levar algum tempo. Entretanto, vamos criar um komodo.conf. Abra uma nova janela terminal e execute isto.

cd ~
mkdir .komodo
cd .komodo
nano komodo.conf
Enter fullscreen mode Exit fullscreen mode

Adicione as seguintes linhas ao arquivo komodo.conf (substitua rpcuser e rpcpassword)

rpcuser=nome do usuário
rpcpassword=senha
txindex=1
bind=127.0.0.0.1
rpcbind=127.0.0.0.1
Enter fullscreen mode Exit fullscreen mode

Pressione CTRL+X e Y para salvar e sair do editor nano.

Agora você pode iniciar o komodod daemon para sincronizar com a rede. Isto levará tempo.

cd ~
cd komodo
./src/komodod -addnode=78.47.196.146 -daemon
Enter fullscreen mode Exit fullscreen mode

Você verá algumas saídas no terminal onde você iniciou o komodod daemon. Você pode verificar os logs usando abaixo

cd ~/.komodo/
tai l-f debug.log 
Enter fullscreen mode Exit fullscreen mode

Agora que instalamos o komodo daemon komodod, podemos agora usar o komodo-cli para executar comandos. Por exemplo, rodar isto:

cd ~/komodo/src/
./komodo-cli getinfo
Enter fullscreen mode Exit fullscreen mode

Você verá uma produção como esta.

{
    "version": 1000550,
    "protocolversion": 170002,
    "KMDversion": "0.1.0",
    "notarized": 186670,
    "notarizedhash": "000000308845da840ab9af6c1e09dc02f3118683df065b5ec00b05c9bd58cdae",
    "notarizedtxid": "6723a10ef4fceab230d4245305d1ed2a916e435abb83269c20daad9bbefd3f0e",
    "notarizedtxid_height": "mempool",
    "notarized_confirms": 0,
    "walletversion": 60000,
    "balance": 0,
    "interest": 0,
    "blocks": 186773,
    "longestchain": 308867,
    "timeoffset": 0,
    "tiptime": 1486411069,
    "connections": 8,
    "proxy": "",
    "difficulty": 1624278.62879530,
    "testnet": false,
    "keypoololdest": 1482746526,
    "keypoolsize": 101,
    "paytxfee": 0.00000000,
    "relayfee": 0.00001000,
    "errors": ""
}
Enter fullscreen mode Exit fullscreen mode

Nesta saída, quando você vê blocos e valores da chain mais longa se tornarem os mesmos, significa que sua carteira está totalmente sincronizada.

você deve proteger sua carteira (wallet.dat) que reside em ~/.komodo/wallet.dat Faça várias cópias deste arquivo e proteja-as.

Agora, siga as mesmas instruções na 2ª máquina. Depois disso, estaremos prontos para rodar nossa própria cadeia de ativos.

Chain de ativos estabelecida

Komodo é um fork de Zcash que, por sua vez, é um fork de Bitcoin. Portanto, a Komodo usa uma grande quantidade de base de código de bitcoin. Ele precisa de nós (Sistemas) para executar uma blockchain. A razão para 2 nós (sistemas) é que os projetos originais da blockchain da Satoshi Nakamoto, na qual a Komodo se baseia, não existem em um único . Ao contrário, ele existe através de uma conexão entre dois ou mais nós. Esta é a natureza da descentralização: ela está na rede em que confiamos, e não em uma única autoridade.

Antes de seguir adiante, precisamos verificar se somos capazes de fazer o ping de uma máquina a outra.

Vamos rodar nossa chain do Dragão sobre o 1. Antes disso, vamos parar Komodo daemon usando os comandos abaixo.

~/komodo/src/komodo-cli stop
Enter fullscreen mode Exit fullscreen mode

Vamos criar nossa própria chain de ativos usando o comando abaixo no nó1.

./komodod -ac_name=DRAGONCHAIN -ac_supply=1000000 -addnode=<Endereço IP do segundo nó> &
Enter fullscreen mode Exit fullscreen mode
  • ac_name - Nome da chain
  • ac_supply - Fornecimento total de na chain (Moedas de cunhagem prévia)
  • -addnode - Adicionar o endereço IP do 2º

Você pode usar mais parâmetros disponíveis para obter mais configuraçôes. Depois de executar este comando, você obtém a saída de algo como isto.

>>>>>>>>>> DRAGONCHAIN: p2p.8096 rpc.8097 magic.c89a5b16 3365559062 1000000 moedas
Enter fullscreen mode Exit fullscreen mode

Neste caso, a porta p2p é 8096. É preciso ter certeza de que esta porta estará aberta nas máquinas.

Configuração 2º

Agora, no segundo nó, pare o daemon Komodo e execute o comando abaixo. Precisamos dar a ele o endereço IP do primeiro . Estamos dando alguns parâmetros extras aqui -gen -genproclimit=1 para iniciar a mineração assim que ela se conectar ao primeiro .

./komodod -ac_name=DRAGONCHAIN -ac_supply=1000000 -addnode= -gen -gen -genproclimit=1 &
Uma vez que o segundo se conecte, ele irá automaticamente minerar blocos.

Em uma blockchain baseada em Komodo-, todas as moedas pré-mineradas são cunhadas no primeiro bloco. Portanto, qualquer máquina que executar o comando de mineração receberá a totalidade do fornecimento da blockchain.

Você pode vender estas moedas a seus clientes, utilizando nosso DEX nativo, BarterDEX ou uma troca de terceiros.

Para obter as informações sobre a chain de ativos, você executa este comando.

./komodo-cli -ac_name=DRAGONCHAIN getwalletinfo
Enter fullscreen mode Exit fullscreen mode

Para obter o balanço,

./komodo-cli -ac_name=DRAGONCHAIN getbalance
Enter fullscreen mode Exit fullscreen mode

ou para obter mais APIs e chamadas RPC, você pode executar este comando.

./komodo-cli -ac_name=Ajuda DRAGONCHAIN
Enter fullscreen mode Exit fullscreen mode

Agora você tem sua chain de ativos e as tokens DragonChain que você pode listar nas trocas. (É claro que você precisa vir com a aplicação e vendê-la aos clientes primeiro). O BarterDex é uma das trocas descentralizadas construídas pela equipe da Komodo. Você pode listar o ERC20 e outras criptomoedas com baseadas em bitcoin nesta troca.

Contrato Inteligente Cryptocondition (Baseado no modelo UTXO)

A Komodo introduziu seus próprios contratos inteligentes baseados em UTXO (Unspent transaction outputs) chamados Cryptoconditions. Estes contratos são diferentes dos contratos inteligentes completos de Ethereum ou Eos Turing que funcionam em uma máquina virtual e utilizam o modelo GAS. As condições criptográficas não utilizam gas para sua execução.

UTXO programável

Como a Komodo é uma plataforma baseada no protocolo bitcoin, ela usa o modelo UTXO em comparação com o modelo de base de endereço do Ethereum. Portanto, os contratos Cryptocondition funcionam no UTXO em vez de bloquear o saldo de endereços inteiros. Para entender isto melhor, você pode pensar em UTXOs como contas em sua carteira. Digamos que você tenha uma nota de 2$, 5$ e 10$ em sua carteira. Usando Cryptocondition você pode bloquear uma determinada nota (exemplo raposa - nota de 5$) e outras notas ficarão livres. Isto torna o UTXOs programável.

Benefícios do Cryptocondition sobre os contratos inteligentes do Ethereum

O principal benefício da Cryptocondition é que não é preciso nenhum *gas ou moeda para executá-la.
Estes contratos Cryptocondition são codificados em *blockchain Komodo e toda a chain de ativos obtém automaticamente contratos inteligentes úteis. Isto pode funcionar como uma biblioteca inteligente de contratos para chain de ativos.
*Você pode usar tanto C ou C++ ou qualquer linguagem compilada para codificar estes contratos inteligentes.
*O modelo base UTXO fornece mais segurança e gerenciamento de controle sobre o ativo.
*O CryptoConditions permite micropagamentos de confirmação zero. Além disso, estes micro-pagamentos de confirmação zero são garantidos pelo mecanismo de delayed Proof of Work security da Komodo. Os pagamentos são totalmente "p2p" e são considerados confirmados assim que entram no mempool.

No mundo das aplicações descentralizadas, as chains de ativos podem permitir muitos casos de uso e tecnologias como a troca atômica, o que ajuda na interoperabilidade das blockchains e na transferência de valor entre múltiplas chains.

A Komodo está construindo uma plataforma de blockchains com tecnologia de ponta e espera alimentar toda uma nova geração de aplicações de blockchains. O ecossistema precisa crescer em comparação com o ethereum e outras blockchains concorrentes, mas construir algo de valor sempre leva tempo.

Conclusão

Qualquer empresa ou indivíduo em casos de aplicação de longo prazo da chain de ativos deve examinar a plataforma da chain de ativos da Komodo.

Se você tiver algum problema, verifique a documentação oficial da plataforma Komodo ou deixe uma pergunta neste post. Se você construiu sobre a plataforma Komodo, deixe um link para seu projeto nos comentários. Adoraria conferir.

Obrigado a William Wickey pela ajuda na edição.

Artigo escrito por Gaurav Agrawal e traduzido para o português por Rafael Ojeda.

Você pode ler o artigo original em inglês aqui.

Top comments (0)