Code Monkey home page Code Monkey logo

welcome's Introduction

Website

πŸŽ‰ Welcome to Aleo.

This repository serves as a guide for getting started with building on Aleo. Here is a quick summary of the key components:

For help setting up, join us on Discord to ask questions and help others answer their questions.

We will be updating this page with FAQs to make it easy for finding common issues and to fix them quickly.

❀️ Contributors

Thanks goes to these wonderful people (emoji key):

Howard Wu
Howard Wu

πŸ’» πŸ€” 🚧 πŸ‘€
Collin Chin
Collin Chin

πŸ’» 🚧 πŸ’¬ πŸ‘€
Raymond Chu
Raymond Chu

πŸ› πŸ’» πŸ€” πŸ‘€
a h
a h

πŸ“– 🚧 πŸ“† πŸ‘€
Mohammed Alobaidi
Mohammed Alobaidi

πŸ’» πŸ“– 🚧 πŸ‘€
Christian Wooddell
Christian Wooddell

πŸ’» πŸ“– 🚧 πŸ‘€
Alessandro Coglio
Alessandro Coglio

πŸ“– 🚧 πŸ”¬ πŸ‘€
Eric McCarthy
Eric McCarthy

πŸ“– 🚧 πŸ”¬ πŸ‘€
mdelle1
mdelle1

πŸ“– πŸ”¬
vicsn
vicsn

πŸ“– πŸ”¬
Damir Shamanaev
Damir Shamanaev

πŸ“–
LouisWT
LouisWT

πŸ“–
jules
jules

πŸ“–
EDGD
EDGD

πŸ“–
ofloxacin
ofloxacin

πŸ“–
Syed Imam
Syed Imam

πŸ“–
B1boid
B1boid

πŸ“–
CrypticDriver
CrypticDriver

πŸ“–
Yujia Qiao
Yujia Qiao

πŸ“–
Josh Beal
Josh Beal

πŸ“–
Kostyan
Kostyan

πŸ“–
detailyang
detailyang

πŸ“–
Thibaut Schaeffer
Thibaut Schaeffer

πŸ“–
gluax
gluax

πŸ“–
Graeme
Graeme

πŸ“–
pk
pk

πŸ“–
Wietze
Wietze

πŸ“–
Dependabot
Dependabot

πŸ’»
actions-user
actions-user

πŸ“–
aleosys
aleosys

πŸ“–
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

welcome's People

Contributors

acoglio avatar actions-user avatar aharshbe avatar aleosys avatar bendyarm avatar calebcurry avatar collinc97 avatar craigjson avatar d0cd avatar damirka avatar dependabot-preview[bot] avatar detailyang avatar edgdrummond avatar evan-schott avatar frank-aleo avatar gluax avatar howardwu avatar jules avatar kpandl avatar kyrylokilin avatar letmejustputthishere avatar mdelle1 avatar moalobaidi avatar ofloxacin avatar omahs avatar pa-long avatar pucedoteth avatar rapiz1 avatar raychu86 avatar zhantai28 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

welcome's Issues

Customizable working directory for Aleo Studio

It looks like Aleo Studio uses ~/Aleo Studio as working directory (on macOS), which is reasonable, but it may be nice to provide a way to customize that location. I couldn't find the option in the Preferences.

imports section

Some suggestions on
https://developer.aleo.org/developer/language/imports

  • Starting right at the top, it would be good to describe what sorts of entities can be imported. It appears that any top-level definition from a file can be imported, as long as the file is in a reachable location, either under the src directory or under the imports directory (wherever that is) according to a certain directory pattern.

  • It would be good to be clear about what a "project" vs a "package" is throughout the docs, to be consistent in the nomenclature. It would be good to define here what a package is.

  • The first section, Local: Import from a local file in the same package src/ directory by its file name. This sentence is hard to parse and should be reworded to be clearer. Maybe: Import from a local file in the src/ directory of the current package.

  • Also in Local, I suggest making this initial example simpler by importing a single name, not multiple names. There is a later section for Import Multiple.

  • 2nd section, Foreign: Import from a foreign package in the imports/ directory using its [package] name. Is the imports/ directory defined anywhere? There should be a link to where it is defined. It is not clear in this section whether there is a config file somewhere that defines where it is, or whether it is supposed to be a sibling of the src directory (but that would not be very "foreign").

  • Combined 1st section and 2nd section. If we simplify the 1st section so it is only importing the circuit Bar, then that would be the exact same syntax as the 2nd section: import bar.Bar; What if both files src/bar.leo and imports/bar/src/lib.leo exist and both have a circuit Bar in them. Which Bar would be imported? What if Bar is only in one or only in the other, would Bar be found in both cases?

  • In the 2nd section, there is a little pattern describing what a Foreign import looks like: import [package].[name]; However, the other sections don't have little patterns describing what they look like. Also, can Foreign imports be renamed with the as keyword? This pattern implies that there are no other syntaxes for foreign imports.

  • 3rd section, Package Paths. The first example seems to conflict with the Foreign example. The Foreign example has a lib file name that is omitted from the import declaration's package path. But this example has no lib file. Is lib handled specially and omitted? If so, this fact should be mentioned.

  • The first three sections nicely show the imported definitions in one file and then the importing main.leo file. The last three sections, Import Aliases, Import Multiple, and Import Star could benefit from similar examples.

Aleo Studio message when no updates are available

When starting Aleo Studio, the notification shown in the attached screenshot comes up.

When I first say the '[Not Available]' starting message text, I instinctively thought there was some error (e.g. some plugin or tool not being found). The rest of the message is clear and reassuring, but I would suggest to avoid starting the notification with what looks like a "negative", i.e. '[Not Available]'. Perhaps that part could be simply deleted, leaving the rest of the message. Another option could be not to show any message at all if there are no updates available, and instead show a message if there are updates.

image

More information about signing up

The top-right corned of Aleo Studio shows a sign-up button (see attached screenshot), but it's not immediately clear what one signs up for. I believe it is for the Aleo package manager web site. I understand that this is probably described in the Aleo Studio documentation (which I plan to read at some point), but it may be still worth considering providing more information in the GUI.

image

Integrate Google Analytics Docusaurus Plugin

Proposal to add the Docusaurus Google Analytics plugin for improved user interaction tracking. Tracking analytics data points with Google Analytics is useful for Aleo as it provides valuable insights into user behavior, engagement, and content effectiveness on the site, enabling us to optimize the dev experience.

Plugin Info: https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-google-analytics

Implementation steps:

  1. Install with npm install @docusaurus/plugin-google-analytics
  2. Add to docusaurus.config.js:
module.exports = {
  plugins: ['@docusaurus/plugin-google-analytics'],
  themeConfig: {
    googleAnalytics: {
      trackingID: 'ALEO_TRACKING_ID',
      anonymizeIP: true,
    },
  },
};

Dependabot can't resolve your Rust dependency files

Dependabot can't resolve your Rust dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

    Updating crates.io index
error: failed to select a version for the requirement `snarkos-dpc = "^0.8.0"`
candidate versions found which didn't match: 1.1.4
location searched: /home/dependabot/dependabot-updater/tmp/snarkOS/dpc
required by package `aleo-accounts v0.1.0 (/home/dependabot/dependabot-updater/dependabot_tmp_dir/accounts)`

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

'aleo-studio' in Aleo Studio menu

This is purely aesthetic, but the menu on macOS references 'aleo-studio' instead of 'Aleo Studio', as shown in the screenshot below.

image

Dependabot can't resolve your Rust dependency files

Dependabot can't resolve your Rust dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Updating crates.io index
error: failed to select a version for the requirement `snarkos-dpc = "^0.8.0"`
candidate versions found which didn't match: 1.1.4
location searched: /home/dependabot/dependabot-updater/tmp/snarkOS/dpc
required by package `aleo-accounts v0.1.0 (/home/dependabot/dependabot-updater/dependabot_tmp_dir/accounts)`

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Minor Fixes

Tracking issue for the following:

  • Document call in aleo instructions documentation
  • Document that mappings are stored on chain publicly in aleo instructions and Leo
  • Document that mappings are in program inside program scope
  • Document a finalize function must immediately follow a transition function
  • Document that finalize function same name as transition function
  • Update prism syntax highlighter for Leo - make public blue

Updates to `Concepts`

A couple outdated things in the current docs that I noticed need some updating to support the current model (in no particular order):

Leo.toml [package] vs [project]

Two problems with the doc about Leo.toml.
Problem 1:
The section "File Syntax", describing Leo.toml, mentions the section [package]
but when I do leo new hello-world my Leo.toml contains [project], not [package].
Problem 2:
The section "File Syntax" does not describe the [remote] section.

Update documentation typo in `Inline Functions` in the `Leo Language Guide`

Update documentation typo in Inline Functions in the Leo Language Guide

Task

Change:

The rules for functions (in the traditional sense) are as follows:

There are three variants of functions: transition, function, inline.
- transitions can only call functions and inlines.
- functions can only call inlines.
- inlines can only call inlines.
- Direct/indirect recursive calls are not allowed

To:

The rules for functions (in the traditional sense) are as follows:

There are three variants of functions: transition, helper, inline.
- transitions can only call functions and inlines
- helpers can only call inlines
- inlines can only call inlines
- direct/indirect recursive calls are not allowed

Update Leo documentation to reflect new opcodes and hash / commit functions

Aleo Instructions now supports output to a given type in core

hash functions https://github.com/AleoHQ/snarkVM/pull/1647
commit functions https://github.com/AleoHQ/snarkVM/pull/1656

Leo implementation ProvableHQ/leo#2415

Tasklist:

  • Add hash functions to opcode table
  • Add hash functions to language guide
  • Add commit functions to opcode table
  • Add commit functions to language guide
  • update hash functions in opcode table to take any argument type

Markdown Rendering Typo in Developer Docs

When viewing the Aleo Developer docs (Mining Process Section), there is a typo in the heading "Security & Miner Size" as shown in the attached photo:

Screen Shot 2021-01-20 at 9 07 12 PM

It appears that the raw markdown file associated with that section has an escape character ('\') that isn't being recognized.

I observed this typo using both Mozilla Firefox 84.0.2 (64-bit) and Google Chrome Version 87.0.4280.141 (Official Build) (x86_64)

Lengths of private keys, proving keys, and account view keys

The page https://developer.aleo.org/concepts/accounts says that:

  • A private key consists of 58 characters, but the example consists of 56 characters.
  • A proving key consists of 58 characters, but the example consists of 57 characters.
  • An account view key consists of 56 characters, but the example consists of 53 characters.

I'm not sure how to fix this, because I don't know enough of these formats yet to determined if the error is in the assertions or in the examples. That's why I'm opening an Issue instead of a PR.

Minor glitch on the aleo.studio web site

When I visited the aleo.studio web site for the first time today, I noticed that, as shown in the attached screenshot, macOS was selected (presumably by the browser detecting that I’m on a Mac), but the description just below the download button referred to Linux. In fact, when I clicked the download button, I got a .deb file.

Clicking on Linux and then macOS solved the issue β€” the text under the download button changed to β€˜macOS 10.13.0 and newer’, and I got a .pkg file (which I installed successfully).

When I re-visited the aleo.studio page a second time (after closing the browser window), the glitch was no longer present.

However, when I used a different browser to visit the aleo.studio page (Firefox instead of Safari), I saw the glitch again.

Perhaps the glitch disappears once there is some cookie or cache data. Please note that, if you have visited aleo.studio before, you probably won't see the glitch. If you want to try and reproduce the issue, please try a browser that you've never used to visit aleo.studio. Perhaps cleaning the cache/history may reveal the issue too.

macos-linux

Clarify some details of private key generation.

I suggest to improve the description of private key generation as follows, in order to have a precise definition of private key generation (amenable to formal specification):

  • Add a link to RFC 7693 β€” the official definition of BLAKE.
  • The official spelling is BLAKE2s, not Blake2s. (Maybe not a big deal.)
  • The notation Blake2s(arg1,arg2) suggests keyed BLAKE2s, but my reading of the snarkVM code a while ago (this should be double-checked) indicates unkeyed BLAKE2s, with the two arguments suitably concatenated.
  • I think it would be better to use a concatenation notation for the two parts of the input, instead of two arguments separated by commas.
  • Clarify that the 0 and 1 passed as second arguments to calculate sk_sig and sk_prf are encoded as unsigned 16-bit integers, same as counter to calculate r_pk.
  • I would expand u16 to unsigned 16-bit integer.
  • The endianness of the two bytes that form these u16s should be clarified. My reading of the snarkVM code a while ago indicates little endian (this should be double-checked).
  • There is a pending PR to clarify that the counter starts at 2 to calculate r_pk.

doc on .state file

In https://developer.aleo.org/developer/getting_started/syntax#wiring-program-inputs
it mentions the .state file but does not describe its contents.

Is the .state file used for anything? When I do leo new hello-world, if I want to
change the input and output data types, I can do that in the .in file. At that point
the .state file is inconsistent with the .in file. However, I don't seem to see anything
go wrong due to this inconsistency. It is as if the .state file is ignored. However,
the fact that it is inconsistent is worrisome.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.