Este cenário de Início Rápido pressupõe que você está instalando o SDK (Software Development Kit, Kit de Desenvolvimento de Software) pela primeira vez e implantando o projeto padrão na rede principal da blockchain da Internet Computer.
Se você estiver implantando projetos apenas em um ambiente de desenvolvimento local, consulte o cenário de desenvolvimento local.
Para começar, vamos construir e implantar um simples dapp de saudação que tem apenas uma função, chamada greet
. A função greet
aceita um argumento de texto e retorna o resultado com uma saudação semelhante a “Hello, everyone!” (Olá, todos!) em um terminal se você executar o dapp usando a linha de comando, ou em uma página HTML, se você acessar o dapp em um navegador.
Antes de começar
Antes de baixar e instalar esta versão do SDK, verifique o seguinte:
-
Você tem uma conexão com a Internet e acesso a um shell de terminal em seu computador local, seja em macOS ou Linux.
Atualmente, o SDK é executado apenas em computadores com sistema operacional macOS ou Linux.
Você tem o
node.js
instalado se quiser acessar o frontend padrão do projeto padrão.-
Você tem tokens ou ciclos ICP disponíveis para uso.
Você deve ter ciclos disponíveis para concluir este tutorial. Para obter ciclos, você deve converter tokens ICP em ciclos ou recebê-los de outra fonte, por exemplo, de um cânister controlado por outro desenvolvedor ou de um provedor de ciclos terceirizado. Este tutorial pressupõe que você tenha uma conta com tokens ICP disponíveis e ilustra como converter tokens ICP em ciclos e transferir esses ciclos para uma carteira de ciclos que você controla.
Para obter informações sobre como obter tokens ICP, consulte Como obter tokens ICP. Para obter uma introdução ao uso do aplicativo Network Nervous System para gerenciar tokens ICP, consulte Guia de Início rápido do dapp Network Nervous System. Para obter informações sobre como usar sua carteira de ciclos padrão depois de criá-la, consulte como usar a carteira de ciclos padrão.
Baixar e instalar
Você pode baixar a versão mais recente do SDK diretamente de um shell de terminal em seu computador local. Se você instalou o SDK anteriormente, pode pular esta seção e começar com “Criar um novo projeto”.
Para baixar e instalar:
-
Abra um shell de terminal em seu computador local.
Por exemplo, abra Aplicativos, Utilitários e clique duas vezes em Terminal ou pressione ⌘+barra de espaço para abrir a Pesquisa e digite
terminal
. -
Baixe e instale o pacote SDK executando o seguinte comando:
sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)"
Este comando solicita que você leia e aceite o contrato de licença antes de instalar a interface de linha de comando (CLI) de execução da DFINITY e suas dependências em seu computador local.
-
Digite
y
e pressione Return para continuar com a instalação.O comando exibe informações sobre os componentes que estão sendo instalados no computador local.
Verifique se o SDK está pronto para uso
Se o script de instalação for executado sem erros, tudo o que você precisa para começar a desenvolver programas executados na IC estará disponível em seu computador local.
Para verificar se o SDK está pronto para uso:
- Abra um shell de terminal em seu computador local, se você ainda não tiver um aberto.
-
Verifique se você tem a interface de linha de comando (CLI) de execução da DFINITY instalada e se o executável
dfx
está disponível em seu PATH executando o seguinte comando:
dfx --version
O comando exibe informações de versão para o executável de linha de comando
dfx
. Você pode ver a versão mais recente nas notas de lançamento. -
Visualize as informações de uso dos outros subcomandos da linha de comando
dfx
executando o seguinte comando:
dfx --help
O comando exibe informações de uso para o comando-pai
dfx
e seus subcomandos.
Criar um novo projeto
Dapps para a Internet Computer começam como projetos. Você cria projetos usando o comando-pai dfx
e seus subcomandos.
Para este tutorial, começaremos com o dapp de amostra padrão para ilustrar a criação de um dapp usando os arquivos iniciais em um projeto. Quando você cria um novo projeto, a interface de linha de comando dfx
adiciona uma estrutura de diretório de projeto padrão ao seu espaço de trabalho. Cobrimos os arquivos de modelo que compõem um diretório de projeto no tutorial “Explorar o projeto padrão”.
Para criar um novo projeto para seu primeiro dapp:
- Abra um shell de terminal em seu computador local, se você ainda não tiver um aberto.
-
Crie um novo projeto chamado
hello
executando o seguinte comando:
dfx new hello
O comando
dfx new hello
cria um novo diretório de projetohello
, arquivos de modelo e um novo repositório Git chamadohello
para seu projeto.Se você usar um nome de projeto diferente em vez de
hello
, anote o nome usado. Você precisará usar esse nome de projeto no lugar do nome do projetohello
ao longo destas instruções. -
Mude para o diretório do seu projeto executando o seguinte comando:
cd hello
Verifique a conexão com a rede principal da IC
Há um pseudônimo de rede reservado que você pode usar para acessar a rede principal da blockchain da Internet Computer. O pseudônimo de rede é uma configuração do sistema definida internamente, portanto, por padrão, não há nada mais para você configurar em seus projetos.
Para verificar sua conexão com a IC:
- Verifique se você está no diretório raiz do seu projeto, se necessário.
-
Verifique o status atual da IC e sua capacidade de se conectar a ela executando o seguinte comando para o pseudônimo de rede
ic
:
dfx ping ic
-
Verifique se o comando
dfx ping ic
retorna informações sobre a IC.Por exemplo, você deve ver um output semelhante ao seguinte:
{ "ic_api_version": "0.18.0" "impl_hash": "d639545e0f38e075ad240fd4ec45d4eeeb11e1f67a52cdd449cd664d825e7fec" "impl_version": "8dc1a28b4fb9605558c03121811c9af9701a6142" "replica_health_status": "healthy" "root_key": [48, 129, 130, 48, 29, 6, 13, 43, 6, 1, 4, 1, 130, 220, 124, 5, 3, 1, 2, 1, 6, 12, 43, 6, 1, 4, 1, 130, 220, 124, 5, 3, 2, 1, 3, 97, 0, 129, 76, 14, 110, 199, 31, 171, 88, 59, 8, 189, 129, 55, 60, 37, 92, 60, 55, 27, 46, 132, 134, 60, 152, 164, 241, 224, 139, 116, 35, 93, 20, 251, 93, 156, 12, 213, 70, 217, 104, 95, 145, 58, 12, 11, 44, 197, 52, 21, 131, 191, 75, 67, 146, 228, 103, 219, 150, 214, 91, 155, 180, 203, 113, 113, 18, 248, 71, 46, 13, 90, 77, 20, 80, 95, 253, 116, 132, 176, 18, 145, 9, 28, 95, 135, 185, 136, 131, 70, 63, 152, 9, 26, 11, 170, 174] }
Confirme sua identidade de desenvolvedor e conta de livro-razão
Todas as transações de token ICP são registradas em um cânister de livro-razão em execução na blockchain da Internet Computer. O cânister de livro-razão consiste em identificadores de conta e saldos para todos os detentores de tokens ICP.
Antes de poder transferir quaisquer tokens ICP que você possui em sua conta de livro-razão, você precisa enviar uma mensagem segura e devidamente assinada que verifica sua identidade para o livro-razão e autoriza sua identidade de desenvolvedor a concluir a transação.
Dependendo de como você configurou a custódia para manter seus tokens ICP, o hardware, o software e as etapas necessárias para se conectar ao livro-razão e concluir uma transação podem variar. Por exemplo, você pode se conectar ao livro-razão e iniciar uma transação de uma carteira de hardware, usando um dispositivo de módulo de segurança de hardware (Hardware Security Module, HSM), por meio do aplicativo de frontend Network Nervous System (NNS) ou usando a interface de linha de comando dfx
do SDK. Cada abordagem apresenta uma interface diferente para assinar e enviar mensagens para o livro-razão e representar sua identidade como titular da conta.
Sobre sua identidade de desenvolvedor
Na primeira vez que você usa o SDK, a ferramenta de linha de comando dfx
cria uma identidade de desenvolvedor padrão
para você. Essa identidade é representada por um tipo de dados principal e uma representação textual do principal, muitas vezes referida como seu identificador principal. Essa representação de sua identidade é semelhante a um endereço Bitcoin ou Ethereum.
No entanto, o principal associado à sua identidade de desenvolvedor geralmente não é o mesmo que o identificador de sua conta no livro-razão. O identificador principal e o identificador da conta estão relacionados – ambos fornecem uma representação textual de sua identidade – mas usam formatos diferentes.
Conecte-se ao livro-razão para obter informações da conta
Para os propósitos deste tutorial, onde não há carteira de hardware ou aplicativo externo para se conectar ao livro-razão, usaremos sua identidade de desenvolvedor para recuperar o identificador de conta de livro-razão e, em seguida, transferir tokens ICP do identificador de conta de livro-razão para um cânister de carteira de ciclos controlado por sua identidade de desenvolvedor.
Para procurar sua conta no livro-razão:
-
Confirme a identidade do desenvolvedor que você está usando no momento executando o seguinte comando:
dfx identity whoami
Na maioria dos casos, você deve ver que está usando a identidade de desenvolvedor padrão. Por exemplo:
default
-
Visualize a representação textual do principal para sua identidade atual executando o seguinte comando:
dfx identity get-principal
Este comando exibe um output semelhante ao seguinte:
tsqwz-udeik-5migd-ehrev-pvoqv-szx2g-akh5s-fkyqc-zy6q7-snav6-uqe
-
Obtenha o identificador de conta para sua identidade de desenvolvedor executando o seguinte comando:
dfx ledger account-id
Este comando exibe o identificador da conta de livro-razão associado à sua identidade de desenvolvedor. Por exemplo, você deve ver uma saída semelhante à seguinte:
03e3d86f29a069c6f2c5c48e01bc084e4ea18ad02b0eec8fccadf4487183c223
-
Verifique o saldo da sua conta executando o seguinte comando:
dfx ledger --network ic balance
Este comando exibe o saldo de tokens ICP da conta de livro-razão. Por exemplo, você deve ver uma saída semelhante à seguinte:
10.00000000 ICP
Criando uma Carteira de Ciclos
Agora que você confirmou as informações da sua conta e o saldo atual de tokens ICP, você pode converter alguns desses tokens ICP em ciclos e movê-los para uma carteira de ciclos.
Para transferir tokens ICP para criar uma carteira de ciclos:
-
Crie um novo cânister com ciclos transferindo tokens ICP de sua conta de livro-razão executando um comando semelhante ao seguinte:
dfx ledger --network ic create-canister <principal-identifier> --amount <icp-tokens>
Este comando converte o número de tokens ICP especificados para o argumento
--amount
em ciclos e associa os ciclos a um novo identificador de cânister controlado pelo principal especificado.Por exemplo, o comando a seguir converte .25 tokens ICP em ciclos e especifica o identificador principal para a identidade padrão como o controlador do novo cânister:
dfx ledger --network ic create-canister tsqwz-udeik-5migd-ehrev-pvoqv-szx2g-akh5s-fkyqc-zy6q7-snav6-uqe --amount .25
Se a transação for bem-sucedida, o livro-razão registrará o evento e você deverá ver um output semelhante ao seguinte:
Transfer sent at BlockHeight: 20 Canister created with id: "gastn-uqaaa-aaaae-aaafq-cai"
-
Instale o código da carteira de ciclos no espaço reservado do cânister recém-criado, executando um comando semelhante ao seguinte:
dfx identity --network ic deploy-wallet <canister-id>
Por exemplo:
dfx identity --network ic deploy-wallet gastn-uqaaa-aaaae-aaafq-cai
Este comando exibe uma saída semelhante à seguinte:
Creating a wallet canister on the IC network. The wallet canister on the "ic" network for user "default" is "gastn-uqaaa-aaaae-aaafq-cai"
Valide sua carteira de ciclos
Depois de converter tokens ICP em ciclos, você pode validar o cânister da carteira de ciclos e verificar seu saldo de ciclos atual.
Para validar sua carteira de ciclos:
-
Verifique o identificador do cânister para a carteira de ciclos que você implementou executando o seguinte comando:
dfx identity --network ic get-wallet
O comando exibe o identificador do cânister para sua carteira de ciclos com output semelhante ao seguinte:
gastn-uqaaa-aaaae-aaafq-cai
-
Verifique se o cânister da sua carteira de ciclos está configurado corretamente e mantém um saldo de ciclos executando um comando semelhante ao seguinte:
dfx wallet --network ic balance
O comando retorna o saldo da sua carteira de ciclos. Por exemplo:
15430,122 TC (trillion cycles).
Você também pode acessar sua carteira de ciclos padrão em um navegador da Web usando um URL semelhante ao seguinte:
https://<ID_DO_CÂNISTER_DA_CARTEIRA>.raw.ic0.app
Na primeira vez que você acessar o aplicativo, verá um aviso de que está usando um Dispositivo Anônimo e será solicitado a autenticar sua identidade, autorizar o acesso à carteira e registrar seu dispositivo.
Clique em Autenticar para continuar para o serviço de Identidade da Internet Computer.
-
Digite seu Número de Usuário se você já registrou uma identidade ou se registre no serviço como um novo usuário.
Para obter mais informações sobre o serviço de identidade da Internet Computer e como registrar vários dispositivos e métodos de autenticação, consulte como usar o serviço de identidade da Internet Computer.
Autentique usando seu número de usuário e o método de autenticação—por exemplo, uma chave de segurança ou impressão digital—que você registrou.
Clique em Continuar para acessar o aplicativo padrão da carteira de ciclos.
-
Registre o dispositivo que você está usando para esta sessão copiando o comando exibido na página Register Device e executando-o em um terminal.
Por exemplo, chame o método
authorize
para o cânister da carteira de ciclos com um comando semelhante ao seguinte:
dfx canister --network ic call "gastn-uqaaa-aaaae-aaafq-cai" authorize '(principal "ejta3-neil3-qek6c-i7rdw-sxreh-lypfe-v6hjg-6so7x-5ugze-3iohr-2qe")'
Certifique-se de que o comando copiado tenha o pseudônimo de rede (
ic
) correto. Você deve reconhecer o identificador do cânister — neste exemplo,gastn-uqaaa-aaaae-aaafq-cai
— como a carteira de ciclos associada à sua identidade. No entanto, se esta for sua primeira carteira na IC, você pode não reconhecer o principal que está sendo autorizado. O uso de um principal diferente é o comportamento esperado neste caso.Quando o navegador é atualizado após a execução do comando
authorize
, a carteira de ciclos da sua conta principal é exibida. -
Veja o saldo e a atividade dos seus ciclos no navegador.
Por exemplo:
Para obter mais informações sobre os comandos e métodos disponíveis para trabalhar com a carteira de ciclos padrão, consulte como usar a carteira de ciclos padrão.
Registrar, compilar e implantar o aplicativo
Depois de validar o saldo da carteira de ciclos, você pode registrar, compilar e implantar seu aplicativo de amostra.
Para implantar seu primeiro aplicativo na rede principal da blockchain da Internet Computer:
- No shell do terminal, verifique se você ainda está no diretório raiz do seu projeto.
-
Certifique-se de que os módulos do
node
estejam disponíveis no diretório do projeto, se necessário, executando o seguinte comando:
npm install
Para obter mais informações sobre esta etapa, veja como garantir que o node esteja disponível em um projeto.
-
Registre, compile e faça a implantação do seu primeiro aplicativo executando o seguinte comando:
dfx deploy --network ic
A opção
--network
especifica o pseudônimo de rede ou URL para implantar o dapp. Esta opção é necessária para instalar na rede principal da blockchain da Internet Computer.O output do comando
dfx deploy
exibe informações sobre as operações que ele executa.Por exemplo, esta etapa registra dois identificadores — um para o programa principal
hello
e outro para a interface de usuário do frontendhello_assets
— e informações de instalação semelhantes às seguintes:
Deploying all canisters. Creating canisters... Creating canister "hello"... "hello" canister created on network "ic" with canister id: "5o6tz-saaaa-aaaaa-qaacq-cai" Creating canister "hello_assets"... "hello_assets" canister created on network "ic" with canister id: "5h5yf-eiaaa-aaaaa-qaada-cai" Building canisters... Building frontend... Installing canisters... Installing code for canister hello, with canister_id 5o6tz-saaaa-aaaaa-qaacq-cai Installing code for canister hello_assets, with canister_id 5h5yf-eiaaa-aaaaa-qaada-cai Authorizing our identity (default) to the asset canister... Uploading assets to asset canister... /index.html 1/1 (472 bytes) /index.html (gzip) 1/1 (314 bytes) /index.js 1/1 (260215 bytes) /index.js (gzip) 1/1 (87776 bytes) /main.css 1/1 (484 bytes) /main.css (gzip) 1/1 (263 bytes) /sample-asset.txt 1/1 (24 bytes) /logo.png 1/1 (25397 bytes) /index.js.map 1/1 (842511 bytes) /index.js.map (gzip) 1/1 (228404 bytes) /index.js.LICENSE.txt 1/1 (499 bytes) /index.js.LICENSE.txt (gzip) 1/1 (285 bytes) Deployed canisters.
Se você não converteu tokens ICP suficientes em ciclos para concluir a operação, pode adicionar ciclos à sua carteira de ciclos executando um comando semelhante ao seguinte:
dfx ledger --network ic top-up gastn-uqaaa-aaaae-aaafq-cai --amount 1.005
Este comando converte
1.005
tokens ICP adicionais em ciclos para o identificador de carteira de ciclosgastn-uqaaa-aaaae-aaafq-cai
. O comando retorna um output semelhante ao seguinte:
Transfer sent at BlockHeight: 81520 Canister was topped up!
-
Chame o cânister
hello
e a funçãogreet
predefinida executando o seguinte comando:
dfx canister --network ic call hello greet '("everyone": text)'
Vejamos mais de perto este exemplo:
Usar a opção
--network ic
indica que o cânister que você deseja chamar está implantado noic
. O pseudônimo de redeic
é um pseudônimo reservado internamente para acessar a rede principal da blockchain da Internet Computer.Observe que a opção
--network ic
deve preceder o subcomando de operação, que, neste caso, é o comandodfx canister call
.O argumento
hello
especifica o nome do cânister que você desejaO argumento
greet
especifica o nome da função que você deseja chamar no cânisterhello
.A string de texto
everyone
é o argumento que você deseja passar para a funçãogreet
.
-
Verifique se o comando exibe o valor de retorno da função
greet
.Por exemplo:
("Hello, everyone!")
Execute novamente o comando
dfx wallet balance
ou atualize o navegador para ver o novo saldo e atividade recente da sua carteira de ciclos.
Teste o frontend do dapp
Agora que você verificou que seu dapp foi implantado e testou sua operação usando a linha de comando, vamos verificar se você pode acessar o frontend usando seu navegador da web.
Para acessar o frontend do dapp:
- Abra um navegador.
-
Navegue até o frontend do dapp usando um URL que consiste no identificador
hello_assets
e no sufixoboundary.ic0.app
.Se você não anotou o identificador do cânister, pode procurá-lo executando o seguinte comando:
dfx canister --network ic id hello_assets
Por exemplo, o URL completo deve ser semelhante ao seguinte:
https://gsueu-yaaaa-aaaae-aaagq-cai.raw.ic0.app
Navegar para este URL exibe a página de entrada HTML para o aplicativo de modelo. Por exemplo:
Digite uma saudação e clique em Click Me para retornar a saudação.
Próximos passos
Agora que você viu como implantar um dapp na blockchain da Internet Computer, você está pronto para desenvolver e implantar seus próprios programas.
Você pode encontrar exemplos e tutoriais mais detalhados para ajudá-lo a aprender sobre como usar o Motoko e como desenvolver dapps para a blockchain do Internet Computer em toda a documentação.
Aqui estão algumas sugestões para onde ir a seguir:
- Construindo na IC, para explorar a construção de dapps de frontend e backend em um ambiente de desenvolvimento local.
- O que é Candid?, para aprender como a linguagem de descrição da interface Candid permite a interoperabilidade e a composição de serviços.
- Visão geral do Motoko, para aprender sobre os recursos e a sintaxe para usar o Motoko.
Tutorial publicado na Documentação Oficial da Internet Computer. Traduzido por Paulinho Giovannini.
Oldest comments (0)