API Gateway para Web3: Como o APISIX Capacita a Hyperchain
August 9, 2021
Visão Geral
Como fornecedor líder mundial de infraestrutura de blockchain de consórcio empresarial e provedor de soluções, a Hyperchain Technologies está comprometida em construir infraestrutura inovadora e capacitar o desenvolvimento digital da sociedade. Durante seu rápido crescimento, a Hyperchain enfrentou vários problemas ao estabelecer sua plataforma de blockchain Hyperchain, conforme descrito abaixo:
- Falta de gerenciamento de tráfego padronizado com risco potencial de colapso do sistema
- Controle de segurança e gerenciamento de autenticação incompletos
- Controle de permissões inconveniente
- Alto custo com endereços IP de rede pública
- Nós de blockchain instáveis: nó único vulnerável a ataques
- Falta de gerenciamento unificado de múltiplos protocolos
A Hyperchain tentou usar Kong e NGINX, mas infelizmente, eles não conseguiram atender aos cenários de negócios da Hyperchain. No entanto, após adotar o Apache APISIX, todos os problemas mencionados acima foram resolvidos, conferindo à plataforma de blockchain Hyperchain uma vitalidade infinita.
Sobre a Plataforma de Blockchain Hyperchain
A plataforma de blockchain Hyperchain refere-se à integração do framework de blockchain na plataforma de computação em nuvem, aproveitando as vantagens de infraestrutura de serviços em nuvem para implantação e gerenciamento. É uma plataforma de blockchain aberta que pode fornecer aos desenvolvedores um ecossistema de blockchain conveniente e de alto desempenho, além de serviços de suporte relacionados, e também suportar a expansão e operação de negócios dos desenvolvedores no web3.
A plataforma de blockchain Hyperchain pode construir a rede de blockchain de forma rápida e flexível. Com a plataforma, as empresas podem gerenciar o negócio de blockchain de forma unificada. Por exemplo, através da plataforma, podemos assinar contratos no ambiente de desenvolvimento integrado e, em seguida, implantar os contratos na rede de blockchain criada. O módulo de serviço superior pode chamar contratos relacionados ao blockchain para continuar o processo de negócios.
Como há muitos nós na cadeia, variando de dezenas a milhares, torna-se difícil monitorar e manter a operação da cadeia sem o suporte da plataforma. Ao usar a plataforma de blockchain Hyperchain, os usuários podem não apenas economizar custos, mas também gerenciar o blockchain de forma mais conveniente e aumentar a segurança de todo o sistema.
Vamos usar a Hyperchain como exemplo para entender como e por que as empresas de blockchain devem escolher o Apache APISIX entre muitos gateways de API. Abaixo, analisaremos a aplicação do APISIX tanto na plataforma de blockchain Hyperchain quanto no nó de blockchain.
Aplicação do APISIX na Plataforma de Blockchain Hyperchain
Abaixo está um diagrama de interação de aplicação do APISIX na plataforma de blockchain Hyperchain. O serviço de backend registra as informações do serviço no etcd de acordo com suas características de negócios e, em seguida, registra o serviço no APISIX por meio do módulo de registro de rotas.
O APISIX funciona como a entrada unificada dos microsserviços internos no sistema. As solicitações externas são primeiro enviadas ao APISIX; em seguida, elas acessam a camada de acesso através da API após passar pela autenticação e, posteriormente, acessam os serviços principais por meio de RPC (chamada de procedimento remoto).
Encaminhamento de Rotas
Às vezes, espera-se que as APIs sejam expostas sob o mesmo nome de domínio. Nesse caso, podemos adicionar alguns prefixos ao caminho da API do mesmo serviço, como /baas-core
ou /baas-other
. Quando o cliente solicita essas APIs, o gateway de API precisa remover esses prefixos adicionados e, em seguida, encaminhar a solicitação para o serviço de backend. O plugin proxy-rewrite do APISIX pode nos ajudar a lidar com esses casos de forma conveniente.
Por exemplo:
Ao acessar: http://apisix:8080/baas-{service}/api/v1/…
A solicitação pode ser encaminhada para http://{service}/api/v1/…
escrevendo uma expressão regular: ^/baas-core/(.*)$,/$1
Gerenciamento de Limite de Tráfego
Os usuários podem escolher blockchains de consórcio de acordo com suas necessidades, não apenas da Hyperchain, mas também do IBM Data Fabric, Baidu XuperChain, etc. Portanto, a Hyperchain precisa realizar o gerenciamento do ciclo de vida de todos os blockchains de consórcio no sistema.
Ao criar uma cadeia de consórcio, a Hyperchain só precisa escrever o código hardcode na plataforma de blockchain e carregar os componentes de driver plugáveis na plataforma de blockchain para chamar e criar a cadeia de consórcio. Em alguns casos de implantação privada, os componentes de driver plugáveis podem suportar rapidamente.
Cada chamada aos componentes de driver é um processo que precisa ser limitado, especialmente quando o número é grande. Consequentemente, o plugin limit-req do APISIX pode ser benéfico para restringir a entrada e saída de tráfego da plataforma para garantir sua estabilidade.
O plugin limit-req permite configurações personalizadas sobre taxa e burst.
Controle de Segurança e Gerenciamento de Autoridade
Para colaborar com o APISIX, a Hyperchain desenvolveu um plugin para circunstâncias de implantação privada. A Parte A geralmente prefere usar seus serviços de autenticação ou sistema de contas de serviço. Quando o tráfego do frontend visita o site, ele primeiro passa pelo plugin Access-auth, e só pode acessar o backend BFF (Backend for Frontend) se passar na autenticação.
De acordo com os três fatores-chave da especificação padrão Restful (as informações de autenticação, o caminho Restful e os verbos HTTP como GET, POST, PUT, DELETE, PATCH, etc.), a autenticação de conta-role-autoridade é realizada. Se a autenticação for aprovada, as informações do usuário serão retornadas no cabeçalho; caso contrário, retornará 403.
Recarregamento a Quente
O APISIX oferece recarregamento a quente de plugins desenvolvidos internamente. Isso economiza tempo durante o desenvolvimento e permite que os usuários alterem partes de seu código sem reiniciar todo o plugin runner. Dessa forma, os desenvolvedores podem fazer ajustes na interface no backend, que entram em vigor imediatamente, o que é conveniente e amigável para o lançamento online.
Por que não o Kong?
A Hyperchain havia usado o Kong antes, mas finalmente o substituiu pelo Apache APISIX principalmente porque:
-
Alto Custo de Implantação e Manutenção
O cluster do Kong precisa cooperar com o banco de dados Postgresql e requer um administrador de banco de dados específico para alta disponibilidade. A implantação do cluster do banco de dados Postgresql é relativamente difícil de implementar e aumenta o custo de operação e manutenção posterior.
-
Aumenta a Complexidade do Sistema e a Taxa de Falhas
A plataforma de blockchain Hyperchain usa o banco de dados MySQL, resultando em dois bancos de dados relacionais no sistema se o Kong for adotado, o que torna o sistema mais complicado. Também aumenta a taxa de falhas ao melhorar a compatibilidade entre dois conjuntos de bancos de dados.
Aplicação do APISIX no Nó de Blockchain
Economia de Custos com Endereços IP de Rede Pública
O usuário adquire blockchains através da plataforma de blockchain Hyperchain. Em seguida, os negócios de nível superior e os clientes desenvolvedores podem se conectar aos nós. Os serviços podem se conectar a um ou mais nós, e os usuários podem acessar um ou mais nós, o que traz um problema: quase todos os nós serão visitados, sobrecarregando a pressão de visitação de um único nó.
É relativamente fácil de lidar em alguns ambientes de emprego privado. No entanto, muitos nós e IPs públicos são necessários para sistemas que visam usuários da internet. O preço de cada IP público de 4 megabytes de tráfego pode chegar a quase 200 CNY por mês. Há milhares de nós na plataforma Hyperchains, o que consome um alto custo de IP público.
O APISIX gerencia todas as solicitações de visita e distribui o tráfego para os nós de blockchain correspondentes. Dessa forma, a Hyperchain economizou um alto custo.
Controle de Permissões Conveniente
Há vários blockchains na plataforma de blockchain Hyperchain, e cada cadeia tem um controle de permissões RBAC complicado. Portanto, diferentes tipos de certificados precisam ser adicionados no lado do cliente, como certificados TLS, o que também confunde os usuários.
Atualmente, o plugin key-auth do APISIX pode ser usado para resolver esse problema de forma eficiente. Usuários autorizados podem acessar diretamente o blockchain sem se preocupar com a configuração de permissões, pois o APISIX unifica a cadeia subjacente.
Cluster Melhora a Estabilidade dos Nós
Como mencionado acima, os nós são visitados com frequência. Alta concorrência existe na maioria dos usuários bancários, pois o TPS (Transações Por Segundo) pode atingir 40.000-50.000 vezes.
Acontece que um único nó no blockchain é vulnerável porque cada transação impactará o nó visitado.
A Hyperchain implantou o Apache APISIX no K8s com o Horizontal Pod Autoscaler. Como o APISIX usa etcd com boa escalabilidade dinâmica, ele pode resolver efetivamente o problema de impacto de tráfego de ponto único.
Suporte a Múltiplos Protocolos
Os protocolos das cadeias heterogêneas na plataforma de blockchain Hyperchain são diversos, como protocolo HTTP, protocolo Websocket, protocolo gRPC, protocolo TCP, protocolo UDP, etc.
O APISIX suporta múltiplos protocolos, adaptando-se flexivelmente às camadas subjacentes de diferentes blockchains, reduzindo assim os custos de desenvolvimento.
Por que não o NGINX?
Parece que a Hyperchain poderia utilizar o NGINX para resolver seus problemas. No entanto, após o teste, a Hyperchain desistiu porque:
-
Inadequado para Expansão Dinâmica
A Hyperchain precisa adicionar e excluir nós na plataforma de blockchain com frequência, o que só entra em vigor após a reinicialização, o que é inconveniente para os desenvolvedores. Além disso, os desenvolvedores precisam escrever códigos de regras complexas para plugins no arquivo conf do NGINX.
-
Difícil de Clusterizar
O NGINX não suporta cluster, o que é relativamente complexo e pouco amigável para os usuários.
-
Sem Suporte Direto para TCP e UDP
O NGINX só pode fazer proxy do protocolo de camada 7, em vez do protocolo de camada 4, e não suporta diretamente os protocolos TCP e UDP. Além disso, o módulo não é compilado por padrão, exigindo processamento adicional.
-
Sem Dashboard
Não há interface visualizada do NGINX, o que dificulta o gerenciamento de tantos nós por desenvolvedores e operadores.
Resumo
A partir do conteúdo mencionado acima, sabemos que o Apache APISIX é um gateway de API dinâmico que pode ser aplicado na área de blockchain. Além disso, o Apache APISIX fornece recursos ricos de gerenciamento de tráfego, como Balanceamento de Carga, Upstream Dinâmico, Lançamento Canário, Circuit Breaker, Autenticação, Observabilidade, etc.
Esperamos que o APISIX possa apoiar mais empresas de blockchain a entrar em outra fase de desenvolvimento. Bem-vindo a saber mais sobre o Apache APISIX. Você pode entrar em contato conosco em https://api7.ai/contact.