Skip to content

Commit

Permalink
Merge branch 'main' into dk-mvt-localnet-docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Olshansk committed Apr 30, 2024
2 parents 2eb7915 + 58d014b commit 0908881
Show file tree
Hide file tree
Showing 13 changed files with 523 additions and 88 deletions.
72 changes: 37 additions & 35 deletions .github/workflows-helpers/run-e2e-test-job-template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,42 +11,44 @@ spec:
pokt.network/purpose: e2e-tests
spec:
containers:
- name: e2e-tests
image: ghcr.io/pokt-network/poktrolld:${IMAGE_TAG}
command: ["/bin/sh"]
args:
- "-c"
- |
poktrolld q gateway list-gateway --node=$POCKET_NODE && \
poktrolld q application list-application --node=$POCKET_NODE && \
poktrolld q supplier list-supplier --node=$POCKET_NODE && \
make acc_initialize_pubkeys && \
go test -v ./e2e/tests/... -tags=e2e
env:
- name: POCKET_NODE
value: tcp://${NAMESPACE}-validator-poktrolld:36657
- name: VALIDATOR_RPC_ENDPOINT
value: ${NAMESPACE}-validator-poktrolld:36657
- name: E2E_DEBUG_OUTPUT
value: "false" # Flip to true to see the command and result of the execution
- name: POKTROLLD_HOME
value: /root/.poktroll
- name: APPGATE_SERVER_URL
value: http://${NAMESPACE}-appgate-server:80
volumeMounts:
- mountPath: /root/.poktroll/keyring-test/
name: keys-volume
- mountPath: /root/.poktroll/config/
name: configs-volume
restartPolicy: Never
volumes:
- secret:
defaultMode: 420
secretName: keys-${IMAGE_TAG}
- name: e2e-tests
image: ghcr.io/pokt-network/poktrolld:${IMAGE_TAG}
command: ["/bin/sh"]
args:
- "-c"
- |
poktrolld q gateway list-gateway --node=$POCKET_NODE && \
poktrolld q application list-application --node=$POCKET_NODE && \
poktrolld q supplier list-supplier --node=$POCKET_NODE && \
make acc_initialize_pubkeys && \
go test -v ./e2e/tests/... -tags=e2e
env:
- name: POCKET_NODE
value: tcp://${NAMESPACE}-validator-poktrolld:36657
- name: VALIDATOR_RPC_ENDPOINT
value: ${NAMESPACE}-validator-poktrolld:36657
- name: E2E_DEBUG_OUTPUT
value: "false" # Flip to true to see the command and result of the execution
- name: POKTROLLD_HOME
value: /root/.poktroll
- name: APPGATE_SERVER_URL
value: http://${NAMESPACE}-appgate-server:80
- name: GATEWAY_URL
value: http://${NAMESPACE}-gateway:80
volumeMounts:
- mountPath: /root/.poktroll/keyring-test/
name: keys-volume
- configMap:
defaultMode: 420
name: configs-${IMAGE_TAG}
- mountPath: /root/.poktroll/config/
name: configs-volume
restartPolicy: Never
volumes:
- secret:
defaultMode: 420
secretName: keys-${IMAGE_TAG}
name: keys-volume
- configMap:
defaultMode: 420
name: configs-${IMAGE_TAG}
name: configs-volume
serviceAccountName: default
backoffLimit: 0
9 changes: 7 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ POKTROLLD_HOME ?= ./localnet/poktrolld
POCKET_NODE ?= tcp://127.0.0.1:36657 # The pocket node (validator in the localnet context)
TESTNET_RPC ?= https://testnet-validated-validator-rpc.poktroll.com/ # TestNet RPC endpoint. Update if there's another "main" testnet.
APPGATE_SERVER ?= http://localhost:42069
GATEWAY_URL ?= http://localhost:42079
POCKET_ADDR_PREFIX = pokt
CHAIN_ID = poktroll

Expand Down Expand Up @@ -323,6 +324,10 @@ test_e2e: test_e2e_env ## Run all E2E tests
test_e2e_app:
go test -v ./e2e/tests/... -tags=e2e,test --features-path=stake_app.feature

.PHONY: test_e2e_supplier
test_e2e_supplier:
go test -v ./e2e/tests/... -tags=e2e,test --features-path=stake_supplier.feature

.PHONY: test_e2e_gateway
test_e2e_gateway:
go test -v ./e2e/tests/... -tags=e2e,test --features-path=stake_gateway.feature
Expand Down Expand Up @@ -468,7 +473,7 @@ gateway3_stake: ## Stake gateway3

.PHONY: gateway_unstake
gateway_unstake: ## Unstake an gateway (must specify the GATEWAY env var)
poktrolld --home=$(POKTROLLD_HOME) tx gateway unstake-gateway --keyring-backend test --from $(GATEWAY) --node $(POCKET_NODE) --chain-id $(CHAIN_ID)
poktrolld --home=$(POKTROLLD_HOME) tx gateway unstake-gateway -y --keyring-backend test --from $(GATEWAY) --node $(POCKET_NODE) --chain-id $(CHAIN_ID)

.PHONY: gateway1_unstake
gateway1_unstake: ## Unstake gateway1
Expand Down Expand Up @@ -508,7 +513,7 @@ app3_stake: ## Stake app3

.PHONY: app_unstake
app_unstake: ## Unstake an application (must specify the APP env var)
poktrolld --home=$(POKTROLLD_HOME) tx application unstake-application --keyring-backend test --from $(APP) --node $(POCKET_NODE) --chain-id $(CHAIN_ID)
poktrolld --home=$(POKTROLLD_HOME) tx application unstake-application -y --keyring-backend test --from $(APP) --node $(POCKET_NODE) --chain-id $(CHAIN_ID)

.PHONY: app1_unstake
app1_unstake: ## Unstake app1
Expand Down
1 change: 0 additions & 1 deletion README.md

This file was deleted.

81 changes: 81 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
---
sidebar_position: 1
title: Poktroll
id: home-doc
slug: /
---

<div align="center">
<a href="https://www.pokt.network">
<img src="https://user-images.githubusercontent.com/2219004/151564884-212c0e40-3bfa-412e-a341-edb54b5f1498.jpeg" alt="Pocket Network logo" width="340"/>
</a>
</div>

<div>
<a href="https://discord.gg/pokt"><img src="https://img.shields.io/discord/553741558869131266"/></a>
<a href="https://github.com/pokt-network/poktroll/releases"><img src="https://img.shields.io/github/release-pre/pokt-network/pocket.svg"/></a>
<a href="https://github.com/pokt-network/poktroll/pulse"><img src="https://img.shields.io/github/contributors/pokt-network/pocket.svg"/></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-blue.svg"/></a>
<a href="https://github.com/pokt-network/poktroll/pulse"><img src="https://img.shields.io/github/last-commit/pokt-network/pocket.svg"/></a>
<a href="https://github.com/pokt-network/poktroll/pulls"><img src="https://img.shields.io/github/issues-pr/pokt-network/pocket.svg"/></a>
<a href="https://github.com/pokt-network/poktroll/releases"><img src="https://img.shields.io/badge/platform-linux%20%7C%20macos-pink.svg"/></a>
<a href="https://github.com/pokt-network/poktroll/issues"><img src="https://img.shields.io/github/issues/pokt-network/pocket.svg"/></a>
<a href="https://github.com/pokt-network/poktroll/issues"><img src="https://img.shields.io/github/issues-closed/pokt-network/pocket.svg"/></a>
<a href="https://godoc.org/github.com/pokt-network/pocket"><img src="https://img.shields.io/badge/godoc-reference-blue.svg"/></a>
<a href="https://goreportcard.com/report/github.com/pokt-network/pocket"><img src="https://goreportcard.com/badge/github.com/pokt-network/pocket"/></a>
<a href="https://golang.org"><img src="https://img.shields.io/badge/golang-v1.20-green.svg"/></a>
<a href="https://github.com/tools/godep" ><img src="https://img.shields.io/badge/godep-dependency-71a3d9.svg"/></a>
</div>

# poktroll <!-- omit in toc -->

**poktroll** is built using the [Cosmos SDK](https://docs.cosmos.network) and
[CometBFT](https://cometbft.com/), created with [Ignite CLI](https://ignite.com/cli)
for the Shannon upgrade of the [Pocket Network](https://pokt.network) blockchain.

- [Learn about Pocket Network](#learn-about-pocket-network)
- [Developer Documentation](#developer-documentation)
- [Roadmap](#roadmap)
- [Quickstart](#quickstart)
- [Godoc](#godoc)
- [Have questions? Ask An PNYC](#have-questions-ask-an-pnyc)
- [License](#license)

## Learn about Pocket Network

User friendly documentation of the Shannon upgrade is still a WIP, but there are
a handful of (potentially outdated) resources you can reference in the meantime
to build a better understanding of Pocket Network:

- [Pocket Network official documentation](https://docs.pokt.network)
- [[Live] Pocket Network Morse; aka v0](https://github.com/pokt-network/pocket-core)
- [[Outdated] Pocket Network Protocol](https://github.com/pokt-network/pocket-network-protocol)
- [[Deprecated]Pocket Network V1](https://github.com/pokt-network/pocket)

## Developer Documentation

The developer documentation is available at [dev.poktroll.com](https://dev.poktroll.com).

## Roadmap

You can view the Shannon Roadmap on [Github](https://github.com/orgs/pokt-network/projects/144?query=is%3Aopen+sort%3Aupdated-desc)

## Quickstart

The best way to get involved is by following the [quickstart instructions](<[./develop/developer_guide/quickstart.md](https://dev.poktroll.com/develop/developer_guide/quickstart)>).

## Godoc

The Godoc for the source code in this can be found at [pkg.go.dev/github.com/pokt-network/poktroll](https://pkg.go.dev/github.com/pokt-network/poktroll).

## Have questions? Ask An PNYC

You can use [PNYX](https://pnyxai.com/), an AI-powered search engine that has been
trained and indexed on the Pocket Network documentation, community calls, forums
and much more!

---

## License

This project is licensed under the MIT License; see the [LICENSE](https://github.com/pokt-network/poktroll/blob/main/LICENSE) file for details.
46 changes: 14 additions & 32 deletions docusaurus/docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,15 @@ slug: /

# poktroll <!-- omit in toc -->

**poktroll** is built using the [Cosmos SDK](https://docs.cosmos.network) and [CometBFT](https://cometbft.com/), created with [Ignite CLI](https://ignite.com/cli) for the Shannon upgrade of the [Pocket Network](https://pokt.network) blockchain.

This R&D effort is the result of a research spike conducted by the Core [Pocket Network](https://pokt.network/) Protocol Team at [GROVE Inc.](https://grove.city/). We have documented our research journey [here](https://www.pokt.network/blog/pokt-network-rolling-into-the-modular-future-of-the-protocol-a-technical-deep-dive) (deep dive) and [here](https://www.pokt.network/blog/a-sovereign-rollup-and-a-modular-future) (summary).
**poktroll** is built using the [Cosmos SDK](https://docs.cosmos.network) and
[CometBFT](https://cometbft.com/), created with [Ignite CLI](https://ignite.com/cli)
for the Shannon upgrade of the [Pocket Network](https://pokt.network) blockchain.

- [Learn about Pocket Network](#learn-about-pocket-network)
- [Roadmap](#roadmap)
- [Getting Started](#getting-started)
- [Quickstart](#quickstart)
- [Godoc](#godoc)
- [Have questions? Ask An AI](#have-questions-ask-an-ai)
- [PNYX (Search Engine)](#pnyx-search-engine)
- [GPokT (Chatbot)](#gpokt-chatbot)
- [Quickstart](#quickstart)
- [Godoc](#godoc)
- [Have questions? Ask An PNYC](#have-questions-ask-an-pnyc)
- [License](#license)

## Learn about Pocket Network
Expand All @@ -50,43 +47,28 @@ a handful of (potentially outdated) resources you can reference in the meantime
to build a better understanding of Pocket Network:

- [Pocket Network official documentation](https://docs.pokt.network)
- [Pocket Network Morse; aka v0 (current mainnet)](https://github.com/pokt-network/pocket-core)
- [Pocket Network Protocol (outdated)](https://github.com/pokt-network/pocket-network-protocol)
- [Pocket Network V1 (deprecated)](https://github.com/pokt-network/pocket)
- [[Live] Pocket Network Morse; aka v0](https://github.com/pokt-network/pocket-core)
- [[Outdated] Pocket Network Protocol](https://github.com/pokt-network/pocket-network-protocol)
- [[Deprecated]Pocket Network V1](https://github.com/pokt-network/pocket)

## Roadmap

You can details related to our roadmap [here](./planning/roadmap/roadmap.md) and the
roadmap changelog [here](./planning/roadmap/roadmap_changelog.md).

## Getting Started
You can view the Shannon Roadmap on [Github](https://github.com/orgs/pokt-network/projects/144?query=is%3Aopen+sort%3Aupdated-desc)

### Quickstart
## Quickstart

The best way to get involved is by following the instructions [here](./develop/developer_guide/quickstart.md).
The best way to get involved is by following the [quickstart instructions](./develop/developer_guide/quickstart.md).

### Godoc
## Godoc

The Godoc for the source code in this can be found at [pkg.go.dev/github.com/pokt-network/poktroll](https://pkg.go.dev/github.com/pokt-network/poktroll).

## Have questions? Ask An AI

The fastest and easiest way to get answers to your questions is by one of our
several AI-powered tools.

### PNYX (Search Engine)
## Have questions? Ask An PNYC

You can use [PNYX](https://pnyxai.com/), an AI-powered search engine that has been
trained and indexed on the Pocket Network documentation, community calls, forums
and much more!

### GPokT (Chatbot)

You can use our chatbot, [GPokT](https://gpoktn.streamlit.app), to ask questions
about Pocket Network. Please note that it may require you to provide your own
LLM API token. If the deployed version of GPokT is down, you can deploy your own
version by following the instructions [here](https://github.com/pokt-network/gpokt).

---

## License
Expand Down
32 changes: 30 additions & 2 deletions e2e/tests/init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (

"github.com/pokt-network/poktroll/app"
"github.com/pokt-network/poktroll/testutil/testclient"
"github.com/pokt-network/poktroll/testutil/yaml"
apptypes "github.com/pokt-network/poktroll/x/application/types"
prooftypes "github.com/pokt-network/poktroll/x/proof/types"
sessiontypes "github.com/pokt-network/poktroll/x/session/types"
Expand Down Expand Up @@ -219,14 +220,16 @@ func (s *suite) TheUserStakesAWithUpoktFromTheAccount(actorType string, amount i

func (s *suite) TheUserStakesAWithUpoktForServiceFromTheAccount(actorType string, amount int64, serviceId, accName string) {
// Create a temporary config file
configPathPattern := fmt.Sprintf("%s_stake_config_*.yaml", accName)
configPathPattern := fmt.Sprintf("%s_stake_config.yaml", accName)
configFile, err := os.CreateTemp("", configPathPattern)
require.NoError(s, err, "error creating config file in %q", path.Join(os.TempDir(), configPathPattern))

configContent := fmt.Sprintf("stake_amount: %d upokt\nservice_ids:\n - %s", amount, serviceId)
// Write the config content to the file
configContent := s.getConfigFileContent(amount, actorType, serviceId)
_, err = configFile.Write([]byte(configContent))
require.NoError(s, err, "error writing config file %q", configFile.Name())

// Prepare the command arguments
args := []string{
"tx",
actorType,
Expand All @@ -248,6 +251,31 @@ func (s *suite) TheUserStakesAWithUpoktForServiceFromTheAccount(actorType string
s.pocketd.result = res
}

func (s *suite) getConfigFileContent(amount int64, actorType, serviceId string) string {
var configContent string
switch actorType {
case "application":
configContent = fmt.Sprintf(`
stake_amount: %dupokt
service_ids:
- %s`,
amount, serviceId)
case "supplier":
configContent = fmt.Sprintf(`
stake_amount: %dupokt
services:
- service_id: %s
endpoints:
- publicly_exposed_url: http://relayminer:8545
rpc_type: json_rpc`,
amount, serviceId)
default:
s.Fatalf("unknown actor type %s", actorType)
}
fmt.Println(yaml.NormalizeYAMLIndentation(configContent))
return yaml.NormalizeYAMLIndentation(configContent)
}

func (s *suite) TheUserUnstakesAFromTheAccount(actorType string, accName string) {
args := []string{
"tx",
Expand Down
28 changes: 28 additions & 0 deletions e2e/tests/stake_supplier.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
Feature: Stake Supplier Namespace

Scenario: User can stake a Supplier
Given the user has the pocketd binary installed
And the "supplier" for account "supplier2" is not staked
# Stake with 1 uPOKT more than the current stake used in genesis to make
# the transaction succeed.
And the account "supplier2" has a balance greater than "1000070" uPOKT
When the user stakes a "supplier" with "1000070" uPOKT for "anvil" service from the account "supplier2"
Then the user should be able to see standard output containing "txhash:"
And the user should be able to see standard output containing "code: 0"
And the pocketd binary should exit without error
# TODO_TECHDEBT(@Olshansk, @red-0ne): Replace these time-based waits with event listening waits
And the user should wait for "5" seconds
And the "supplier" for account "supplier2" is staked with "1000070" uPOKT
And the account balance of "supplier2" should be "1000070" uPOKT "less" than before

Scenario: User can unstake a Supplier
Given the user has the pocketd binary installed
And the "supplier" for account "supplier2" is staked with "1000070" uPOKT
And an account exists for "supplier2"
When the user unstakes a "supplier" from the account "supplier2"
Then the user should be able to see standard output containing "txhash:"
And the user should be able to see standard output containing "code: 0"
And the pocketd binary should exit without error
And the user should wait for "5" seconds
And the "supplier" for account "supplier2" is not staked
And the account balance of "supplier2" should be "1000070" uPOKT "more" than before
Loading

0 comments on commit 0908881

Please sign in to comment.