spknetwork 3Speak Podcast: Recent Episodes

None

Listen and watch the latest videos from spknetwork. Hosted by 3Speak.tv. The free speech video platform on the HIVE blockchain.

View Details

https://3speak.tv/watch?v=spknetwork/fwpngroi


Hey everyone!

In case you missed it, this is the recording of the AMA that we had last Sunday.


Vote for our Witnesses:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess
  • SPK Network Proposal 2023

View Details

https://3speak.tv/watch?v=spknetwork/alrifcwx

Hello everyone!

This is the recording of today's meeting, where we discussed key updates and future plans for the SPK Drive. You will also find the latest updates on Dlux and a thorough discussion of the next steps we need to take.

We invite you to join the SPK Network Testnet. Learn more about it here:

SPK Network - Final Testnet Sprint is Live!


A special thank you to all the users who provided feedback: @actifit-3speak (@actifit), @eastmeal, and @louis88.


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • What is the SPK Network and How it Works
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/rtcpqemm

Hello everyone!

This video tutorial will guide you through the steps to participate in the SPK Network final Test Sprint. You will learn how to register your account, acquire SPK, power up SPK to get BROCA, create and manage contracts, or even encrypt your files. Follow these instructions to learn how to back up your files on the SPK Network.

Note: We will update this post with more information regarding the other steps of the SPK Network Sprint, so stay tuned on our Discord.


Below, you can find a table of contents that will be updated. We will constantly add more content, tutorials, and instructions. Stay in contact with us on the SPK Network Discord to be the first to see all the updates and new features.

SPK Drive (file-centric storage):https://drive.spk.tv/

(Instructions coming soon)

- Store a file
- Write a storage contract
- Share an encrypted file to the network

Dlux.io (contract-centric storage):https://dlux.io/

- Create a paid and free contracts
- Extend the expiration
- Encrypt a file

SPK DEX(Fixes coming soon)

- Execut a small SPK Token trade on the DEX, (Test out a Buy and a Sell and try placing and canceling orders)

Storage Nodes(Instructions coming soon)

- Run file a storage node
- Store some files from the network on either Dlux or SPK Drive System

Validators(Instructions coming soon)

- Run a validator

Governance(Instructions coming soon)

- Power up LARYNX tokens, delegate it & receive SPK, or get SPK off the DEX and power it up
- Delegate Larynx to service providers
- Use SPK to vote for validators


Create storage contracts on Dlux.io Frontend1. Register your account on the SPK Network - (0:16 - 1:00)* Visit dlux.io and log in with Hive Keychain. * Navigate to the files page here and register your account.

  1. Get some SPK - (2:22 - 3:13)Note: If you delegated LARYNX to an active SPK Claim Chain node, you should already have some SPK in your wallet.

You can confirm this on the Dlux Files Page. Look for the "SPK" wallet button next to "NEW" and "FREE".

Alternatively, check your balance on Ecency, but note this is the mainnet, and the balance might differ.

If you don't have any SPK, follow these steps:

  • Visit the SPK DEX on dlux.io and buy some SPK.
  • SPK is priced at 100 HIVE, but you could buy as low as 0.001 SPK and that will be enough to test.
  • We will refund purchases at the end of the test period, as you are buying test tokens. Do not buy more than 1 HIVE worth of SPK. Also, this is the only link that you can access the SPK DEX with.
  • If purchasing is not an option, join the SPK Network Discord and request some test SPK tokens in the #request-spk channel.

  • Power up SPK to get BROCA - (3:14 - 3:50)* Click on the SPK wallet at Dlux Files Page.

  • Powering up 0.1 SPK gives you 100K BROCA, equivalent to 95.37 MB.
  • BROCA recharges at the same rate as Resource Credits on Hive (20% every 24 hours) allowing you to store up to 575 MB a month.

  • Create a Paid Contract using BROCA - (3:55 - 5:22)* On Dlux Files Page, click on "NEW".

  • Choose the amount of BROCA you want to use. 1,049 BROCA provides a 1 MB contract.
  • Leave "Account to Upload File" as is unless you want a different account.
  • Select @dlux-io as the "IPFS Service Provider".
  • Leave "Beneficiary Account" and "Requested Beneficiary Amount" unchanged.
  • Click "Propose" and confirm the transaction with Keychain.
  • Wait for the transaction to process and the page to refresh automatically.

  • Upload Files to Your New Contract - (5:23- 7:24)* Once your new contract is visible, you will see the storage, status, and expiration details.

  • Click on the storage to upload your files. Start the contract within one day.
  • Ensure your files do not exceed the storage capacity.
  • Choose to make them Public or Encrypted. For this example, select Public.
  • Click "Sign and Upload", confirm the transaction, and wait for the page to reload.
  • Your contract will now be active for 30 days. You can view details such as price, expiration time, size, and more in the info section.

  • Create a Free Contract - (7:25 - 11:05)* Go to the Dlux Files Page and click on the "FREE" icon.

  • This allows you to upload up to 30 MB by setting a 10% beneficiary to @dlux-io. The beneficiary applies to one post, which you must publish to create the FREE storage contract.
  • We recommend using a dummy or test account for this purpose.
  • Click "Ready to Upload" and upload your files, following the same steps as the paid contract.
  • Once uploaded, click on the storage contract again to create a post.
  • Enter the Title, body, and tags. You can add the images you just uploaded to the post.
  • Click "Publish".
  • Note: This will create a post on Hive social media networks. Use a dummy account if just testing.
  • If nothing happens, reload the page to see your contract for 30 days. Do not post again to avoid duplications.

  • Extend a Contract Expiration Date - (11:06 - 12:28)* Click on any contract and look for the "Extend" button.

  • Choose the number of days to extend (day, week, month, or year).
  • Check the amount of BROCA required based on file weight and duration.
  • Click "Extend" and confirm the transaction.
  • Reload the page to see the updated expiration date.

  • Encrypt a File - (12:45 - 15:48)* Create a new contract and upload files as before (paid or free). At DLUX this currently only works with text files, other files types are planned.

  • Ensure you have your private MEMO key in your Hive Keychain Wallet. If not, import it.
  • In the "Privacy" section, choose "ENCRYPT FILES".
  • By default, files are encrypted for yourself, but you can add more users.
  • Under "Sharing", type the desired username(s) (without @) and click the plus sign.
  • Add as many usernames as needed.
  • Click "Encrypt Keys" and confirm the transactions. This encrypts the files for all specified users, including yourself.
  • Finally, click "Sign and Upload".

These are all the steps to create contracts and store files using the Dlux.io frontend by @disregardfiat and @markegiles. Additionally, as mentioned in the video, there is another frontend by @nathansenn that is currently under development. Once it's ready, we will create a video tutorial and add it to this post. Future updates will also include instructions for advanced features such as creating a storage node, setting up a validator, voting for governance, and storing files on your own node. Stay tuned!


Here's a video by @disregardfiat with more instructions and details of how Dlux Contract system works.

https://3speak.tv/watch?v=disregardfiat/cnqfilbu

SPK Network - Final Test Sprint


Call to Action! Join the Community: Head over to the SPK Network Discord and join the #testnet-sprint channel for all the instructions. * Get Involved: Request the "Testnet Sprinter" role and enable notifications on Discord. This will ensure you receive updates and important notifications. * Get Support: If needed, request a test account and SPK tokens in the #request-spk channel. @eddiespino or @disregardfiat will assist you. * Stay Updated: Keep an eye on this blog post for constant updates. * Create and Share Content: Post your experiences on Hive social media networks (peakd.com, ecency.com, 3speak.tv, inleo.io, etc.) using the #spktestnet tag. You can also create content on web2 platforms like X, Facebook, Reddit, and YouTube and share the links in the comments of this post. * Engage and Feedback:* Provide feedback, engage with the community, comment, and test the platform rigorously. Higher participation and engagement can lead to greater rewards!


Vote for our Witness:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • What is the SPK Network and How it Works
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/drnlafnx


Hey everyone!

In case you missed it, this is the recording of the AMA that we had last Sunday.

  • Go to 2:03:15 to see how to make a contract.
  • 2:08:15 @louis88 shows his screen, powers up some SPK, gets BROCA, and creates a contract.

The SPK Testnet Sprint is still active, and it will run for an extra week. Check all the details here:

  • Win $2,000 USD in Rewards! Join the SPK Network Testnet First Two-Week Sprint
  • SPK Testnet Node Setup Guide

Vote for our Witnesses:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat


Support our proposalSPK Network Funding Proposal 2023


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess
  • SPK Network Proposal 2023

View Details

https://3speak.tv/watch?v=spknetwork/vpslljyf

Hey everyone!

In this 3Speak Video, @disregardfiat introduces us to the SPK Network Testnet. The instructions shown in the video can be accessed here: https://github.com/spknetwork/trole.

Tomorrow, we are going to launch the SPK Testnet Sprint. Be prepared, there will be $2,000 HBD in prizes for valid participation. The Testnet Sprint is going to be from the 8th of March to the 22nd of March.


Vote for our Witnesses:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat


Support our proposalSPK Network Funding Proposal 2023


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess
  • SPK Network Proposal 2023

View Details

https://3speak.tv/watch?v=spknetwork/xcqgqusf


This is the recording of today's meeting. Each Thursday at 9:00 AM Pacific time, we invite you to join us at these public meetings. The live meetings occur on the 3Speak Discord Server.


Our proposal has been approved! If you haven't, we invite you to read it in the link below.

SPK Network Funding Proposal 2023


Break Away Communities UpdatesUpdates by @adesojisouljay

  • New updates on the Break Away communities and integration of the point system.

https://3speak.tv/watch?v=threespeakvideos/ngkjecmp


3Speak Development Update - UI Improvements and Code RefactorUpdates by @juneroy1

  • 3Speak UI updates and code refactor of 3speak.tv

https://3speak.tv/watch?v=threespeakvideos/ovwmoxui


Vote for our Witness:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess
  • SPK Network Proposal 2023

View Details

https://3speak.tv/watch?v=spknetwork/vcgerbty


This is the recording of today's meeting. Each Thursday at 9:00 AM Pacific time, we invite you to join us at these public meetings. The live meetings occur on the 3Speak Discord Server.


Our proposal has been approved! If you haven't, we invite you to read it in the link below.

SPK Network Funding Proposal 2023


Timestamp of the meeting:* 0:50 - 10:05 - @juneroy1 shares 3Speak UI and code refactor updates. * 10:45 - 11:30 - @adesojisouljay shares a couple of screenshots of the UI for the breakaway communities onboarding page.

| | |

  • 12:35 - 20:15 - @nathansenn shares his updates related to the SPK Network testnet and also talks about the DBuzz marketing plan to onboard users to Hive.
  • 20:30 - 47:00 - @disregardfiat and @markegiles discuss the SPK Network updates. Results of the testnet on the Caracas Blockchain Week Hackathon. UI updates for files. And a general overview of how the storage works. Watch this video section to learn how SPK Power and Broca work.
  • 47:20 - 53:20 - @vaultec makes an update about the BTC wrapping on Hive.

Check more 3Speak-related updates on the post below:3Speak Development Update - Mobile App, Refactor, Break Away Communities and more


Vote for our Witness:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess
  • SPK Network Proposal 2023

View Details

https://3speak.tv/watch?v=spknetwork/fxgskldv


This is the recording of today's meeting. Each Thursday at 10:00 AM Pacific time, we invite you to join us at these public meetings. The live meetings occur on the 3Speak Discord Server.

Ongoing priorities of @threespeak and @spknetwork Teams@disregardfiat:

  • SPK Network Testnet overview, hunting bugs and helping developers at the Caracas Blockchain Week Hackaton

Check these posts for more information:

SPK Network - Steps to Run the TestnetPreliminary SPK Network Hackathon [ENG-ESP]


3Speak Refactor - Login with Google, GitHub and Discord using Magic.LinkUpdates by @juneroy1

  • Working on Social Logins, e.g., Google login, Discord login, etc. Using Magic Link. Integrated in the frontend, the backend is pending.
  • Implemented Login (Sign in and Sign up) with Google, GitHub, and Discord.
  • Technical part: we need to refactor and reuse some code and components.

https://3speak.tv/watch?v=threespeakvideos/jhltbynv


Break Away Communites - Account Creation & OnboardingUpdates by @igormuba:

  • Use of docker as a simple way to set up Break Away communities.
  • Run multiple communities in the same server.

Updates by @adesojisouljay:

  • Site to create a Hive Community account by paying 3 HIVE.
  • Onboarding site inside the break away communities.

New users can sign up within the frontend. They send a link to a friend, and they can pay for the account with 3 HIVE or account creation tokens.

https://3speak.tv/watch?v=threespeakvideos/xnxngmjl


Vote for our Witness:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/swrgukwp


This is the recording of today's meeting. Starting next week, the time for the meetings will change. Each Thursday at 10:00 AM Pacific time, we invite you to join us on these public meetings. The live meetings occur on the 3Speak Discord Server.

Ongoing priorities of @threespeak and @spknetwork Team@nathansenn:

  • Running proofs on the HoneyComb side while running the PoA validator.
  • Investigating why the proofs failed.
  • SPK PoA is communicating with HoneyComb.
  • Fixing issues with websocket processes.
  • Communication issues between the validator and HoneyComb.

@disregardfiat:

  • Finish PoA integration with SPK Network.

3Speak and Breakaway Community Updateshttps://3speak.tv/watch?v=threespeakvideos/hanxdxye

@adesojisouljay:

  • Fixing bugs on the community creation page.

@igormuba:

  • Improve the docker setup page and investigate the bug on the trending page on the breakaway communities.

@vaultec:

  • Chain relay for the bitcoin proofs wrapping.
  • Encoding issues.
  • Scheduled videos issue.

For more information, check our previous 3Speak update.


Vote for our Witness:* https://vote.hive.uno/@threespeak


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/rtotlfuq


This is the recording of today's meeting. Starting next week, the time for the meetings will change. Each Thursday at 10:00 AM Pacific time we invite you to join us on these public meetings. The live meetings occur on the 3Speak Discord Server.


Vote for our Witness:* https://vote.hive.uno/@threespeak


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/audzmbqh


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.


Vote for our Witness:* https://vote.hive.uno/@threespeak


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/lvreumbw


This is the recording of last Thursday's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.


Vote for our Witness:* https://vote.hive.uno/@threespeak


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/blzxqgnu


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.


Vote for our Witness:* https://vote.hive.uno/@threespeak


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/vwscoexu


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.


Vote for our Witness: * https://vote.hive.uno/@threespeak


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/wsrqrfoozd


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.


Vote for our Witness: * https://vote.hive.uno/@threespeak


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/oorirkka


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.


Vote for our Witness: * https://vote.hive.uno/@threespeak


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/lgnldgjo


Hey everyone!

With this 3Speak Video & Hive post, @sagarkothari88 illustrates how to use GraphQL Queries based on Union Indexer.

SPK Network is always Open-source: * Mobile app source code + https://github.com/spknetwork/Android-app * Legacy / Current website + https://github.com/spknetwork/3speak-legacy-frontend * Legacy / Current creator studio + https://github.com/spknetwork/3speak-legacy-studio * Union Indexer + https://github.com/spknetwork/union-indexer-node

What is GraphQL? * GraphQL is a query language for APIs and a runtime for fulfilling those queries with existing data * GraphQL provides an interactive way of building the queries & play around them. * You can select the attributes/fields/properties of your choice for the response.

Why is GraphQL now on Mobile App? * The mobile app shows different feeds but is not sorted as per the curation amount. * For each video, payout info, votes, etc., values are fetched, over & over, when displayed on the screen. * This consumes internet bandwidth & you may want to avoid it if you are on mobile data. * There are other issues with the existing feed. * Feed needs to be updated. * With GraphQL, we can fix these issues & have needed data in a single request. * @sagarkothari88 is now implementing GraphQL-based feeds on 3Speak-Mobile application.

How to use GraphQL? * Please view the video to understand in detail with a live demo. * Open this link - https://union.us-02.infra.3speak.tv/api/v2/graphql * Select the feed of your choice. + Social Feed + Trending Feed

  • Select attributes that you need for your User Interface

  • Do not forget to apply this filter if you only want the data for Videos.

  • Hit the run button.

Ready-made GraphQL Queries for you Trending feed

``` query MyQuery { trendingFeed(spkvideo: {only: true}) { items { ... on HivePost { spkvideo stats { num_comments num_votes total_hive_reward } lang title tags permlink created_at body } } } }

```

New Videos Feed

``` query MyQuery { socialFeed(spkvideo: {only: true}) { items { ... on HivePost { spkvideo stats { num_comments num_votes total_hive_reward } lang title tags permlink created_at body } } }

```

First Uploads Feed

``` query MyQuery { socialFeed(spkvideo: {only: true, firstUpload: true}) { items { ... on HivePost { spkvideo stats { num_comments num_votes total_hive_reward } lang title tags permlink created_at body } } }

```

Related Videos

``` query MyQuery { relatedFeed(permlink: "sdltslwo", author: "leofinance") { items { ... on HivePost { spkvideo stats { num_comments num_votes total_hive_reward } lang title tags permlink created_at body } } } }

```

My Published Videos

``` query MyQuery { socialFeed( spkvideo: {only: true} feedOptions: {byCreator: {_eq: "sagarkothari88"}} ) { items { ... on HivePost { body title tags stats { num_comments num_votes total_hive_reward } spkvideo permlink lang community created_at } } } }

```

3Shorts

``` query MyQuery { socialFeed( spkvideo: {only: true, isShort: true} ) { items { ... on HivePost { body title tags stats { num_comments num_votes total_hive_reward } spkvideo permlink lang community created_at } } } }

```

Leaderboard Coming soon.

Community Details

``` query MyQuery { community(id: "hive-181335") { title about created_at images { avatar cover } roles { role title username } subscribers } }

```

Videos from a community

``` query MyQuery { community(id: "hive-181335") { title about created_at images { avatar cover } roles { role title username } subscribers trendingFeed { items { ... on HivePost { spkvideo stats { num_comments num_votes total_hive_reward } lang title tags permlink created_at body } } } } }

```


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

Important Links:

| 3Speak Linktree | SPK Network Linktree |

| 3Speak.tv | 3Speak Twitter | 3Speak Hive Blog | 3Speak Telegram | | 3Speak in Spanish | Download Android App | Download iOS App | Download Desktop App | | Join 3Speak Discord | Setup Encoder Node | Vote for SPK Network Proposal | Badge Recipients |

| | |

Vote for 3Speak as Witness - Vote for Sagarkothari88 as Witness -

View Details

https://3speak.tv/watch?v=spknetwork/bltrrirx


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.


Vote for our Witness: * https://vote.hive.uno/@threespeak



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/drxwcodj


Hey everyone!

In this video, you will see the recording of our latest meeting. We shared the latest SPK Proof of Access updates in this meeting or #SPoA. This is also a Call to Action to invite everyone to test our Proof of Access method.

If you want to see all the steps and a tutorial video, check the video and post below that @eddiespino prepared for us:

https://3speak.tv/watch?v=eddiespino/dzzigonc

Written post: Proof of Access Video Tutorial | 3Speak Desktop App


Steps to participate in the Call to Action: * Record a video of a Proof of Access Validation. If you don't know how to do it, check this post. * The most important thing to share is the Proof of Access validation done on spk.tv. * Share your video on Twitter and other social media like YouTube, Instagram, or TikTok. * Use #ProofOfAccess, #PoA, #SPoA as your main tags or hashtags. * Share proof under this video through a comment and also share the comment on the "#proof-of-access-feedback" channel on the 3Speak Discord Server. To do this, copy the comment link and paste it there. * Invite others to do the same.


Important Note: If you are already running the 3Speak desktop app, stop Proof of Access and start it again. This will automatically update to the latest version of Proof of Access. Also, be sure to update the 3Speak Desktop app.


Prize Pool * We still have 300 HIVE to share, and $200 HBD has been added to the pool.


If you have questions or feedback, leave them on the "#proof-of-access-feedback" channel or contact @nathansenn on Discord.


Vote for our Witness: * https://vote.hive.uno/@threespeak



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

View Details

https://3speak.tv/watch?v=spknetwork/fmwsnqps


Hey everyone!

This is the recording of the Proof of Access Party we had yesterday. We had a great demonstration by @nathansenn, where he shared the 3Speak desktop app and explained the basics of SPoA (SPK Network's Proof of Access). We also had @disregardfiat, who shared about the tokenomics side of Proof of Access and SPK Network.

Big thanks to everyone that participated, especially @jonsnow1983, @louis88, @rivalzzz, @nonsowrites, @arcange, @mcfarhat, @neopch, @taskmaster, and more!

Thanks to @theycallmedan for the moderation and @eddiespino for the recording.


We have an active Call to Action. Check these posts for more information:

Join us for the Proof of Access Party!


https://3speak.tv/watch?v=spknetwork/lkojuhzn

Proof of Access: Step By Step Video & Call to Action!


Proof of Access: A Technical Overview


This is the step-by-step video in #Spanish. Credit to @jonsnow1983.

https://3speak.tv/watch?v=jonsnow1983/ipqkawvf

Proof of Access: Atendiendo el llamado a la acción + Invitación a la fiesta Proof of Access


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/lkojuhzn


Hey everyone!

Here's @eddiespino with an important update. In this video, you will find the steps on how to Proof of Access process works using the 3Speak Desktop app and the spk.tv website. We are still working on how to make everything more smooth and faster, but it's finally ready to test.

To test it, follow these steps:

  • Download and install the Desktop App: https://github.com/spknetwork/3Speak-app/releases/tag/v0.2.4
  • Run the desktop app and log in using your Hive account and your private posting key. If you are stuck, follow the instructions on the video. You can use a test account for this.
  • Go to settings and click Proof of Access, then click "Start Proof of Access".

  • Go to the new content or new video section and pin a video. To pin a video, open it and click on the "Download to IPFS Node" button.

Note: Depending on the size of the videos, they may take up to 30 or 40 minutes to sync.

  • To see the pinned videos click on settings, then "Pins". Here you can see the progress of the pins.
  • After giving the videos time to sync, click on "view" and copy the CID that starts with the letter Q.

  • Go to http://spk.tv/.

  • Enter your Hive username and paste the CID you copied on the app. Example: "QmThnci6tdLRkBz1mKas4kahWNNhpPMDbHpV3mw4CBnZhF". If it's successful, you should see this:

  • If the proof is invalid, ensure you have pinned the video correctly and given it enough time to sync. As I've said, this will depend on the size of the video, and it can take 10, 20, or even 30 minutes.

You've done it!

  • You can go ahead and pin more videos and test them. Remember to give them time to sync.
  • Proof of Access can be stopped with the same button, be aware when you start it again, you will need to give it time to sync. If this happens, just keep the app open and eventually it will sync.

Call to Action! * Record and upload a video to 3Speak.tv showing this process. * Share your feedback and any question you may have. * As you will have to give time for the pinned videos to sync, you can edit the time you are waiting. If you use OBS you can use the pause recording option. * Use the #proofofaccess and #spkknetworkk tags. * Share on Twitter and other social media. * We will be upvoting the best videos.


For more information about Proof of Access, you can read this post by @nathansenn:

Proof of Access: A Technical Overview We also invite you to check the Proof of Access Linktree: https://linktr.ee/proofofaccess


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Visit our website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • https://linktr.ee/spknetwork
  • https://linktr.ee/proofofaccess

View Details

https://3speak.tv/watch?v=spknetwork/nswqfwxy


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.


Vote for our Witness: * https://vote.hive.uno/@threespeak



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

View Details

https://3speak.tv/watch?v=spknetwork/fjupxaur


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.

Key Articles: * HiveFest Mexico * Proof of Access Linktree


Vote for our Witness: * https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

View Details

https://3speak.tv/watch?v=spknetwork/qbdmykfi


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.

Today we talked about the following:

  • The progress of Proof of Access on the 3Speak Desktop App.
  • A HIVE DEX with BTC and XMR pairs.

Key Articles: * https://peakd.com/hive-100039/@ragnarok.game/ui-and-development-updates


Vote for our Witness: * https://vote.hive.uno/@threespeak



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

View Details

https://3speak.tv/watch?v=spknetwork/cwlouqov


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.

Key Articles: * https://peakd.com/threespeak/@threespeak/3speak-app-now-available-on-the-google-play-store * https://peakd.com/vsc/@vsc.network/call-to-action-setup-a-vsc-devnet-node


Vote for our Witness: * https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

View Details

https://3speak.tv/watch?v=spknetwork/vvulcugq


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.

Key Articles: * https://peakd.com/spk/@disregardfiat/the-broca-markets * https://peakd.com/spk/@disregardfiat/spk-poa-lottery-system * https://peakd.com/hive-181335/@disregardfiat/euxurxqe * https://peakd.com/hive-181335/@disregardfiat/qpejcymt * https://peakd.com/hive-181335/@disregardfiat/sdbzuoxd


Vote for our Witness: * https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

View Details

https://3speak.tv/watch?v=spknetwork/iblrkpes


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meetings occur on the 3Speak Discord Server.

Key Articles:* https://peakd.com/spk/@disregardfiat/whoaoaoaooo-were-half-way-there * https://peakd.com/hive-181335/@disregardfiat/oqvyyjdx


Vote for our Witness:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform can earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

View Details

https://3speak.tv/watch?v=spknetwork/zpopqlac


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meeting occurs on the 3Speak Discord Server.

Key Articles:* https://peakd.com/threespeak/@threespeak/cluster-rewarding-node-setup-get-rewarded-for-pinning-3speak-videos * https://peakd.com/threespeak/@threespeak/3speak-development-update-done-and-main-ongoing-tasks * https://linktr.ee/spknetwork


Vote for our Witness:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform, will be able to earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

View Details

https://3speak.tv/watch?v=spknetwork/zznhxmqq


This is the recording of today's meeting. We plan to record every week on Thursdays at 20:00 UTC, so stay tuned. The live meeting occurs on the 3Speak Discord Server.

In this meeting you can listen to @disregardfiat, @starkerz, @theycallmedan.

The meeting was recorded and uploaded by @eddiespino.


Vote for our Witness:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@diregardfiat



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform, will be able to earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

View Details

https://3speak.tv/watch?v=spknetwork/guwdglwd

Join us as we discuss some design choices and challenges with building multi-party transactions. We are hoping the community has every opportunity to understand and contribute feedback. For your clarity the code below is what's being referenced in the video... with some additional //comments.

/*json => from => 3spk or account with brocato => person who can upload a filebroker => account that can recieve an uploadbroca => amount of broca to place into contract*/exports.channel_open = (json, from, active, pc) => { //the contract json:payload, from:@hiveaccount, active: active key used, pc:promise chain(for contract ordering) if (active && json.to && json.broker){ var Pbroca = getPathNum(["broca", from]); //read memory to compute contract var Pproffer = getPathObj([json.contract,'proffer', from, json.to]) var Pstats = getPathObj(["stats"]) var PauthB = getPathObj(["authorities", from]) var PauthT = getPathObj(["authorities", json.to]); var PauthF = getPathObj(["authorities", json.from]); var Ptemplate = getPathObj(["template", json.contract]); Promise.all([Pbroca, Pproffer, Pstats, PauthF, PauthT, PauthB, Ptemplate]).then(mem => { var broca = mem[0], proffer = mem[1], stats = mem[2], authF = mem[3], authT = mem[4], authB = mem[5], template = mem[6], ops = [], err = '' //no log no broca? broca = broca_calc(broca, stats, json.block_num) //function is below if (typeof template.i != "string")err += `Contract doesn't exist.` if (typeof authF != 'string')err += `@${from} hasn't registered a public key. ` if (typeof authT != "string")err += `@${json.to} hasn't registered a public key. `; if (typeof authB != "string")err += `@${json.broker} hasn't registered a public key. `; if (proffer.ex)err += `This channel exists: ${proffer.ex.split(':')[1]} ` if (json.broca > broca.b || json.broca < stats.channel_min)err += `@${from} doesn't have enough BROCA to build a channel`; if (!err) { proffer.t = json.to //to proffer.f = from //from proffer.b = json.broker //broker proffer.r = parseInt(json.broca) //resource credit proffer.a = parseInt( (json.broca / stats.channel_min) * stats.channel_bytes ); proffer.s = 1 //status codes 1: exists; 2: following steps broca.b -= parseInt(json.broca); chronAssign(parseInt(json.block_num + 28800 ), { //builds a "virtual op" to process contract phase expiration block: parseInt(json.block_num + 28800 ), op: 'channel_check', from, to: json.to, c: json.contract, ensure: 1 }).then(exp_path=>{ proffer.e = exp_path ops.push({ type: "put", path: ["broca", from], data: broca, }); const msg = `@${json.to} authorized to upload ${proffer.a} bytes to @${json.broker} by @${from} for ${parseFloat(json.broca / 1000).toFixed(3)} BROCA`; ops.push({ type: "put", path: ["feed", `${json.block_num}:${json.transaction_id}`], data: msg, }); if (config.hookurl || config.status) postToDiscord(msg, `${json.block_num}:${json.transaction_id}`); ops.push({ type: "put", path: [json.contract, 'proffer', from, json.to], data: proffer, }); if (process.env.npm_lifecycle_event == "test") pc[2] = ops; store.batch(ops); }) } else { ops.push({ type: "put", path: ["feed", `${json.block_num}:${json.transaction_id}`], data: err, }); if (config.hookurl || config.status) postToDiscord(err, `${json.block_num}:${json.transaction_id}`); if (process.env.npm_lifecycle_event == "test") pc[2] = ops; store.batch(ops); // stores memory, called the next contract in the promise chain } }) } else { pc[0](pc[2]); //ignores this failed contract, processes the next contract in the block. }};exports.register_authority = (json, from, active, pc) => {//the contract json:payload, from:@hiveaccount, active: active key used, pc:promise chain(for contract ordering) if ( active && json.pubKey && typeof json.pubKey == "string" && json.pubKey.subStr(0, 3) == "STM" && json.pubKey.length == 53 ) { var ops = [{ type: "put", path: ["authorities", from], data: json.pubKey }]; store.batch(ops, pc); } else { pc[0](pc[2]); }};const broca_calc = (obj, stats, block_num) => { //broca calculation called by many contracts const last_calc = require('./helpers').Base64.toNumber(obj.t) //decode terse memory const max = require("./helpers").Base64.toNumber(obj.m); const accured = parseInt((parseFloat(stats.broca_refill) * (block_num - last_calc))/max) obj.b += accured if(obj.b > max)obj.b = max //places the current earned broca into the object, that will only be updated upon contract completion. This process saves unnecessary overhead for idle accounts. obj.t = require("./helpers").Base64.fromNumber(block_num); return obj}


Vote for our Witness:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@disregardfiat


![image.png](


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform, will be able to earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

View Details

https://3speak.tv/watch?v=spknetwork/pzblscua


We're buttoning up the next iteration of the SPK Network. Before we get there, we're discussing our new voting mechanism and hoping to get your feedback. This meeting is approaching an hour long, and below is all the code referenced directly in the video... with some additional //comments.

exports.spk_vote = (json, from, active, pc) => { //the contract json:payload, from:@hiveaccount, active: active key used, pc:promise chain(for contract ordering) var ops = [] //holds raw memory instructions if (active) { //ensures active key// memory reads var powp = getPathNum(["spow", from]), // @from's powered spk tpowp = getPathNum(["spow", "t"]), // the total powered spk dpowp = getPathObj(["spowd", from]), // @from's downpower operations pointer votebp = getPathObj(['spkVote', from]), // @from's last vote information pstats = getPathNum(['stats']) // current network parameters Promise.all([powp, tpowp, dpowp, votebp, pstats]).then((mem) => { var stats = mem[4] const DAOString = mem[3].substring(mem[3].indexOf(",")), lastVote = Base64.toNumber(mem[3].split(",")[0]) ? Base64.toNumber(mem[3].split(",")[0]) : json.block_num - parseInt(stats.spk_cycle_length), thisVote = Base64.fromNumber(json.block_num) + "," + (DAOString ? DAOString : ""), //decoding terse memory ago = json.block_num - lastVote total = mem[1], power = mem[0] downs = Object.keys(mem[2]) var effective_power = power, effective_total, aValidator = false if(stats.validators?.[from]){ //determine if @from is a validator aValidator = true var powerVoted = 0 for (block of stats.power_voted){ powerVoted += stats.power_voted[block] } power = (total - powerVoted)/20 //or number of validators } if (!power){ ops.push({ type: "put", path: ["feed", `${json.block_num}:${json.transaction_id}`], data: `@${from}| Attempted SPK vote with no voting power`, }); store.batch(ops, pc); } else if(downs.length && !aValidator){ getPathObj(['chrono', downs[0]]).then(down =>{ // additional step to recover downpower information from pointer finish(down) }) } else { finish() } function finish(down_obj) { if(down_obj?.amount){ effective_power = power - down_obj.amount } if (ago < parseFloat(stats.spk_cycle_length))effective_power = parseInt(effective_power * (ago / stats.spk_cycle_length)) else if (ago > parseFloat(stats.spk_cycle_length) && ago < stats.spk_cycle_length * 2)effective_power = effective_power* parseInt( effective_power * (1 - ((ago - stats.spk_cycle_length) / stats.spk_cycle_length) / 2) ) else if (ago >= stats.spk_cycle_length * 2)effective_power = parseInt(effective_power/2) effective_total = effective_total - effective_power const voteWeight = parseFloat(effective_power/effective_total).toFixed(8) const decayWeight = parseFloat( (effective_total - effective_power) / effective_total ).toFixed(8); //verify inputs, adjust constants if(json.spk_cycle_length < 28800)json.spk_cycle_length = 28800 if(json.spk_cycle_length > 3000000)json.spk_cycle_length = 3000000 if(json.dex_fee < 0)json.dex_fee = 0 if(json.dex_fee > 0.1)json.dex_fee = "0.1" if(json.dex_max < 0)json.dex_max = 0 if(json.dex_max > 100)json.dex_max = 100 if(json.dex_slope < 0)json.dex_slope = 0 if(json.dex_slope > 100)json.dex_slope = 100 if(json.spk_rate_lpow < 0)json.spk_rate_lpow = 0 if(json.spk_rate_lpow > stats.spk_rate_ldel)json.spk_rate_lpow = stats.spk_rate_ldel if(json.spk_rate_ldel > stats.spk_rate_lgov)json.spk_rate_lpow = stats.spk_rate_lgov if(json.spk_rate_ldel < stats.spk_rate_lpow)json.spk_rate_ldel = stats.spk_rate_lpow if(json.spk_rate_lgov > 0.1)json.spk_rate_lgov = "0.1" if(json.spk_rate_lgov < stats.spk_rate_ldel)json.spk_rate_lpow = stats.spk_rate_ldel if(json.max_coll_members > 100)json.max_coll_members = 100 if(json.max_coll_members < 15)json.max_coll_members = 15 json.max_coll_members = parseInt(json.max_coll_members) //stats.item = (json.vote * voteWeight) + (decayWeight * stats.item) stats.spk_cycle_length = (json.spk_cycle_length * voteWeight) + (decayWeight * parseFloat(stats.spk_cycle_length)) > 28800 ? parseFloat((json.spk_cycle_length * voteWeight) + (decayWeight * stats.spk_cycle_length).toFixed(6)) : 28800 stats.dex_fee = parseFloat((json.dex_fee * voteWeight) + (decayWeight * parseFloat(stats.dex_fee))).toFixed(6) stats.dex_max = parseFloat((json.dex_max * voteWeight) + (decayWeight * parseFloat(stats.dex_max))).toFixed(2) stats.dex_slope = parseFloat((json.dex_slope * voteWeight) + (decayWeight * parseFloat(stats.dex_slope))).toFixed(2) stats.spk_rate_ldel = parseFloat((json.spk_rate_ldel * voteWeight) + (decayWeight * parseFloat(stats.spk_rate_ldel))).toFixed(6) stats.spk_rate_lgov = parseFloat((json.spk_rate_lgov * voteWeight) + (decayWeight * parseFloat(stats.spk_rate_lgov))).toFixed(6) stats.spk_rate_lpow = parseFloat((json.spk_rate_lpow * voteWeight) + (decayWeight * parseFloat(stats.spk_rate_lpow))).toFixed(6) stats.max_coll_members = (json.max_coll_members * voteWeight) + (decayWeight * parseFloat(stats.max_coll_members)) < 25 ? 25 : ((json.max_coll_members * voteWeight) + (decayWeight * stats.max_coll_members) > 79 ? 79 : parseFloat((json.max_coll_members * voteWeight) + (decayWeight * stats.max_coll_members)).toFixed(6)) //useful-votes-calc if(!aValidator)stats.power_voted[stats.lastIBlock] = effective_power + (typeof stats.power_voted[stats.lastIBlock] == "number" ? stats.power_voted[stats.lastIBlock] : 0) ops.push({ type: "put", path: ["stats"], data: stats, }); ops.push({ type: "put", path: ["spkVote", from], data: thisVote, }); ops.push({ type: "put", path: ["feed", `${json.block_num}:${json.transaction_id}`], data: `@${from}| Has updated their votes.`, }); store.batch(ops, pc); } }); } else { ops.push({ type: "put", path: ["feed", `${json.block_num}:${json.transaction_id}`], data: `@${from}| Attempted SPK vote with posting key`, }); store.batch(ops, pc); }}


Thank you for participating in our development process and participating in these early stages.


Vote for our Witness:* https://vote.hive.uno/@threespeak * https://vote.hive.uno/@diregardfiat



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform, will be able to earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP
  • SPK Network Linktree: https://linktr.ee/spknetwork

View Details

https://3speak.tv/watch?v=spknetwork/wzbjmtil

Space recording with @taskmaster4450.https://twitter.com/3speakonline/status/1599123580687523840


Vote for our Witness:* https://vote.hive.uno/@threespeak


Main Image Source


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform, will be able to earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP

View Details

https://3speak.tv/watch?v=spknetwork/bnsdtkbq

The SPK Claim Chain is becoming the SPK network. These changes are happening slowly to ensure the community owns this network from the beginning. Let's review.

There are three token types in our proposed ecosystem. LARYNX, SPK, and BROCA. LARYNX is the miner token with an ongoing airdrop that can be claimed monthly. SPK is the governance token that will help turn our HIVE "side-chain" or "layer 2" into a DPoS(Distributed Proof-of-Stake) layer 2. This current change being tested allows our Larynx miner stakers to earn a very small amount of SPK to build a seedling governance. At our proposed distribution rates of 0.1, 0.015(x2), and 0.01%, we will expect no more than 15,000 SPK tokens to be minted by the next release; after which these tokens will vote a top 20(and even the number 20) which will then vote for distribution and other network variables.

A few features have been added for this release so let's cover them one by one. First, log in at dlux.io's wallet

You might have a claim available (if so, actually claim it at dlux.io/dex), but you'll need to claim it on the test net to play with these TEST tokens.

The TESTLARYNX menu will allow you to power up your mining tokens. If you run a SPKCC node, the Lock Liquidity menu will also be available, earning the highest return rate.

Now that you've powered up your LARYNX tokens, you're earning the base staking reward of 0.01% APR on your powered tokens. You can earn 50% more by delegating to a network provider account. You'll both earn 0.015% on the delegated amount. In the future, we hope this encourages network providers to provide better infrastructure and services without having to finance virtual miners and provide real services.

Finally. You can see and change your delegations by clicking the magnifying glass:


We don't expect this test period to last very long. Soon we'll be earning SPK tokens! Please leave a comment with your feedback.

Consider voting for our witnesses @disregardfiat and @threespeak.

  • https://vote.hive.uno/@disregardfiat
  • https://vote.hive.uno/@threespeak


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform, will be able to earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP

Posted by @eddiespino

View Details

https://3speak.tv/watch?v=spknetwork/wexlenxm

Join @starkerz and @disregardfiat in this conversation about validators and storage nodes.

Storage Contracts:

Example:

``` “QmXedNPCLxXxMrSkBjYgMaKy1uCmixiJ2LGdruLfeCsRgs”: { Broca: 1000, //remaining? Can get pretty fuzzy here depending on how Broca is rewarded Bytes: 1024000, Expires: 70000000, BrocaPerCheck: 50, Author: “author-a” Validator: “account-v”, Storage-A: “account-a”, Storage-B: “account-b”, Storage-C: “account-c”, }

```

Validator Example:

``` “account-v”: { domain: "api.val.io", self: from, strikes: 0, //what bad actions? branded: 100000, //larynx burned into account Delegated: 100000, Pingaverage: 500, delegators: { “delegator-a”: 100000 }, contracts: { “QmXedNPCLxXxMrSkBjYgMaKy1uCmixiJ2LGdruLfeCsRgs”: 70000000 }, //not sure if needed here PubKey: “STM6EUEaEywYoxpeVDX1fPDxrsyQLGTsgYf1LLDSHWwiKBdgRhGrx”, }

```

Storage Example:

``` “account-a”: { domain: "api.storage.io", strikes: 0, //what bad actions? branded: 100000, //larynx burned into account Bytes_total: 1024000000 Delegated: 100000, delegators: { “delegator-a”: 100000 }, contracts: { “QmXedNPCLxXxMrSkBjYgMaKy1uCmixiJ2LGdruLfeCsRgs”: 1024000 }, PubKey: “STM6EUEaEywYoxpeVDX1fPDxrsyQLGTsgYf1LLDSHWwiKBdgRhGrx”, }

```

Contract/functions:

Add Validator:

Builds “account-v” with larynx. Add Brand: Burns more larynx into an account, to mine for SPK

Add Storage Node:

``` Bundle: { //from validator node with new files to store “QmXedNPCLxXxMrSkBjYgMaKy1uCmixiJ2LGdruLfeCsRgs”: 1024000 “Author”: “author-a” }

Report: { Checks: { “QmXedNPCLxXxMrSkBjYgMaKy1uCmixiJ2LGdruLfeCsRgs”:{ “Storage-a”: 750, “Storage-b”: 500, “Storage-c”: OFFLINE, }, … }, OldSecret: mysecret. NewSecrets:{ A: “#mysecret” B: “#mysecret” }

```


Vote for our Witness: * https://vote.hive.uno/@disregardfiat * https://vote.hive.uno/@threespeak



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform, will be able to earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP

@eddiespino

View Details

https://3speak.tv/watch?v=spknetwork/usvpezvf

We've been humming along for a few months now, it's been mostly smooth but of course there have been a couple of hiccoughs. There have been more than 50 accounts running node services which provides decentralization as well as capital to collateralize the ad-hoc multi-signature decentralized exchange. The goal of the SPK network is to facilitate decentralized storage which means we have a few stops on the way. Proposing software version 1.1.0 Here we are, for the first time, issuing some SPK tokens. The idea is to trickle out tokens to our users for governance voting so when the time comes to scale, it's not us making all the decisions. Initially we're setting our APY at a very low number so our first movers advantage will be more in the decision making and less in token accumulation.

Proposed Rates: .1% APR to node operators

.03% APR to Delegators to node operators(split between the delegator and the delegatee, 0.015% each)

.01% APR to Non-Delegators

This rate is calculated daily, and is non-compounding, based on Locked, or Powered LARYNX only.

The incentive is for our users to provide infrastructure, or to select their infrastructure providers. The low amount for the delegation makes it more profitable to provide services than to game the delegation system. The lowest amount goes toward those interested enough to stake into the ecosystem, but not much else.

Interest Those familiar with the HBD interest algorithms will find some nostalgic methods here. When an account sends SPK, powers up or delegates Larynx, or claims earnings will have their interest calculated first. The periods are based on whole days (28800 blocks). This keeps compute cycles low and makes scaling easier. The down-side is front ends will have to calculate balances.

Code Review I welcome and strongly encourage code review. I'll explain some of the biggest pieces below.

Interest Calc

``` const simpleInterest = (p, t, r) => { const amount = p * (1 + r / 365); const interest = amount - p; return parseInt(interest * t); };

```

p => principal

t => time in days

r => rate (0.01, 0.0015, 0.001)

SPK Earnings Calc

``` const reward_spk = (acc, bn) => { return new Promise((res, rej) => { const Pblock = getPathNum(["spkb", acc]); const Pstats = getPathObj(["stats"]); const Ppow = getPathNum(["pow", acc]); const Pgranted = getPathNum(["granted", acc, "t"]); const Pgranting = getPathNum(["granting", acc, "t"]); const Pgov = getPathNum(["gov", acc]); const Pspk = getPathNum(['spk', acc]) const Pspkt = getPathNum(['spk', 't']) Promise.all([Pblock, Pstats, Ppow, Pgranted, Pgranting, Pgov, Pspk, Pspkt]).then( (mem) => { var block = mem[0], diff = bn - block, stats = mem[1], pow = mem[2], granted = mem[3], granting = mem[4], gov = mem[5], spk = mem[6], spkt = mem[7], r = 0, a = 0, b = 0, c = 0, t = 0 if (!block){ store.batch( [{ type: "put", path: ["spkb", acc], data: bn}], [res, rej, 0] ); } else if(diff < 28800){ //min claim period res(r) } else { t = parseInt(diff/28800) a = simpleInterest(gov, t, stats.spk_rate_lgov) b = simpleInterest(pow, t, stats.spk_rate_lpow); c = simpleInterest( (granted + granting), t, stats.spk_rate_ldel ); const i = a + b + c if(i){ store.batch( [{type: "put", path: ["spk", acc], data: spk + i}, {type: "put", path: ["spk", "t"], data: spkt + i}, {type: "put", path: ["spkb", acc], data: bn - (diff % 28800) }], [res, rej, i] ); } else { res(0) } }

        }
    );
})

}

```

Here the different balances are accessed in memory interest is calculated, and the SPK balance and total SPK balance are adusted. The Interest is calculated for whole days stored as block numbers in ['spkb']

SPK Send

`` exports.spk_send = (json, from, active, pc) => { let Pinterest = reward_spk(from, json.block_num), Pinterest2 = reward_spk(json.to, json.block_num); Promise.all([Pinterest, Pinterest2]) .then(interest => { let fbalp = getPathNum(["spk", from]), tbp = getPathNum(["spk", json.to]); //to balance promise Promise.all([fbalp, tbp]) .then((bals) => { let fbal = bals[0], tbal = bals[1], ops = []; send = parseInt(json.amount); if ( json.to && typeof json.to == "string" && send > 0 && fbal >= send && active && json.to != from ) { //balance checks ops.push({ type: "put", path: ["spk", from], data: parseInt(fbal - send), }); ops.push({ type: "put", path: ["spk", json.to], data: parseInt(tbal + send), }); let msg =@${from}| Sent @${json.to} ${parseFloat( parseInt(json.amount) / 1000 ).toFixed(3)} SPK; if (config.hookurl || config.status) postToDiscord(msg,${json.block_num}:${json.transaction_id}); ops.push({ type: "put", path: ["feed",${json.block_num}:${json.transaction_id}], data: msg, }); } else { ops.push({ type: "put", path: ["feed",${json.block_num}:${json.transaction_id}], data:@${from}| Invalid spk send operation`, }); } if (process.env.npm_lifecycle_event == "test") pc[2] = ops; store.batch(ops, pc); }) .catch((e) => { console.log(e); }); }) };

```

Here you can see the interest is calculated and rewarded before the send operation occurs. In the future this will also happen for all smart contracts that rely on SPK balance or changes to locked Larynx balances.

One concern here, if the approach to voting is space sensitive, changing SPK balances will require vote weights to be returned to the average. If votes are stored in the system the vote can be recalculated. I'm interested in hearing about clever ways to track votes with out keeping a whole accounting of them in memory.

Power Up and Delegate

``` exports.power_up = (json, from, active, pc) => { reward_spk(from, json.block_num).then(interest => { var amount = parseInt(json.amount), lpp = getPathNum(["balances", from]), tpowp = getPathNum(["pow", "t"]), powp = getPathNum(["pow", from]);

    Promise.all([lpp, tpowp, powp])
        .then((bals) => {
            let lb = bals[0],
                tpow = bals[1],
                pow = bals[2],
                lbal = typeof lb != "number" ? 0 : lb,
                pbal = typeof pow != "number" ? 0 : pow,
                ops = [];
            if (amount <= lbal && active) {
                ops.push({
                    type: "put",
                    path: ["balances", from],
                    data: lbal - amount,
                });
                ops.push({
                    type: "put",
                    path: ["pow", from],
                    data: pbal + amount,
                });
                ops.push({
                    type: "put",
                    path: ["pow", "t"],
                    data: tpow + amount,
                });
                const msg = `@${from}| Powered ${parseFloat(
                    json.amount / 1000
                ).toFixed(3)} ${config.TOKEN}`;
                if (config.hookurl || config.status)
                    postToDiscord(msg, `${json.block_num}:${json.transaction_id}`);
                ops.push({
                    type: "put",
                    path: ["feed", `${json.block_num}:${json.transaction_id}`],
                    data: msg,
                });
            } else {
                ops.push({
                    type: "put",
                    path: ["feed", `${json.block_num}:${json.transaction_id}`],
                    data: `@${from}| Invalid power up`,
                });
            }
            store.batch(ops, pc);
        })
        .catch((e) => {
            console.log(e);
        });
})

}

exports.power_grant = (json, from, active, pc) => { var amount = parseInt(json.amount), to = json.to, Pgranting_from_total = getPathNum(["granting", from, "t"]), Pgranting_to_from = getPathNum(["granting", from, to]), Pgranted_to_from = getPathNum(["granted", to, from]), Pgranted_to_total = getPathNum(["granted", to, "t"]), Ppower = getPathNum(["pow", from]), Pup_from = getPathObj(["up", from]), Pdown_from = getPathObj(["down", from]), Pup_to = getPathObj(["up", to]), Pdown_to = getPathObj(["down", to]), Pgov = getPathNum(['gov', to]) Pinterest = reward_spk(from, json.block_num), //interest calc before balance changes. Pinterest2 = reward_spk(json.to, json.block_num); Promise.all([ Ppower, Pgranted_to_from, Pgranted_to_total, Pgranting_to_from, Pgranting_from_total, Pup_from, Pup_to, Pdown_from, Pdown_to, Pgov, Pinterest, Pinterest2 ]) .then((mem) => { let from_power = mem[0], granted_to_from = mem[1], granted_to_total = mem[2], granting_to_from = mem[3], granting_from_total = mem[4], up_from = mem[5], up_to = mem[6], down_from = mem[7], down_to = mem[8], ops = []; if (amount < from_power && amount >= 0 && active && mem[9]) { //mem[9] checks for gov balance in to account. if (amount > granted_to_from) { let more = amount - granted_to_from; if (up_from.max) { up_from.max -= more; } if (down_from.max) { down_from.max -= more; } if (up_to.max) { up_to.max += more; } if (down_to.max) { down_to.max += more; } ops.push({ type: "put", path: ["granting", from, "t"], data: granting_from_total + more, }); ops.push({ type: "put", path: ["granting", from, to], data: granting_to_from + more, }); ops.push({ type: "put", path: ["granted", to, from], data: granted_to_from + more, }); ops.push({ type: "put", path: ["granted", to, "t"], data: granted_to_total + more, }); ops.push({ type: "put", path: ["pow", from], data: from_power - more, }); //weeks wait? chron ops? no because of the power growth at vote ops.push({ type: "put", path: ["up", from], data: up_from, }); ops.push({ type: "put", path: ["down", from], data: down_from, }); ops.push({ type: "put", path: ["up", to], data: up_to }); ops.push({ type: "put", path: ["down", to], data: down_to, }); const msg = @${from}| Has granted ${parseFloat( amount / 1000 ).toFixed(3)} to ${to}; if (config.hookurl || config.status) postToDiscord( msg, ${json.block_num}:${json.transaction_id} ); ops.push({ type: "put", path: [ "feed", ${json.block_num}:${json.transaction_id}, ], data: msg, }); } else if (amount < granted_to_from) { let less = granted_to_from - amount; if (up_from.max) { up_from.max += less; } if (down_from.max) { down_from.max += less; } if (up_to.max) { up_to.max -= less; } if (down_to.max) { down_to.max -= less; } ops.push({ type: "put", path: ["granting", from, "t"], data: granting_from_total - less, }); ops.push({ type: "put", path: ["granting", from, to], data: granting_to_from - less, }); ops.push({ type: "put", path: ["granted", to, from], data: granted_to_from - less, }); ops.push({ type: "put", path: ["granted", to, "t"], data: granted_to_total - less, }); ops.push({ type: "put", path: ["pow", from], data: from_power + less, }); ops.push({ type: "put", path: ["up", from], data: up_from, }); ops.push({ type: "put", path: ["down", from], data: down_from, }); ops.push({ type: "put", path: ["up", to], data: up_to }); ops.push({ type: "put", path: ["down", to], data: down_to, }); const msg = @${from}| Has granted ${parseFloat( amount / 1000 ).toFixed(3)} to ${to}; if (config.hookurl || config.status) postToDiscord( msg, ${json.block_num}:${json.transaction_id} ); ops.push({ type: "put", path: [ "feed", ${json.block_num}:${json.transaction_id}, ], data: msg, }); } else { const msg = @${from}| Has already granted ${parseFloat( amount / 1000 ).toFixed(3)} to ${to}; if (config.hookurl || config.status) postToDiscord( msg, ${json.block_num}:${json.transaction_id} ); ops.push({ type: "put", path: [ "feed", ${json.block_num}:${json.transaction_id}, ], data: msg, }); } } else { const msg = @${from}| Invalid delegation; if (config.hookurl || config.status) postToDiscord( msg, ${json.block_num}:${json.transaction_id} ); ops.push({ type: "put", path: ["feed", ${json.block_num}:${json.transaction_id}], data: msg, }); } store.batch(ops, pc); }) .catch((e) => { console.log(e); }); }

```

The only thing new here to note is delegation are only allowed to accounts with a gov balance, which only node operating accounts can have. Removing or lowering a delegation will also calculate the SPK balance before the change. As far as I can figure there is no way to "double spend" Larynx for rewards... please check me on this, it's important.

API Stated previously front-ends will have to calculate SPK balances based on the same information, which means a little extra API is needed. This will need to be coupled with the interest rate stats and head block number.

Thank You Thank you to the community of node runners and that help me and each other run and improve this and other Hive software. I appreciate your feedback here and on our Discord Server


Vote for our Witness: * https://vote.hive.uno/@disregardfiat * https://vote.hive.uno/@threespeak



About the SPK Network: * SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper * Website: https://spk.network/ * Telegram: https://t.me/spknetwork * Discord: https://discord.gg/JbhQ7dREsP

View Details

https://3speak.tv/watch?v=spknetwork/kmosaiim

We've been humming along for a few months now, it's been mostly smooth but of course there have been a couple of hiccoughs. There have been more than 50 accounts running node services which provides decentralization as well as capital to collateralize the ad-hoc multi-signature decentralized exchange. The goal of the SPK network is to facilitate decentralized storage which means we have a few stops on the way. Proposing software version 1.1.0 Here we are, for the first time, issuing some SPK tokens. The idea is to trickle out tokens to our users for governance voting so when the time comes to scale, it's not us making all the decisions. Initially we're setting our APY at a very low number so our first movers advantage will be more in the decision making and less in token accumulation.

Proposed Rates: .1% APR to node operators

.03% APR to Delegators to node operators(split between the delegator and the delegatee, 0.015% each)

.01% APR to Non-Delegators

This rate is calculated daily, and is non-compounding, based on Locked, or Powered LARYNX only.

The incentive is for our users to provide infrastructure, or to select their infrastructure providers. The low amount for the delegation makes it more profitable to provide services than to game the delegation system. The lowest amount goes toward those interested enough to stake into the ecosystem, but not much else.

Interest Those familiar with the HBD interest algorithms will find some nostalgic methods here. When an account sends SPK, powers up or delegates Larynx, or claims earnings will have their interest calculated first. The periods are based on whole days (28800 blocks). This keeps compute cycles low and makes scaling easier. The down-side is front ends will have to calculate balances.

Code Review I welcome and strongly encourage code review. I'll explain some of the biggest pieces below.

Interest Calc

``` const simpleInterest = (p, t, r) => { const amount = p * (1 + r / 365); const interest = amount - p; return parseInt(interest * t); };

```

p => principal

t => time in days

r => rate (0.01, 0.0015, 0.001)

SPK Earnings Calc

``` const reward_spk = (acc, bn) => { return new Promise((res, rej) => { const Pblock = getPathNum(["spkb", acc]); const Pstats = getPathObj(["stats"]); const Ppow = getPathNum(["pow", acc]); const Pgranted = getPathNum(["granted", acc, "t"]); const Pgranting = getPathNum(["granting", acc, "t"]); const Pgov = getPathNum(["gov", acc]); const Pspk = getPathNum(['spk', acc]) const Pspkt = getPathNum(['spk', 't']) Promise.all([Pblock, Pstats, Ppow, Pgranted, Pgranting, Pgov, Pspk, Pspkt]).then( (mem) => { var block = mem[0], diff = bn - block, stats = mem[1], pow = mem[2], granted = mem[3], granting = mem[4], gov = mem[5], spk = mem[6], spkt = mem[7], r = 0, a = 0, b = 0, c = 0, t = 0 if (!block){ store.batch( [{ type: "put", path: ["spkb", acc], data: bn}], [res, rej, 0] ); } else if(diff < 28800){ //min claim period res(r) } else { t = parseInt(diff/28800) a = simpleInterest(gov, t, stats.spk_rate_lgov) b = simpleInterest(pow, t, stats.spk_rate_lpow); c = simpleInterest( (granted + granting), t, stats.spk_rate_ldel ); const i = a + b + c if(i){ store.batch( [{type: "put", path: ["spk", acc], data: spk + i}, {type: "put", path: ["spk", "t"], data: spkt + i}, {type: "put", path: ["spkb", acc], data: bn - (diff % 28800) }], [res, rej, i] ); } else { res(0) } }

        }
    );
})

}

```

Here the different balances are accessed in memory interest is calculated, and the SPK balance and total SPK balance are adusted. The Interest is calculated for whole days stored as block numbers in ['spkb']

SPK Send

`` exports.spk_send = (json, from, active, pc) => { let Pinterest = reward_spk(from, json.block_num), Pinterest2 = reward_spk(json.to, json.block_num); Promise.all([Pinterest, Pinterest2]) .then(interest => { let fbalp = getPathNum(["spk", from]), tbp = getPathNum(["spk", json.to]); //to balance promise Promise.all([fbalp, tbp]) .then((bals) => { let fbal = bals[0], tbal = bals[1], ops = []; send = parseInt(json.amount); if ( json.to && typeof json.to == "string" && send > 0 && fbal >= send && active && json.to != from ) { //balance checks ops.push({ type: "put", path: ["spk", from], data: parseInt(fbal - send), }); ops.push({ type: "put", path: ["spk", json.to], data: parseInt(tbal + send), }); let msg =@${from}| Sent @${json.to} ${parseFloat( parseInt(json.amount) / 1000 ).toFixed(3)} SPK; if (config.hookurl || config.status) postToDiscord(msg,${json.block_num}:${json.transaction_id}); ops.push({ type: "put", path: ["feed",${json.block_num}:${json.transaction_id}], data: msg, }); } else { ops.push({ type: "put", path: ["feed",${json.block_num}:${json.transaction_id}], data:@${from}| Invalid spk send operation`, }); } if (process.env.npm_lifecycle_event == "test") pc[2] = ops; store.batch(ops, pc); }) .catch((e) => { console.log(e); }); }) };

```

Here you can see the interest is calculated and rewarded before the send operation occurs. In the future this will also happen for all smart contracts that rely on SPK balance or changes to locked Larynx balances.

One concern here, if the approach to voting is space sensitive, changing SPK balances will require vote weights to be returned to the average. If votes are stored in the system the vote can be recalculated. I'm interested in hearing about clever ways to track votes with out keeping a whole accounting of them in memory.

Power Up and Delegate

``` exports.power_up = (json, from, active, pc) => { reward_spk(from, json.block_num).then(interest => { var amount = parseInt(json.amount), lpp = getPathNum(["balances", from]), tpowp = getPathNum(["pow", "t"]), powp = getPathNum(["pow", from]);

    Promise.all([lpp, tpowp, powp])
        .then((bals) => {
            let lb = bals[0],
                tpow = bals[1],
                pow = bals[2],
                lbal = typeof lb != "number" ? 0 : lb,
                pbal = typeof pow != "number" ? 0 : pow,
                ops = [];
            if (amount <= lbal && active) {
                ops.push({
                    type: "put",
                    path: ["balances", from],
                    data: lbal - amount,
                });
                ops.push({
                    type: "put",
                    path: ["pow", from],
                    data: pbal + amount,
                });
                ops.push({
                    type: "put",
                    path: ["pow", "t"],
                    data: tpow + amount,
                });
                const msg = `@${from}| Powered ${parseFloat(
                    json.amount / 1000
                ).toFixed(3)} ${config.TOKEN}`;
                if (config.hookurl || config.status)
                    postToDiscord(msg, `${json.block_num}:${json.transaction_id}`);
                ops.push({
                    type: "put",
                    path: ["feed", `${json.block_num}:${json.transaction_id}`],
                    data: msg,
                });
            } else {
                ops.push({
                    type: "put",
                    path: ["feed", `${json.block_num}:${json.transaction_id}`],
                    data: `@${from}| Invalid power up`,
                });
            }
            store.batch(ops, pc);
        })
        .catch((e) => {
            console.log(e);
        });
})

}

exports.power_grant = (json, from, active, pc) => { var amount = parseInt(json.amount), to = json.to, Pgranting_from_total = getPathNum(["granting", from, "t"]), Pgranting_to_from = getPathNum(["granting", from, to]), Pgranted_to_from = getPathNum(["granted", to, from]), Pgranted_to_total = getPathNum(["granted", to, "t"]), Ppower = getPathNum(["pow", from]), Pup_from = getPathObj(["up", from]), Pdown_from = getPathObj(["down", from]), Pup_to = getPathObj(["up", to]), Pdown_to = getPathObj(["down", to]), Pgov = getPathNum(['gov', to]) Pinterest = reward_spk(from, json.block_num), //interest calc before balance changes. Pinterest2 = reward_spk(json.to, json.block_num); Promise.all([ Ppower, Pgranted_to_from, Pgranted_to_total, Pgranting_to_from, Pgranting_from_total, Pup_from, Pup_to, Pdown_from, Pdown_to, Pgov, Pinterest, Pinterest2 ]) .then((mem) => { let from_power = mem[0], granted_to_from = mem[1], granted_to_total = mem[2], granting_to_from = mem[3], granting_from_total = mem[4], up_from = mem[5], up_to = mem[6], down_from = mem[7], down_to = mem[8], ops = []; if (amount < from_power && amount >= 0 && active && mem[9]) { //mem[9] checks for gov balance in to account. if (amount > granted_to_from) { let more = amount - granted_to_from; if (up_from.max) { up_from.max -= more; } if (down_from.max) { down_from.max -= more; } if (up_to.max) { up_to.max += more; } if (down_to.max) { down_to.max += more; } ops.push({ type: "put", path: ["granting", from, "t"], data: granting_from_total + more, }); ops.push({ type: "put", path: ["granting", from, to], data: granting_to_from + more, }); ops.push({ type: "put", path: ["granted", to, from], data: granted_to_from + more, }); ops.push({ type: "put", path: ["granted", to, "t"], data: granted_to_total + more, }); ops.push({ type: "put", path: ["pow", from], data: from_power - more, }); //weeks wait? chron ops? no because of the power growth at vote ops.push({ type: "put", path: ["up", from], data: up_from, }); ops.push({ type: "put", path: ["down", from], data: down_from, }); ops.push({ type: "put", path: ["up", to], data: up_to }); ops.push({ type: "put", path: ["down", to], data: down_to, }); const msg = @${from}| Has granted ${parseFloat( amount / 1000 ).toFixed(3)} to ${to}; if (config.hookurl || config.status) postToDiscord( msg, ${json.block_num}:${json.transaction_id} ); ops.push({ type: "put", path: [ "feed", ${json.block_num}:${json.transaction_id}, ], data: msg, }); } else if (amount < granted_to_from) { let less = granted_to_from - amount; if (up_from.max) { up_from.max += less; } if (down_from.max) { down_from.max += less; } if (up_to.max) { up_to.max -= less; } if (down_to.max) { down_to.max -= less; } ops.push({ type: "put", path: ["granting", from, "t"], data: granting_from_total - less, }); ops.push({ type: "put", path: ["granting", from, to], data: granting_to_from - less, }); ops.push({ type: "put", path: ["granted", to, from], data: granted_to_from - less, }); ops.push({ type: "put", path: ["granted", to, "t"], data: granted_to_total - less, }); ops.push({ type: "put", path: ["pow", from], data: from_power + less, }); ops.push({ type: "put", path: ["up", from], data: up_from, }); ops.push({ type: "put", path: ["down", from], data: down_from, }); ops.push({ type: "put", path: ["up", to], data: up_to }); ops.push({ type: "put", path: ["down", to], data: down_to, }); const msg = @${from}| Has granted ${parseFloat( amount / 1000 ).toFixed(3)} to ${to}; if (config.hookurl || config.status) postToDiscord( msg, ${json.block_num}:${json.transaction_id} ); ops.push({ type: "put", path: [ "feed", ${json.block_num}:${json.transaction_id}, ], data: msg, }); } else { const msg = @${from}| Has already granted ${parseFloat( amount / 1000 ).toFixed(3)} to ${to}; if (config.hookurl || config.status) postToDiscord( msg, ${json.block_num}:${json.transaction_id} ); ops.push({ type: "put", path: [ "feed", ${json.block_num}:${json.transaction_id}, ], data: msg, }); } } else { const msg = @${from}| Invalid delegation; if (config.hookurl || config.status) postToDiscord( msg, ${json.block_num}:${json.transaction_id} ); ops.push({ type: "put", path: ["feed", ${json.block_num}:${json.transaction_id}], data: msg, }); } store.batch(ops, pc); }) .catch((e) => { console.log(e); }); }

```

The only thing new here to note is delegation are only allowed to accounts with a gov balance, which only node operating accounts can have. Removing or lowering a delegation will also calculate the SPK balance before the change. As far as I can figure there is no way to "double spend" Larynx for rewards... please check me on this, it's important.

API Stated previously front-ends will have to calculate SPK balances based on the same information, which means a little extra API is needed. This will need to be coupled with the interest rate stats and head block number.

Thank You Thank you to the community of node runners and that help me and each other run and improve this and other Hive software. I appreciate your feedback here and on our Discord Server


Vote for our Witness: * https://vote.hive.uno/@disregardfiat * https://vote.hive.uno/@threespeak


Contact @eddiespino if you need help.

View Details

https://3speak.tv/watch?v=spknetwork/rvsycrqq

Hello Hivers,

Today we had a great AMA, this is the recording. Thank you to @disregardfiat for his input and also to @starkerz and @theycallmedan. The AMA was recorded by @eddiespino and uploaded just a few hours later. You can read the questions here.

Breakaway communities Tutorial: * Easily Set up Your Own Web3 Enabled Breakaway Community Platform



About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens so that every user, creator, and platform, will be able to earn rewards on a level playing field.

  • Check out the SPK Network Light Paper: https://peakd.com/hive/@spknetwork/spk-network-light-paper
  • Our Website: https://spk.network/
  • Telegram Group: https://t.me/spknetwork
  • Discord Server: https://discord.gg/JbhQ7dREsP

View Details

https://3speak.tv/watch?v=spknetwork/ejggqoqk


Recording of the "Claim Drop Party".


About the SPK Network:

The SPK Network is a decentralized Web 3.0 protocol that rewards value creators and infrastructure providers appropriately and autonomously by distributing reward tokens in such a way that every user, creator, and platform, will be able to earn rewards on a level playing field.

  • Read the SPK Network Light Paper here
  • What are LARYNX Miner Tokens?
  • SPK Claim Chain Monitor.
  • Our Website.
  • Telegram Group
  • SPK Network Discord Server

View Details

https://3speak.tv/watch?v=spknetwork/lyevclig
SPK Network AMA with the community.

View Details

https://3speak.tv/watch?v=spknetwork/lxclecds
This is a recording of the first official kick-off meeting for the SPK Netowork, where we go through every detail of the scope of work.

Intro & format of the meeting

  • RoadMap: https://hive.blog/hive-112019/@spknetwork/spk-network-milestones-and-roadmap
  • Scope discussion
  • Livestreaming
  • Overall priority and perceived risks of high-level items being built (i.e., SPK daemon)
  • Hack our multi-sig wallet (Sidechain MultiSig Wallet on Hive blockchain)
  • Claim Drop Hive Snapshot
  • Claim allocation Config
  • Claim drop

Test nets:

-HIVE SON

-Token System

-NFT

Notes / actions:

Request community take part in the test net for the multi-sig wallet, as well as the other test nets

In attendance:

vaultec

bobinson

disregardfiat

Jeffkhull

gotgame

eddiespino

brianoflondon

starkerz

theycallmedan