{"id":15914601,"url":"https://github.com/bbengfort/rvasp","last_synced_at":"2025-04-03T03:44:24.210Z","repository":{"id":56142352,"uuid":"301689065","full_name":"bbengfort/rvasp","owner":"bbengfort","description":"Robot VASP for TRISA demonstration and integration","archived":false,"fork":false,"pushed_at":"2020-11-24T15:56:44.000Z","size":145,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-08T17:45:54.523Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bbengfort.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-06T10:23:02.000Z","updated_at":"2023-08-13T15:40:23.000Z","dependencies_parsed_at":"2022-08-15T13:31:00.175Z","dependency_job_id":null,"html_url":"https://github.com/bbengfort/rvasp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbengfort%2Frvasp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbengfort%2Frvasp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbengfort%2Frvasp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbengfort%2Frvasp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbengfort","download_url":"https://codeload.github.com/bbengfort/rvasp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246933357,"owners_count":20857052,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-06T17:04:33.851Z","updated_at":"2025-04-03T03:44:24.175Z","avatar_url":"https://github.com/bbengfort.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rVASP\n\n**Robot VASP for TRISA demonstration and integration**\n\nThis is a simple gRPC server that implements a UI workflow and messaging framework to demonstrate sending and receiving transactions using the TRISA InterVASP protocol. The server was built to support a demonstration UI that requires a streaming interface so that a live message flow is achieved. However, the communication protocol between rVASPs also demonstrates how implementers might go about writing InterVASP services in their own codebases. The architecture is as follows:\n\n![Architecture](fixtures/rvasp.png)\n\n## Generating Protocol Buffers\n\nTo regenerate the Go and Python code from the protocol buffers:\n\n```\n$ go generate ./...\n```\n\nThis will generate the Go code in `pb/` and the Python code in `pb/rvaspy`. Alternatively you can manually generate the code to specify different directories using the following commands:\n\n```\n$ protoc -I . --go_out=plugins=grpc:. api.proto\n$ python -m grpc_tools.protoc -I . --python_out=./rvaspy --grpc_python_out=./rvaspy api.proto\n```\n\n## Quick Start\n\nTo get started using the rVASP, you can run the local server as follows:\n\n```\n$ go run ./cmd/rvasp serve\n```\n\nThe server should now be listening for TRISADemo RPC messages. To send messages using the python API, make sure you can import the modules from `rvaspy` - the simplest way to do this is to install the package in editable mode as follows:\n\n```\n$ pip install -e ./rvaspy/\n```\n\nThis will use the `setup.py` file in the `rvaspy` directory to install the package to your `$PYTHON_PATH`. Because it is in editable mode, any time you regenerate the protocol buffers or pull the repository, the module should be updated on the next time you import. An example script for using the package is as follows:\n\n```python\nimport rvaspy\n\napi = rvaspy.connect(\"localhost:4434\")\n\ncmds = [\n    api.account_request(\"robert@bobvasp.co.uk\"),\n    api.transfer_request(\"robert@bobvasp.co.uk\", \"mary@alicevasp.us\", 42.99)\n]\n\nfor msg in api.stub.LiveUpdates(iter(cmds)):\n    print(msg)\n```\n\nNote that the `RVASP` api client is not fully implemented yet.\n\n## Containers\n\nWe are currently not using a container repository, so to build the docker images locally, please run the following steps in order:\n\n1. Build the root Docker image tagged as `trisacrypto/rvasp:latest`\n2. Build the alice, bob, and evil containers in `containers/`, tagging them appropriately\n3. Use `docker-compose` to run the three rVASPs locally\n\nTo simplify the build process, we have added a script that builds all 4 images. You can execute the building script as follows:\n\n```\n$ ./containers/rebuild.sh\n```\n\nThen all that's needed is to run `docker-compose up` to get the robot VASPs running locally.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbengfort%2Frvasp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbengfort%2Frvasp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbengfort%2Frvasp/lists"}