Giter Club home page Giter Club logo

velluscinum's Introduction

Velluscinum: A Middleware for BigchainDB

Distributed Ledger Technologies (DLT) characteristics can contribute to several domains, such as Multi-agent Systems (MAS), facilitating the agreement between agents, managing trust relationships, and distributed scenarios. Some contributions to this integration are in the theoretical stage, and the few existing practical contributions have limitations and low performance. This work presents a MAS approach that can use digital assets as a factor of agreement in the relationship between cognitive agents using the Belief-Desire-Intention model. To validate the proposed methodology, we present the middleware Velluscinum that offers new internal actions to agents. The middleware was tested by adapting the Building-a-House classic example to cryptocurrency and agreements mediated by a distributed ledger.

Using Velluscinum

With JaCaMo: use the Velluscinum-JCM Package

Importing the Velluscinum Middleware

using Maven

Step 1. Add the JitPack repository to your build file

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

Step 2. Add the dependency

<dependency>
    <groupId>com.github.chon-group</groupId>
    <artifactId>velluscinum</artifactId>
    <version>24.2.9</version>
</dependency>
using Gradle

Step 1. Add the JitPack repository in your root build.gradle at the end of repositories:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}

Step 2. Add the dependency

dependencies {
        implementation 'com.github.chon-group:velluscinum:24.2.9'
}

COPYRIGHT

Creative Commons License
Velluscinum is licensed under a Creative Commons Attribution 4.0 International License. The licensor cannot revoke these freedoms as long as you follow the license terms:

  • Attribution — You must give appropriate credit like below:

Mori Lazarin, N., Machado Coelho, I., Pantoja, C.E., Viterbo, J. (2023). Velluscinum: A Middleware for Using Digital Assets in Multi-agent Systems. In: Mathieu, P., Dignum, F., Novais, P., De la Prieta, F. (eds) Advances in Practical Applications of Agents, Multi-Agent Systems, and Cognitive Mimetics. The PAAMS Collection. PAAMS 2023. Lecture Notes in Computer Science(), vol 13955. Springer, Cham. DOI: https://doi.org/10.1007/978-3-031-37616-0_17

Cite using Bibtex
@InProceedings{velluscinum,
author="Mori Lazarin, Nilson
and Machado Coelho, Igor
and Pantoja, Carlos Eduardo
and Viterbo, Jos{\'e}",
editor="Mathieu, Philippe
and Dignum, Frank
and Novais, Paulo
and De la Prieta, Fernando",
title="{Velluscinum: A Middleware for Using Digital Assets in Multi-agent Systems}",
doi="10.1007/978-3-031-37616-0_17",
booktitle="Advances in Practical Applications of Agents, Multi-Agent Systems, and Cognitive Mimetics. The PAAMS Collection",
year="2023",
publisher="Springer Nature Switzerland",
address="Cham",
pages="200--212",
isbn="978-3-031-37616-0"
}

velluscinum's People

Contributors

innopreneur avatar kai18 avatar nilsonlazarin avatar ttmc avatar

Stargazers

 avatar

velluscinum's Issues

Função stampTransaction não falha o plano ativo

Quando eu executo a função de stampTransaction para validar uma transferência e essa requisição falha, o plano que disparou a função não falha.

Plano que chama a função:
image

Exemplos:

  • Quando tenta validar duas vezes a mesma tranferência:
    image
    image

  • Quando tenta validar uma transferência que não existe:
    image
    image

Função getAssetData

Desenvolver uma função que busca através do id do ativo e retorna uma crença com uma lista (chave:valor) do campo data do ativo digital
Exemplo:

velluscinum.getAssetData(Server, AssetId, crenca) => crenca(["chave1", "valor1"], ["chave2", "valor2"], ..., ["chaveN", "valorN"])

Bug when the Asset has a very big AMOUNT

When using the internal action velluscinum.tokenBalance(S,P,Q,C,q) the balance of a Asset is not correctly.

In the next picture, when using velluscinum-CLI the value is 9000....1, but in the agent mind the value is 9000.....0

bug-1

In the next picture, I put a JAVA print. The value is different.

bug

In the next picture, the same bug occurs.

bug0

In this case, Alice sends a belief to Bob, but the LONG value is incorrectly in the Bob's mind.

last

@jomifred I'm using wrong?
testeWalletBUG.zip

Função getWalletContent

Desenvolver uma função para resgatar o conteúdo presente em uma carteira digital, esta função retorna dentro de uma crença o id do ativo digital e o valor/quantidade deste ativo
Exemplo:

velluscinum.getWalletContent(Server, Priv, Pub, crenca) => crenca([ "asset1",quantidade1 ], [ "asset2",quantidade2 ], ..., [ "assetN",quantidadeN ])

Nova Função loadWallet e saveWallet

Criar uma função para carregar uma carteira digital já existente (loadWallet) e uma para salvar a carteira digital que deseja (saveWallet).
Com a existência destas funções seria possível o mesmo SMA ter suas propriedades salvas e carregadas em outras execuções dele mesmo, assim trazendo um cenário mais real e abrindo leque para cenários novos de aplicação do Velluscinum

Função getAssetMetadata

Uma função para conseguir resgatar os registros presentes em uma NFT presente em uma carteira digital

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.