Connect telescopes to the Gno.land blockchain. Telescope owners share access to their equipment; anyone with access can point the telescope at any target and get a captured image back.
Goal: Observe anything in the sky in real time through a community-driven telescope network.
Architecture inspired by PiaGno πΉ
βββββββββββββββββββββββ
β Authorized User β
β (web or gnokey) β
ββββββββββ¬βββββββββββββ
β SubmitCommand(capture, ra, dec, exposure)
βΌ
βββββββββββββββββββββββββββββββ
β r/vik000/telescope β β your telescope realm
β β
β - Access control β
β - Command queue β
β - Capture history β
β - Render (web UI + forms) β
ββββββββββ¬βββββββββββββββββββββ
β cross-realm: Register / UpdateStatus / SubmitCapture
β βΌ
β βββββββββββββββββββββββββββββββ
β β r/vik000/nightsky β β network registry
β β β
β β - Telescope registry β
β β - Network-wide captures β
β βββββββββββββββββββββββββββββββ
β
β Poll :status / :commandData β call GetNextCommand / RecordCapture
βΌ
βββββββββββββββββββββββββββββββ
β telescope-controller β β runs on computer with telescope access
β (Go binary) β
β β
β - Polls blockchain β
β - Runs capture/stop binary β
β - Uploads to Imgur β
β - Reports results β
βββββββββββββββββββββββββββββββ
β
βΌ
telescope hardware
(via telescope_control.py)
| Path | Type | Role |
|---|---|---|
gno.land/p/vik000/nightsky |
package | Shared types, TelescopeRealm logic, render functions |
gno.land/r/vik000/nightsky |
realm | Telescope registry, global capture feed |
gno.land/r/vik000/telescope |
realm | Vik's personnal telescope - usable as a template |
telescope-controller/ |
Go binary | Hardware bridge to telescope |
Copy gno.land/r/vik000/telescope and update:
owneraddress ininit()- telescope name, model, coordinates
- package path in
gnomod.toml
Registration with the network happens automatically from init() via registry.Register(cross, config).
Then publish your realm:
gnokey maketx addpkg \
-pkgpath "gno.land/r/yourusername/telescope" \
-pkgdir "." \
-gas-fee AMOUNT -gas-wanted AMOUNT \
-broadcast -chainid CHAIN -remote rpc.gno.land:443 \
YOUR_ADDRESSEdit telescope-controller/config.ini.
Build and run:
cd telescope-controller
go build -o telescope-controller .
./telescope-controllerThe controller polls :status every interval_seconds, reads :commandData when a command is queued, executes the configured binary (blocking), uploads the result to Imgur, and reports back via RecordCapture.
Capture args are appended as positional parameters:
telescope_control.py capture <ra> <dec> <exposure_seconds>
telescope_control.py stop
Navigate to gno.land/r/yourusername/telescope:control - an interactive form lets you choose capture/stop, enter RA/Dec/exposure, and submit directly through your adena wallet.
# Capture - RA in hours (0β24), Dec in degrees (β90β90), exposure in seconds (1β300)
gnokey maketx call \
-pkgpath "gno.land/r/yourusername/telescope" \
-func "SubmitCommand" \
-args "capture" -args "5.5" -args "22.5" -args "60" \
-gas-fee 1000000ugnot -gas-wanted 2000000 \
-broadcast -chainid portal-loop -remote rpc.gno.land:443 \
YOUR_ADDRESS
# Stop
gnokey maketx call \
-pkgpath "gno.land/r/yourusername/telescope" \
-func "SubmitCommand" \
-args "stop" -args "" -args "" -args "" \
-gas-fee 1000000ugnot -gas-wanted 2000000 \
-broadcast -chainid portal-loop -remote rpc.gno.land:443 \
YOUR_ADDRESSgnokey maketx call \
-pkgpath "gno.land/r/yourusername/telescope" \
-func "GrantAccess" \
-args "g1friend_address" -args "30" \
-gas-fee 1000000ugnot -gas-wanted 2000000 \
-broadcast -chainid portal-loop -remote rpc.gno.land:443 \
YOUR_ADDRESSdurationDays = 0 means access never expires.
- Seestar S30 / S50 smart telescopes (~$500β700)
- Controlled via seestar_alp or a custom
telescope_control.py
- Phase 1: Working prototype - one telescope, command queue, Imgur captures, web forms, access control
- Phase 2: Multi-telescope network with map, bidding/scheduling for telescope time
- Phase 3: Integration with professional 3-axis mounts and higher-end cameras
- Future: DIY telescope builds using 3D printing and open-source designs
- Network: gno.land/r/vik000/nightsky
- Example telescope: gno.land/r/vik000/telescope
- Gno.land docs: docs.gno.land