---
# System prepended metadata

title: 3Speak - Development Updates from @sagarkothari88

---


![image](https://images.hive.blog/0x0/https://files.peakd.com/file/peakd-hive/threespeak/23uQNvHfQ5FuxvKKHS3bqh2rCLyjC8vqXyJ7CaoFtr6edMgSo68RaCWzpNbzkRdjUeRKC.png)

https://www.dropbox.com/scl/fi/8tqekcj0tfudwkq7xi40w/3Speak-Sagar-Updates-27-Feb-2024.mp4?rlkey=hwe4sncd4ithxk6eftytp9wi4&dl=0

@eddiespino - please upload this video

Hello @threespeak Community Members & Hive Community Members,

With this post, I'll share the development updates & items on which I (@sagarkothari88) was working. Accidently, OBS decided to pick a different audio device & due to which no audio was captured. You can find updates as follows.

## Setting Up Acela-core

- Acela-Core is a new backend core for decentralized video applications on HIVE
- It supports both offchain & onchain data.
- I (@sagarkothari88) checked it out locally & resolved all the issues he faced.

### Setting up .env & resolving related issues

- To run, you need some of configs.
- After co-ordinating with team, I got necessary env variables
- Even after that, I faced some of errors due to some missing env vars
- After disabling cluster related services, I was able to move forward

### TUSd uploader

- At first, I was unaware & I was running TUSd instance on my own.
- After knowing that, there is a script already for it, I closed that instance & ran on my own.
- https://github.com/spknetwork/acela-core/blob/main/runTusd.sh
- With that, I had running TUSd uploader locally

### TUSd Hooks

- Even after running it, It kept throwing errors.
- I created a `data` folder locally & updated `runTusd.sh` as follows.
- It resolved TUSd issues.
- As you can see here, I changed `upload-dir` from `/data` to `./data`

```shell

tusd -upload-dir=./data/ \
     -base-path="/files" \
     -host="127.0.0.1" \
     -port="1080" \
     -behind-proxy \
     --hooks-enabled-events pre-create,post-create,post-finish,post-finish,post-terminate,post-receive \
     -max-size 5000000000 \
     -hooks-http http://localhost:4569/api/v1/upload/tus-callback
```

### Other errors

- I also encountered IPFS Cluster issues
- Those I managed to resolving by coordinating with team.
- Also encountered some compilation errors & got it fixed locally.
- After all of these, I was all set.

![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)

## Learning NestJS

- Acela core is written using NestJS Framework
- It's been over a year & I have not learned about NestJS
- I found a playlist on YouTube to learn NestJS
- I completed approx 18 videos from that playlist
- https://www.youtube.com/playlist?list=PLqLR2H326bY6eRNOXJxWQkvKNlzmJQfLj
- After 18 videos, I decided to start contributing to project acela-core.

![NestJS Video Playlist](https://files.peakd.com/file/peakd-hive/sagarkothari88/23wWT2CTzfNDgQezoy9hmhN7DJ1Y3ggttmuqVQoy8vTzFmkLnQ8tWCikDnxx1o7FQCbgm.png)

![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)

## Acela-Core - Posting Authority before logging in

![Checking for Posting Authority](https://files.peakd.com/file/peakd-hive/sagarkothari88/23t7AyTgukHsGVuz4pQbhrGPJwha5vWcqTkQWjove53QaTgLE8QGRG9xSaBCyRo9BrCEV.png)

- https://github.com/spknetwork/acela-core/pull/8/files
- Granting JWT Token only if posting authority found.
- This JWT Token subsequently will be used for upvote, comment, post etc.
- Without posting authority, all of the operations may fail.
- So, it's best to check at time of login /login_singleton
- It would be front-ends responsibility to get posting authority first.
- After that front-ends can generate proof & proof of payload & - execute/login_singleton for logging in.

![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)

## Acela-Core - Max 5 GB Upload

![File Size](https://files.peakd.com/file/peakd-hive/sagarkothari88/23t7BGkMDtPvJZLgRjMs5yzmWPZYY7fTaeM3qp8bQvipbZQ4RtNg82uxtEYRUBnPZbzq6.png)

- We need to make sure that file size is no bigger than 5 GB
- https://github.com/spknetwork/acela-core/pull/9
- In `src/services/uploader/uploading.service.ts`, I added extra check & it throws error if file size is too big.

![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)

## New FrontEnd - Video Format

- This will be the third check, which we'll be adding in upload process.
- It makes sure that users are uploading video in right format.
- With this, we wish to improve upload experience.
- This work is in progress

![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)

## Exchanging GQL queries

- Juneroy & I exchanged number of GraphQL queries
- With which, he would be able to implement it on New 3Speak FrontEnd
- Shared Queries for followings
    - Subscribed feed, 
    - Trending feed, 
    - New feed, 
    - First upload, 
    - Community Feed, 
    - Tags Feed

![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)

## What are next tasks?

- Acela-Core - Fix Upvote API
- Acela-Core - `create-upload` API failing
- 3Speak Legacy Studio - Add posting authority using Active Key not working
- 3Speak Legacy Studio - Connect account using Active Key not working
- 3Speak Legacy FrontEnd - 3Speak Twitter handle
- 3Speak Legacy FrontEnd - Update Twitter Icon
- New tasks will be assigned based on daily stand ups

![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)

## Feedback / Info 
 
- Do you want more Info? Please let me know via the comment section.
- Do you have feedback to share? Please use the comment section.
- Please check the above video & share feedback 

---
    
![color3speak.png](https://files.peakd.com/file/peakd-hive/threespeak/23tRvWvmwuE7SGkXfPhHY8GPxiwaVKnVtzAFwDjuXFM3gWtRS6dr2F4yK4vexmaUHERuK.png) 
    
### <center>Important Links:</center>

|||
|:-:|:-:|
|[3Speak Linktree](https://linktr.ee/3speak)|[SPK Network Linktree](https://linktr.ee/spknetwork)|

| | | | |
|-|-|-|-|
|[3Speak.tv](https://3speak.tv)| [3Speak Twitter](https://twitter.com/3speakonline) | [3Speak Hive Blog](https://hive.blog/@threespeak) | [3Speak Telegram](https://t.me/threespeak) |
| [3Speak in Spanish](https://peakd.com/@threespeak-es/posts) | [Download Android App](https://play.google.com/store/apps/details?id=tv.threespeak.app) | [Download iOS App](https://apps.apple.com/us/app/3speak/id1614771373) | [Download Desktop App](https://github.com/spknetwork/3Speak-app/releases)
| [Join 3Speak Discord](https://discord.gg/NSFS2VGj83) | [Setup Encoder Node](https://ecency.com/hive-181335/@sagarkothari88/retfajht) | [Vote for SPK Network Proposal](https://peakd.com/hive-112019/@spknetwork/spk-network-funding-proposal-rhnv7e) | [Badge Recipients](https://peakd.com/b/badge-181335/recipients) |

|||
|:-:|:-:|
[![appStore](https://i.imgur.com/enwTLng.png)](https://apps.apple.com/us/app/3speak/id1614771373) | [![GooglePlayStore](https://i.imgur.com/6K5fgGX.png)](https://play.google.com/store/apps/details?id=tv.threespeak.app)|
    
### <center>[Vote for 3Speak as Witness](https://vote.hive.uno/@threespeak) - [![Support @threespeak](https://images.hive.blog/u/threespeak/avatar)](https://vote.hive.uno/@threespeak)</center>
    
### <center>[Vote for Sagarkothari88 as Witness](https://vote.hive.uno/@sagarkothari88) - [![Support @sagarkothari88](https://images.hive.blog/u/sagarkothari88/avatar)](https://vote.hive.uno/@sagarkothari88)</center>
   
</div>