Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
ce7ffe6
fix VM Shutdown panic (#39)
ramilexe Jun 23, 2024
ba4026c
add persistence storage for KVStore and Wasm app (#40)
ramilexe Jun 23, 2024
fd15ee7
gRPC endpoint for CosmWasm app (#43)
vasylNaumenko Jul 7, 2024
4666ea7
Fixes (#44)
vasylNaumenko Jul 24, 2024
4de4d4d
golangci-lint (#48)
vasylNaumenko Jul 24, 2024
fecb010
rpc status (#52)
vasylNaumenko Aug 27, 2024
017edc7
cosmos api configuration (#54)
vasylNaumenko Aug 28, 2024
12b389f
fix for api config (#55)
vasylNaumenko Aug 29, 2024
bfc067c
Lnd-583 - Review OAK (#56)
vasylNaumenko Sep 13, 2024
1cc8932
Update LICENSE
iamnathanwindsor Sep 13, 2024
1413fa5
Create SECURITY.md
iamnathanwindsor Sep 13, 2024
5b8a441
Update README.md
iamnathanwindsor Sep 14, 2024
6e32f3f
Update README.md
iamnathanwindsor Sep 14, 2024
1225b33
Update README.md
iamnathanwindsor Sep 14, 2024
1df30ae
Update README.md
iamnathanwindsor Sep 14, 2024
e9dbac9
Update README.md
iamnathanwindsor Sep 14, 2024
67abb9b
Update LICENSE
iamnathanwindsor Sep 14, 2024
ce1376b
Update README.md
iamnathanwindsor Sep 17, 2024
778ead2
Create CONTRIBUTING.md
iamnathanwindsor Sep 17, 2024
20c7513
Create CODE_OF_CONDUCT.md
iamnathanwindsor Sep 17, 2024
1c64ee9
Update README.md
iamnathanwindsor Sep 17, 2024
ed567eb
Update README.md
iamnathanwindsor Sep 17, 2024
a731694
Update README.md
iamnathanwindsor Sep 17, 2024
6710be0
Update README.md
iamnathanwindsor Sep 17, 2024
9e82b20
Update CONTRIBUTING.md
iamnathanwindsor Sep 17, 2024
847d2fa
Rename LandslideVM to slide-sdk (#58)
ramilexe Sep 19, 2024
d746559
Update README.md
iamnathanwindsor Sep 20, 2024
1020cdf
Update SECURITY.md
iamnathanwindsor Sep 20, 2024
e4c2085
Update SECURITY.md
iamnathanwindsor Sep 20, 2024
bfbbbd6
Update SECURITY.md
iamnathanwindsor Sep 21, 2024
6e40f7f
Update SECURITY.md
iamnathanwindsor Sep 21, 2024
e0844db
Update SECURITY.md
iamnathanwindsor Sep 21, 2024
809bcc5
Update SECURITY.md
iamnathanwindsor Sep 21, 2024
554fc0d
Update LICENSE
iamnathanwindsor Sep 21, 2024
bcf37b9
Add golint to GitHub Actions workflow for Go code linting
vasylNaumenko Jul 19, 2024
e9ef085
ignore incomplete comment, fix namings for golint
vasylNaumenko Jul 19, 2024
d3fa5c9
supressing all warnigs with comments
vasylNaumenko Jul 19, 2024
0273b7b
supressing all warnigs with comments
vasylNaumenko Jul 19, 2024
239fa47
using of golangci-lint
vasylNaumenko Jul 22, 2024
c3a3c3a
add comments for exported methods of RPC
Jul 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@ name: Go

on:
push:
branches: [ "main" ]
branches:
- "main"
- "dev"
pull_request:

jobs:

build:
runs-on: ubuntu-latest
steps:
Expand All @@ -35,8 +36,13 @@ jobs:
- name: Run staticcheck
run: staticcheck ./...

- name: Install golint
run: go install golang.org/x/lint/golint@latest
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.60

- name: Run golangci-lint
run: golangci-lint run ./...

- name: Test
run: go test -race -vet=off -v ./...
367 changes: 367 additions & 0 deletions .golangci.yml

Large diffs are not rendered by default.

132 changes: 132 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official email address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
[INSERT CONTACT METHOD].
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series of
actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within the
community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].

Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].

For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].

[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
81 changes: 81 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Contributing to SLIDE SDK

First off, thank you for considering contributing to SLIDE SDK! It's people like you that make SLIDE SDK such a great tool.

## Code of Conduct

By participating in this project, you are expected to uphold our [Code of Conduct](CODE_OF_CONDUCT.md). Please note that this project is released with a Contributor Code of Conduct. By participating, you agree to abide by its terms.

## Important Note

SLIDE SDK is licensed under the Business Source License 1.1 (BUSL-1.1). Please make sure you understand the implications of this license before contributing.

## How Can I Contribute?

### Reporting Bugs

- Ensure the bug was not already reported by searching on GitHub under [Issues](https://github.com/LandslideNetwork/landslidevm/issues).
- If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/LandslideNetwork/landslidevm/issues/new). Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.

### Suggesting Enhancements

- Open a new issue with a clear title and detailed description of the suggested enhancement.
- Provide any relevant examples or use cases that support your suggestion.

### Pull Requests

1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Ensure your code adheres to our coding standards.
4. If you've added code that should be tested, add tests.
5. Ensure the test suite passes.
6. Make sure your code lints.
7. Open a pull request with a clear description of your changes.
8. Reference any related issues in your pull request.

## Development Setup and Testing

For development setup and testing instructions, please follow our docs at:
https://docs.landslide.network/

## Styleguides

### Git Commit Messages

- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line

### Go Styleguide

We follow the [Effective Go](https://golang.org/doc/effective_go) guidelines and [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments) for our Go code. Please ensure your contributions adhere to these standards.

### Documentation Styleguide

- Use [Markdown](https://www.markdownguide.org/) for documentation.
- Write clear, concise, and grammatically correct content.
- Use headers to organize content hierarchically.
- Include code examples where appropriate, using proper syntax highlighting.
- Keep documentation up-to-date with code changes.

## Issue and Pull Request Labels

We use the following labels to categorize issues and pull requests:

- `bug`: Indicates an unexpected problem or unintended behavior
- `enhancement`: Indicates new feature requests or improvements to existing features
- `documentation`: Relates to improvements or additions to documentation
- `good first issue`: Good for newcomers to the project
- `help wanted`: Extra attention is needed
- `question`: Further information is requested
- `security`: Relates to security issues
- `performance`: Addresses performance-related aspects
- `refactor`: Code refactoring without changing functionality
- `test`: Relates to testing infrastructure or test cases

## Questions?

If you have any questions, please feel free to contact the project maintainers.

Thank you for contributing to SLIDE SDK!
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Parameters

Licensor: Gaia Labs LTD

Licensed Work: CosmosAVAX V1 / LandslideVM
Licensed Work: Slide SDK V1.0.0 / LandslideVM
The Licensed Work is (c) 2024 Gaia Labs LTD

Additional Use Grant: Any uses listed and defined at
Expand Down
58 changes: 57 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,57 @@
# landslidevm
# Slide SDK
![Slide SDK](https://media.publit.io/file/Landslide/Github/Slide-SDK.png)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)

LandslideVM is a custom virtual machine designed for AvalancheGo. It enables the execution of Cosmos SDK chains on the Avalanche network by emulating the CometBFT consensus mechanism. This innovative VM allows for the execution of Cosmos SDK chains and interaction with Cosmos modules while being secured by the Avalanche consensus protocol.

## Important Disclaimer

**Landslide is currently in testnet with the release of SlideSDK. Please expect bumps in the road as we continue to develop and refine the system. Use at your own risk and do not use for production environments at this stage.**

## Security Audit
The SLIDE SDK has been audited by Oak Security. You can view the full audit report [here](https://github.com/oak-security/audit-reports/blob/main/Slide%20SDK/2024-09-20%20Audit%20Report%20-%20Slide%20SDK%20v1.1.pdf).

## Features

- Execute Cosmos SDK chains on Avalanche
- Emulate CometBFT consensus
- Interact with Cosmos modules
- Secured by Avalanche consensus

## Dependencies

LandslideVM relies on the following major dependencies:

- Go v 1.22.7
- Cosmos SDK 0.50.9 (https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.9)
- AvalancheGo v1.11.11 (https://github.com/ava-labs/avalanchego/releases/tag/v1.11.11)

Please ensure you have the latest versions of these dependencies installed to avoid any known vulnerabilities.

## Installation

Please follow our docs for installation: (https://docs.landslide.network/)

## Security

LandslideVM has undergone a security audit by Oak Security GmbH. While efforts have been made to address identified issues, users should exercise caution and understand the following:

- The VM facilitates complex communications with AvalancheGo and implements emulation of CometBFT functionalities.
- Some Cosmos SDK modules that rely on validator information may have limited functionality due to the emulation of the consensus mechanism.
- Node operators should be careful about which gRPC endpoints are exposed publicly.

For a full understanding of the security considerations, please refer to the complete audit report.

## Contributing

We welcome contributions to the Slide SDK! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) file for details on how to contribute.

## License

Slide SDK v0.1 is licensed under the [Business Source License 1.1](./LICENSE). Please see the [LICENSE](./LICENSE) file for details.

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USE AT YOUR OWN RISK. AS MENTIONED ABOVE, LANDSLIDE IS CURRENTLY IN TESTNET AND MAY EXPERIENCE INSTABILITY OR UNEXPECTED BEHAVIOR.

For more information about LandslideVM, please [contact us/visit our website].
66 changes: 66 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# 🌊 Riding the Wave of Security

Welcome to the Slide SDK security policy, where we turn haters into heroes! We're all about catching those gnarly bugs before they wipe us out. Remember, we're still shredding on the testnet, so your help in spotting issues is totally tubular!

## Security Audit
The SLIDE SDK has been audited by Oak Security. You can view the full audit report [here](https://github.com/oak-security/audit-reports/blob/main/Slide%20SDK/2024-09-20%20Audit%20Report%20-%20Slide%20SDK%20v1.1.pdf).

## 🎯 Scope

| Version | Supported |
|---------|---------------------|
| Latest Release | 🛝 [v1.0.0](https://github.com/LandslideNetwork/slide-sdk/releases/tag/v1.0.0) |
| Main Branch | 🏄‍♀️ 🛝 [v1.0.0](https://github.com/LandslideNetwork/slide-sdk/releases/tag/v1.0.0) |

Security vulnerabilities should be reported if they can be reproduced on either the latest release or the main branch.

## 🕵️‍♂️ Calling All Haters with Benefits!

Found a bug? Don't just hate, participate! Here's how you can help us hang ten and keep Slide SDK secure:

1. **Public Reporting**: Since we're riding the testnet waves, we're open to public vulnerability reports. Feel free to open an issue on our GitHub repo with the tag [SECURITY]. This helps us build a transparent and collaborative security culture.
2. **Sensitive Issues**: For vulnerabilities that might have severe implications even on testnet (like potential economic exploits or privacy breaches), please email us at security@landslidelabs.org with the subject "Confidential Hater's Bug Report: [Brief Description]".
3. **Details, dude**: Whether public or private, give us the 411 on the bug. Include reproduction steps and all the juicy details.
4. **Collaboration**: Let's ride this wave together. We might need more info, so stay tuned and be ready to dive deeper into the issue with us.
5. **Responsible Disclosure**: For email reports, keep it on the down-low until we give the all-clear. For public issues, we'll work together in the open, but avoid sharing exploit details that could be misused.

Remember, while we're stoked about open collaboration, we reserve the right to remove or edit any reports that we feel could pose an immediate risk to our gnarly community.

## 🏆 Rewards for Rad Haters

For verified, radical bug finds, we're dishing out SLIDE tokens faster than a surfer catches a wave! The bigger the wipeout you help us avoid, the more tokens you'll slide into.

| Bug Severity | Reward |
|--------------|----------------------------|
| Critical | $10,000 in SLIDE + 🏆 |
| High | $5,000 in SLIDE + 🥈 |
| Medium | $2,500 in SLIDE + 🥉 |
| Low | $1,000 in SLIDE + 🤙 |

## 🤙 Surfer's Code of Conduct

We require all our rad researchers to:

- Abide by this policy and be mindful about sharing vulnerability info responsibly.
- Make every effort to avoid privacy violations, disruption to our gnarly systems, and destruction of data.
- Keep vulnerability info confidential if reported via email, until we've caught and surfed that bug.
- Avoid posting personally identifiable information, privately or publicly.

If you follow these guidelines when reporting an issue to us, we commit to:

- Not pursue or support any legal action related to your research on this vulnerability.
- Work with you to understand, resolve, and ultimately disclose the issue in a timely fashion.

## 🚫 No Bad Vibes Zone

While we love our Haters (with Benefits), we keep it cool here. Hate speech or any form of discrimination won't be tolerated and will be wiped out faster than a kook on a big wave. Let's keep our community respectful and inclusive dudes!

## 🌴 More Info

As we continue to ride the testnet waves, we're constantly improving our security processes. Stay tuned for more detailed information on our disclosure timeline, process, and examples of vulnerabilities we're particularly interested in.

## 🏄‍♂️ Transition to Mainnet

Heads up, beach bums! This open policy is specific to our testnet phase. As we paddle towards mainnet, we'll be updating our security policy to ensure we're ready for the big leagues. Stay tuned for updates!

Stay groovy, stay secure! Slide on board, dudes! 🏄‍♂️🌊🛹
2 changes: 1 addition & 1 deletion database/batch.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"slices"

dbm "github.com/cometbft/cometbft-db"
"github.com/consideritdone/landslidevm/proto/rpcdb"
"github.com/landslidenetwork/slide-sdk/proto/rpcdb"
)

var (
Expand Down
Loading