Taler para desenvolvedores

Livre

GNU Taler é um software livre que implementa um protocolo aberto. Qualquer pessoa é bem-vinda para integrar nossa implementação de referência em seus aplicativos. Diferentes componentes do Taler estão sendo disponibilizados sob diferentes licenças. A Affero GPLv3+ é usada para o câmbio, a LGPLv3+ é usada para o código de referência demonstrando a integração com plataformas comerciais e as licenças como GPLv3+ são usadas para carteiras e software relacionado para o cliente. Estamos abertos a sugestões construtivas para maximizar a adoção desta plataforma de pagamento.

RESTful

O Taler foi projetado para trabalhar na Internet. Para garantir que os pagamentos do Taler possam funcionar com configurações de rede restritivas, o Taler usa um protocolo RESTful por HTTP ou HTTPS. A segurança do Taler não depende do uso de HTTPS, mas, obviamente, os comerciantes podem optar por oferecer HTTPS para consistência e porque geralmente é melhor para a privacidade em comparação com o HTTP. O Taler usa o JSON para codificar os dados da estrutura, facilitando a integração do Taler com os aplicativos da Web existentes. O protocolo do Taler é documentado em detalhes em docs.taler.net.

Código

Atualmente, o Taler é desenvolvido por uma equipe de pesquisa no Inria e no GNUnet. No entanto, as contribuições de qualquer um são bem-vindas. Nossos repositórios Git podem ser clonados usando os métodos de acesso Git e HTTP em git.taler.net com o nome do respectivo repositório. Uma lista de repositórios pode ser encontrada em nosso GitWeb.

Documentação

Além deste site, o código documentado e a API documentação. Os documentos técnicos podem ser encontrados em nossa bibliografia.

Discussão

Temos uma lista de discussão para discussões de desenvolvedores. Você pode se inscrever ou ler o arquivo da lista em http://lists.gnu.org/mailman/listinfo/taler.

Teste de regressão

Nós temos testes de automação com Buildbot para detectar regressões e verificar a portabilidade em buildbot.taler.net.

Análise de cobertura de código

Usamos LCOV para analisar a cobertura do código de nossos testes, os resultados estão disponíveis em lcov.taler.net.

Visão geral do sistema Taler

O sistema Taler consiste em protocolos executados entre vários atores como ilustrado na ilustração à direita. As transações típicas envolvem as seguintes etapas:

visão geral do sistema
  1. Um cliente instrui seu banco a transferir fundos de sua conta para o câmbio do Taler (canto superior esquerdo). No assunto da transação, ele inclui um token de autenticação de sua carteira eletrônica. Na terminologia do Taler, o cliente cria uma reserva no câmbio.
  2. Uma vez que o câmbio recebeu a transferência eletrônica, ele permite que a carteira eletrônica do cliente saque moedas eletrônicas. As moedas eletrônicas são representações digitais da moeda original a partir da transferência. É importante notar que o câmbio não aprende os “números de série” das moedas criadas neste processo, por isso não pode dizer mais tarde qual cliente comprou o que de qual comerciante. O uso do Taler não altera a moeda ou o valor total dos fundos (exceto as taxas que a bolsa pode cobrar pelo serviço).
  3. Uma vez que o cliente tem as moedas digitais em sua carteira, a carteira pode ser usada para gastar as moedas com portais comerciais que suportam o sistema de pagamento do Taler e aceitam o câmbio respectivo como parceiro de negócios (seta do fundo). Isso cria um contrato digital assinado pelas moedas do cliente e pelo comerciante. Se necessário, o cliente poderá usar este contrato assinado digitalmente em um tribunal para provar os termos exatos do contrato e que ele pagou o respectivo valor. O cliente não aprende os detalhes bancários do comerciante e a Taler não exige que o comerciante aprenda a identidade do cliente. Naturalmente, o cliente pode gastar qualquer fração de suas moedas digitais (o sistema cuida dos clientes obtendo troco).
  4. Comerciantes que recebem depósito em moedas digitais das respectivas reivindicações resultantes da assinatura do contrato com o cliente no câmbio para resgatar as moedas. A etapa de depósito não revela de forma alguma os detalhes do contrato entre o cliente e o comerciante ou a identidade do cliente para o câmbio. No entanto, o câmbio aprende a identidade do comerciante através da informação fornecida de roteamento bancário. O comerciante pode, por exemplo, quando obrigado a tributação pelo estado, fornecer informações que vinculem o depósito individual ao respectivo contrato assinado pelo cliente. Assim, o banco de dados do câmbio permite que o Estado imponha que os comerciantes paguem tributos aplicáveis (e não se envolvam em contratos ilegais).
  5. Finalmente, o câmbio transfere fundos correspondentes às moedas digitais resgatadas pelos comerciantes para a conta bancária do comerciante. O câmbio pode combinar múltiplas pequenas transações em uma transferência eletrônica maior. O comerciante pode consultar o câmbio sobre a relação entre as transferências bancárias e as reivindicações individuais que foram depositadas.
  6. Mais importante ainda, o câmbio mantém as provas criptográficas que permitem demonstrar que está funcionando corretamente para terceiros. O sistema requer um auditor externo, como um órgão regulador financeiro designado pelo governo, para verificar com frequência os bancos de dados do câmbio e verificar se o saldo bancário corresponde ao valor total das moedas restantes em circulação.
  7. Sem o auditor, os operadores do câmbio poderiam desviar os fundos que eles estão mantendo na reserva. Clientes e comerciantes não podem enganar uns aos outros ou o câmbio. Se os computadores de qualquer parte estiverem comprometidos, o dano financeiro é limitado à respectiva parte e proporcional aos fundos em circulação durante o período do comprometimento.