Skip to content

Commit

Permalink
Merge pull request #1049 from gotd/docs/update-roadmap
Browse files Browse the repository at this point in the history
docs: update roadmap, support
  • Loading branch information
ernado committed Apr 12, 2023
2 parents 17bf557 + 4468a37 commit c4be534
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 108 deletions.
23 changes: 23 additions & 0 deletions .github/SUPPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,29 @@ They cannot be regenerated and are bound to your Telegram account.
> &mdash; <cite>[Official documentation][1]</cite>
[1]: https://core.telegram.org/api/obtaining_api_id
[2]: https://docs.madelineproto.xyz/docs/LOGIN.html

## Readme from MadelineProto

There is a useful quote from [MadelineProto][2] docs:

### Getting permission to use the telegram API
Before you start using MadelineProto with the Telegram API, you have to understand that Telegram strictly controls userbots created on their platform.

If you use MadelineProto or any other Telegram client, **including official clients**, for flooding, spamming, botting channels, you **will be banned forever**.

Due to excessive abuse of the Telegram API, **all phone numbers** that sign up or log in using **even official or approved by telegram API clients like MadelineProto** are automatically put **under observation**, and **may** get banned **even if you did nothing wrong**, simply because some internal flags are triggered in the **telegram servers**.

To avoid this, you must let telegram know that you will use your account with a userbot:
When or before you first sign up or login you have to **send an email with the phone number to recover@telegram.org**; explaining **what will your userbot do**.
**DO NOT LIE**, just tell them what will you do with the userbot you intend to create, asking them to not ban your account.

If your account does get banned, write to recover@telegram.org asking to unban it.

**DO NOT ABUSE OF THIS OR ANY OTHER API FOR FLOODING; SPAMMING; BOTTING**; the consequences will fall not only on you, but on all other users of this and other libraries, and even normal users.

There were cases when several **normal user accounts that did nothing wrong** were banned when telegram deployed a new spambot detection system: this is bad for the community, and it is bad for Telegram, so please do not abuse.


So, here's a summary:

Expand Down
115 changes: 7 additions & 108 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,112 +1,11 @@
# Roadmap

## Q4 21
### Documentation
Currently gotd is mostly feature-complete as a MTProto client and
no big changes are planned.

Generate a static websites for documentations.
Maintenance:
- Update to new Telegram Layers (API Versions)
- Bug fixes if capacity allows without any SLA

### Observability

* Add basic OpenTelemetry spans _(from Q3)_
* Advanced OpenTelemetry tracing.
* Prometheus metrics.

### Updates engine
* ~~Refactor gap engine~~
* ~~Simplify initialization~~
* ~~Add example~~ and documentation

### ~~Update to go1.17~~
~~* Update go.mod to allow lazy load~~

## Q1 22

### Sugared client

Make the client simple for everyone with things like:

* Entity caching
* In memory
* External storage, for example in SQLite, PostgreSQL or MongoDB
* Friendly wrappers for all objects
* Dialogs
* Users
* Files
* Photos

### Bot API

An embeddable `telegram-bot-api` compatible server should be implemented.

### Server

An embeddable Telegram server with limited functionality that can be used as a
server for `telegram-bot-api`.

### Bot API Client

A client for `telegram-bot-api`.

### Goals

* Implement ecosystem of tools for Telegram in Go.
* Make it robust via extensive, extreme end-to-end testing, benchmarking and profiling.

## No Milestone

Features that have no milestone, but are likely to appear at some point.

* Extreme End-to-End
* Advanced features
* E2E encrypted chats
* CDN support
* Calls support
* Components
* Telegram Server in Go
* Telegram Bot API in Go
* Telegram Client in Go
* Telegram Bot Client in Go
* Tracing support in every component, on all layers of abstraction
* MTProto level (withTraceID generic wrapper, like withoutUpdates)
* Application level (spans in Server, Bot, Client, Events, Hooks)
* Persistence level (spans in Database implementations of Client/Server persistence)
* Background tasks level
* Network level (eBPF)
* Continuous (daily, hourly consistent runs)
* Profiling
* Go
* End-to-end
* Benchmarks
* Go
* End-to-End
* Fuzzing
* GitHub Actions (checks for PR's)
* Benchmarks (Only significant changes)
* API Backward Compatibility check
* Kubernetes integration
* Telegram Bot API
* Telegram Server
* Extreme performance
* The [gnet](https://github.com/panjf2000/gnet) Event Loop for Server
* Generated object pooling
* Zero allocation AES-IGE implementation

## Changelog

### Q3 21

#### ~~Update key exchange~~

An updated key exchange protocol should be implemented. Done.

#### Initial tracing

Add basic OpenTelemetry spans (**moved to Q4**)

#### ~~Bot API Types~~

~~All Bot API Types should be parsed:~~

* ~~Parser from docs.~~
* ~~OpenAPI v3 generated spec from parsed types.~~
* ~~Go structs generated from OpenAPI v3 spec.~~
The gotd is fully non-commercial open source project, so
contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for details.

0 comments on commit c4be534

Please sign in to comment.