mirror of
https://github.com/vacp2p/research.git
synced 2025-02-24 20:28:06 +00:00
93 lines
2.8 KiB
Markdown
93 lines
2.8 KiB
Markdown
# Hello PSS
|
|
|
|
## Swarm hello world
|
|
|
|
```
|
|
# Geth new account
|
|
geth account new
|
|
echo "0ab9f275308307188de76f82cbc08a5258b03110" >> alice.tmp
|
|
|
|
# Get rid of password prompt later
|
|
echo "" >> password.tmp
|
|
|
|
# Start swarm node
|
|
swarm --bzzaccount `cat alice.tmp`
|
|
|
|
# Test up and down
|
|
swarm up README.md > readme-ref.tmp
|
|
swarm down bzz:/`cat readme-ref.tmp` test.tmp
|
|
```
|
|
|
|
## Feeds
|
|
|
|
```
|
|
# Using human readable topic, can equally well use --topic
|
|
swarm --bzzaccount `cat alice.tmp` feed create --name "bob"
|
|
# Returns feed manifest
|
|
# 2a0ddb7d63cc4926d168697da1ad76bdad3782611c8f75bd1ce2f8b5e096b6e0
|
|
|
|
# XXX: What's the difference? Doesn't it use bzzapi and use local instance by default?
|
|
swarm --bzzaccount `cat alice.tmp` --bzzapi http://localhost:8500 feed create --name "bob"
|
|
# 2a0ddb7d63cc4926d168697da1ad76bdad3782611c8f75bd1ce2f8b5e096b6e0
|
|
|
|
# XXX: What to do with feed manifest? How get it?
|
|
|
|
# Posting to a feed using name/topic/manifest, need hex, example here
|
|
swarm --bzzaccount `cat alice.tmp` feed update --name bob 0x68656c6c6f2031
|
|
|
|
# Reading feed info
|
|
swarm --bzzaccount `cat alice.tmp` feed info --name "bob"
|
|
# {"feed":{"topic":"0x626f620000000000000000000000000000000000000000000000000000000000","user":"0x0ab9f275308307188de76f82cbc08a5258b03110"},"epoch":{"time":1554695168,"level":24},"protocolVersion":0}
|
|
|
|
# Reading feed updates, can't with CLI but
|
|
curl 'http://localhost:8500/bzz-feed:/?user=0x0ab9f275308307188de76f82cbc08a510&name=bob'
|
|
# `hello 1` = hex above? +1
|
|
|
|
# Posting message to feed
|
|
echo "Hello world" > message
|
|
# Need right format for hex
|
|
cat message | hexdump -v -e '/1 "%02x"' > hex-message
|
|
|
|
swarm --bzzaccount `cat alice.tmp` --password password.tmp feed update --name bob 0x`cat hex-message`
|
|
|
|
curl 'http://localhost:8500/bzz-feed:/?user=0x0ab9f275308307188de76f82cbc08a5258b03110&name=bob'
|
|
# Hello world
|
|
```
|
|
|
|
We can use `--user` to refer to another person as opposed to `bzzaccount` by default.
|
|
|
|
## PSS
|
|
|
|
First, standalone with ethereum-samples. Second, in Go script send and receive (WIP).
|
|
|
|
Testing only: private keys galore
|
|
|
|
Ok we have two (hardcoded) independent, locally running Geth nodes with swarm service messaging over PSS:
|
|
|
|
```
|
|
Received message Hello world from 307830346335363133316438646564393065373962373662393766323665386663303332353937383836666636386162363535376639316334626631616534366561623934343135633664663330626236343739636634306638313139373762623262323337373837663562383037643937313931663761393934613535383633336530
|
|
```
|
|
|
|
### How to run
|
|
```
|
|
# Run receiver
|
|
./scripts/run-bob
|
|
|
|
# Run sender
|
|
./scripts/run-alice
|
|
```
|
|
|
|
### Next steps?
|
|
- Put logs elsewhere
|
|
- Allow send and receive from both (bg subscribe)?
|
|
- Allow interactive message send?
|
|
- When sending, also update to feeds
|
|
- For feeds, move from curl cli to go/jsonrpc api
|
|
- When going online, allow querying of feeds
|
|
- In message, also includes message dependencies
|
|
|
|
|
|
## Later
|
|
|
|
Simple Go CLI
|