-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathweb3techblog_db.sql
265 lines (225 loc) · 135 KB
/
web3techblog_db.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Generation Time: Apr 22, 2023 at 06:53 AM
-- Server version: 10.4.27-MariaDB
-- PHP Version: 8.2.0
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `web3techblog_db`
--
-- --------------------------------------------------------
--
-- Table structure for table `categories`
--
CREATE TABLE `categories` (
`cat_id` int(3) NOT NULL,
`cat_title` varchar(255) NOT NULL DEFAULT '',
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
`updated_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Dumping data for table `categories`
--
INSERT INTO `categories` (`cat_id`, `cat_title`, `created_at`, `updated_at`) VALUES
(1, 'TechBlog', '2023-03-01 06:00:00', '0000-00-00 00:00:00'),
(3, 'Web3', '2023-04-01 05:00:00', '0000-00-00 00:00:00'),
(4, 'Books', '2023-04-02 05:00:00', '0000-00-00 00:00:00'),
(5, 'Hackathon', '2023-03-10 06:00:00', '0000-00-00 00:00:00'),
(15, 'Guides', '2023-04-22 03:01:43', '2023-04-22 03:01:43');
-- --------------------------------------------------------
--
-- Table structure for table `comments`
--
CREATE TABLE `comments` (
`comment_id` int(3) NOT NULL,
`comment_post_id` int(3) NOT NULL,
`comment_user_id` int(3) NOT NULL,
`comment_content` text NOT NULL,
`comment_date` datetime NOT NULL DEFAULT current_timestamp(),
`comment_status` varchar(255) NOT NULL DEFAULT 'pending'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Dumping data for table `comments`
--
INSERT INTO `comments` (`comment_id`, `comment_post_id`, `comment_user_id`, `comment_content`, `comment_date`, `comment_status`) VALUES
(1, 89, 20, 'Hi this a test', '2023-04-18 21:26:22', 'approved'),
(3, 89, 20, 'Hi this a test', '2023-04-18 21:26:46', 'pending'),
(4, 98, 20, 'dsads', '2023-04-19 17:48:15', 'pending'),
(5, 98, 20, 'dsads', '2023-04-19 17:49:30', 'pending'),
(6, 98, 20, 'hi there', '2023-04-19 17:49:33', 'pending'),
(16, 98, 20, 'hi there', '2023-04-19 19:21:40', 'pending'),
(17, 98, 20, 'hi there', '2023-04-19 19:22:02', 'pending'),
(18, 98, 20, 'hi there', '2023-04-19 19:23:24', 'pending'),
(19, 98, 20, 'hi there', '2023-04-19 19:23:35', 'pending'),
(20, 98, 20, 'hi there', '2023-04-19 19:30:05', 'pending'),
(21, 98, 20, 'hi there', '2023-04-19 19:30:19', 'pending'),
(22, 98, 20, 'hi there', '2023-04-19 20:04:23', 'pending'),
(23, 98, 20, 'hi there', '2023-04-19 20:05:01', 'pending'),
(24, 98, 20, 'hi there', '2023-04-19 20:05:03', 'pending'),
(25, 90, 20, 'sda', '2023-04-20 13:46:46', 'approved'),
(26, 90, 20, 'dsada', '2023-04-20 13:46:54', 'pending'),
(27, 90, 20, 'dsada', '2023-04-20 13:47:14', 'pending'),
(28, 90, 20, '', '2023-04-20 13:47:55', 'pending'),
(29, 90, 20, '333', '2023-04-20 14:10:11', 'pending'),
(30, 90, 20, '333', '2023-04-20 14:11:25', 'pending'),
(32, 100, 20, 'hi this a second chance ', '2023-04-20 19:02:10', 'pending'),
(33, 100, 20, 'dasdas', '2023-04-20 19:03:43', 'pending'),
(34, 100, 20, 'sss', '2023-04-20 19:11:37', 'pending'),
(35, 100, 20, 'zailaiyic\r\n', '2023-04-20 19:11:54', 'approved'),
(38, 6, 20, '\r\n \r\n dsa d ', '2023-04-20 20:21:08', 'pending'),
(40, 104, 20, ' hi there ', '2023-04-21 15:07:54', 'pending'),
(41, 104, 20, ' hi there ', '2023-04-21 15:07:58', 'approved'),
(42, 101, 22, ' Hi ,that's really cool.', '2023-04-21 19:48:16', 'pending'),
(43, 101, 20, ' Hi i would like to tyr', '2023-04-21 19:49:19', 'approved'),
(44, 101, 20, ' Hi i m in', '2023-04-21 19:51:48', 'approved'),
(46, 104, 20, 'This a test, so i can comments', '2023-04-21 21:45:09', 'approved');
-- --------------------------------------------------------
--
-- Table structure for table `posts`
--
CREATE TABLE `posts` (
`post_id` int(3) NOT NULL,
`post_category_id` int(3) NOT NULL,
`post_title` varchar(255) NOT NULL DEFAULT '',
`post_author` varchar(255) NOT NULL DEFAULT '',
`post_user` varchar(255) NOT NULL DEFAULT '',
`post_date` datetime NOT NULL DEFAULT current_timestamp(),
`post_image` varchar(255) DEFAULT 'default_image.jpg',
`post_content` longtext NOT NULL,
`post_tags` varchar(255) NOT NULL DEFAULT '',
`post_comment_count` int(11) NOT NULL DEFAULT 0,
`post_status` varchar(255) NOT NULL DEFAULT 'draft',
`post_views_count` int(11) NOT NULL DEFAULT 0,
`update_date` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Dumping data for table `posts`
--
INSERT INTO `posts` (`post_id`, `post_category_id`, `post_title`, `post_author`, `post_user`, `post_date`, `post_image`, `post_content`, `post_tags`, `post_comment_count`, `post_status`, `post_views_count`, `update_date`) VALUES
(92, 3, 'The Journey to Web 3.0', 'yifanli', '', '2023-04-18 19:20:02', '64434fe79e1a52.09299479.jpg', '<p>Web 3.0 is the evolution of the internet. It is meant to create a more open, transparent, and decentralized web. This evolution is driven by the convergence of multiple distinct technologies, each of which is evolving at its own pace.<br /><br />Previous evolutions of the web had less diverse technologies and more tangible objectives. In the case of Web 1.0, static content and graphics were introduced. Web 1.0 was enabled by a universal language (HTML, CSS), a communication protocol (HTTP), URLs to find websites, and web browsers to interpret the code.<br /><br />Web 2.0 was driven by user-generated content. Social Media Platforms and Content Management Systems (CMS), together with enhancements to interactivity and collaboration (APIs) enabled this evolution.<br /><br />However, decentralization within Web 3.0 is only achieved when different purpose technologies are combined into solutions that trigger a cultural change in our society.<br />The State of Web 3.0 Technologies<br /><br />Lets analyze what each technology offers, the adoption of such technologies, and the market size for them. This will provide an understanding of the state of each technology.<br />Artificial Intelligence (AI)<br /><br />The term Artificial Intelligence (AI) encompasses a set of technologies that allows machines to learn, the way humans do. AI is very strong at decision- making.<br /><br />The most representative technologies that make up AI are: machine learning (allows machines to learn and improve), natural language processing (understand, interpret, and generate human language), computer vision (understand and interpret visual information such as images and video), robotics (hardware that can perform autonomous tasks), neural networks (mimics the structure of the human brain to perform ML).<br /><br />ChatGPT and image generators such as Midjourney have provided instant tangible benefits to every industry. By the end of 2023, the majority of the world will be using AI and thus the cultural change will come naturally. The market size for AI is expected to grow from $387,45 billion to $1,394.30 billion in 2029 in North America according to Fortune Business Insights.<br />Blockchain<br /><br />The technology that enabled blockchain has existed since the 1970s, however the first blockchain was invented in 2008, 15 years ago. Blockchain technology has matured and common coding frameworks can be used to implement it. This makes adoption of blockchain easier.<br /><br />However, blockchain has been affected by the fall of cryptocurrencies. While they recover, blockchain technologies are unfairly judged together with failures of some crypto currencies. This slows down it’s adoption.<br /><br />From a cultural perspective, decentralization provided by blockchain is still considered a distant dream and practical use cases other than those associated with crypto and some metaverse platforms (decentraland, second life) are uncommon.<br /><br />A limitation with blockchain is every transaction has a cost associated to it. Massive amount of records in a blockchain can become very expensive.<br /><br />However, Grand View Research predicts that the blockchain market will grow at a rate of 47,1% between 2023 and 2030.<br />Metaverse<br /><br />Metaverse has been unfairly considered a dead initiative. Part of the problem of this conclusion is timing. Mark Zuckerberg took a drastic approach at jumping at the possibility to become the leader of the “new internet”. This lead many speculators to believe the change would be immediate. The metaverse is one of the longer journeys of the previous technologies discussed.<br /><br />To be clear, metaverse are fully immersive virtual worlds where users can interact with each other and digital objects in a three dimensional world.<br /><br />As I mentioned before, the metaverse is a journey, and companies should be ready to embrace that journey but do so one day at a time. Apple, Nvidia, and Meta are making strong bets on moving towards augmented and virtual realities. Nvidia and Meta stock have risen more than 80% YTD. McKinsey estimates the metaverse will create $5 trillion in value by 2030.<br /><br />Culturally, the change starts with dependence on augmented reality. Barriers of entry are lower, since all you need is a smartphone to interact with augmented reality.<br /><br />Many major brands are showing their products either interactively on social media (think filters), or in their e-commerce, where you can see how they look in your house through your phone or tablet(Ikea furniture, apple devices). As we’re more accustomed to mixed and augmented reality, the move to virtual will happen organically.<br /><br />Cost of hardware for virtual reality are still steep. Oculus (owned by meta) start at US $400, Apple’s soon the be announced mixed reality lenses will probably start at upwards of US $1,000, and Microsoft falls somewhere in between.<br /><br />The technologies powering Web 3.0 are powerful and will definitely re-shape the way we work and live in the near future. The list of technologies that we covered here will continue to evolve, however we are yet to know if they will work together or go their separte ways.<br /><br />At AntPack we’ve worked with solutions on all this technologies. Read our e-book on metaverse here<br /><br /><br id=\"a5ec\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: 20px;\" data-selectable-paragraph=\"\" /></p>', 'Web3', 0, 'published', 0, '2023-04-19 00:20:02'),
(93, 3, 'Hong Kong’s Rise as a Crypto and Web3 Hub', 'yifanli', '', '2023-04-18 19:20:06', '644350892c0365.89092510.jpg', '<p>Introduction<br />Hong Kong has emerged as a major player in the cryptocurrency and Web3 space, with a thriving ecosystem of startups, established companies, and regulators collaborating to drive innovation. The recent Hong Kong Web3 Festival 2023 showcased the city’s commitment to fostering growth in these domains, with industry leaders discussing key developments and future trends. In this article, we explore the factors behind Hong Kong’s rise as a crypto and Web3 hub and present the key takeaways from the Web3 Festival.<br /><br />A Supportive Regulatory Environment<br />Hong Kong’s financial regulators have taken a proactive approach to establishing a supportive framework for cryptocurrency and decentralized finance (DeFi) projects. They have reiterated their commitment to striking the right balance between innovation and risk management, while providing clear guidelines to market participants. This regulatory certainty has attracted numerous crypto and DeFi startups to Hong Kong, strengthening its position as a global hub for digital finance.<br /><br />Building a Web3 Ecosystem<br />Hong Kong’s Web3 Festival brought together key players in the space, providing a platform for them to showcase their latest innovations and discuss the future of Web3. Companies like GreaterHeat and TraderX unveiled groundbreaking solutions for decentralized storage and trading, while WooFi highlighted the importance of Layer 2 technologies in driving Web3 adoption. By facilitating collaboration and knowledge-sharing, the festival has contributed to the growth of a vibrant Web3 ecosystem in Hong Kong.<br /><br />Emphasis on Interoperability and Security<br />One of the key themes discussed during the Web3 Festival was the need for interoperability and security in blockchain systems. Poly Network’s cross-chain panel discussion shed light on the challenges and opportunities in building a secure, interconnected Web3 landscape. As more projects aim to create seamless connections between different blockchain networks, security will remain a critical focus area to ensure the success of Web3 initiatives.<br /><br />Chinese Officials Pledge Support<br />Hong Kong’s growing prominence as a Web3 hub has not gone unnoticed by Chinese officials, who recently pledged support for the city’s tech and Web3 ambitions at the Digital Economy Summit. This development signifies the potential for increased regional collaboration and investment, further boosting Hong Kong’s status as a leading global crypto and Web3 center.<br /><br />Conclusion<br />The Hong Kong Web3 Festival 2023 highlighted the city’s remarkable progress in the cryptocurrency and Web3 domains. As Hong Kong continues to foster a supportive regulatory environment, build a vibrant Web3 ecosystem, and prioritize interoperability and security, it is poised to strengthen its position as a global crypto and Web3 hub. The future is bright for Hong Kong’s blockchain and digital asset industries, and the Web3 Festival has provided a glimpse of the exciting developments that lie ahead.</p>', 'Crypto', 0, 'published', 0, '2023-04-19 00:20:06'),
(94, 5, 'MIT Bitcoin Hackathon: 10 Years of Building Blocks', 'yifanli', '', '2023-04-18 19:23:48', '644350a7600e68.19249739.png', '<p>Join us for the annual MIT Bitcoin Hackathon -- we welcome projects built on Bitcoin, Ethereum, and beyond to compete for $18k in prize pool.</p>\r\n<p>We are excited to host the MIT Bitcoin Hackathon 2023 on the 10th anniversary of the Expo on April 21st-23rd. This is a big deal and a unique hackathon where you will have 30 hours to learn, share and, most importantly, build a remarkable project that might be one of the next building blocks for the evolution of the crypto industry. You can participate in the Hackathon IRL at MIT or online.<br /><br />In the past, those who have participated in the hackathon have come out with amazing new startups, projects, and connections. Whether you have a team or you are alone, come and join our MIT community of hackers. Participants can be mentors, students, or professional hackers from all around the globe. Historically, some of our best and most successful stories are from people that are new to Bitcoin and crypto so everyone is welcome.</p>\r\n<p>The Hackathon will begin April 21st @ 6:00 PM (Eastern Time, USA) and will end April 22nd @ 11:59 PM. The first day will take place at MIT’s amazing new Innovation Headquarters (iHQ). This Hackathon is a technical event so it is expected that projects are coded during the 30 hour hacking period. <br /><br />The MIT Bitcoin Club members, along with our amazing mentors, alumni, and sponsors, will be there to mentor and support teams to help create great projects. Compete in one of these tracks - Bitcoin & Lightning & Taproot, Decentralized Applications - or one of the sponsored challenges that will be listed soon. You will have a chance to win a portion of our $26,000 prize pool. <br /><br />Are you new to the space? No worries; this event is beginner friendly! <br /><br />Already have a hacker team? Come compete at one of the most prestigious events of the year. <br /><br />Just curious or want to learn even more about crypto? Join us, and the fun will be guaranteed.<br /><br />Give it a try and register now!!! We\'re excited to see you all on April 21st-22nd. Let\'s Go!</p>\r\n<p>You can also follow us on Twitter: @MITBitcoinClub to keep up with news about the event and reach out to [email protected] for any questions.<br /><br /></p>\r\n<p> </p>', 'Bitcoin', 0, 'published', 0, '2023-04-19 00:23:48'),
(99, 0, 'HongKong Web3Festibal 2023', 'yifanli', '', '2023-04-19 20:09:22', '644090c2bf0741.65592918.jpg', '<p>sda</p>', '', 0, 'published', 0, '2023-04-20 01:09:22'),
(101, 5, '2023 Cryptape Doc Hackathon Announcement', 'yifanli', '', '2023-04-21 13:31:28', '6442ea41c54937.59076694.jpg', '<h2>Greetings!</h2>\r\n<p>Welcome to the HaCKBee buzzing family! We are excited to have you here for the documentation Hackathon. Think of it more like a fun bazaar than a competition. Our goal is to improve the existing CKB docs and make them more user-friendly. Whether you\'re a beginner or an expert, we want everyone to have fun while contributing to the wider adoption of CKB. We can\'t wait to see you buzzing!</p>\r\n<h2>Bonus</h2>\r\n<p>The top three teams or individuals will share a pool of 10,000 USD in CKB, distributed as:<br /><br />1st Place: 5,000 USD<br />2nd Place: 3,000 USD<br />3rd Place: 2,000 USD<br /><br />Rewards will be distribution on April 13, 2023.<br />The value of CKB as rewards will be based on the price at 10:00 (UTC+8) on April 12, 2023.<br />How the bonus will be split is up to the teams to decide.</p>\r\n<h2>Project ideas</h2>\r\n<p>Let\'s go over the challenges which include but not limited to:<br /><br />Onboarding Materials: Create a guidebook for new CKB developers<br />Dev-Friendly Definitions: Improve CKB glossary by revising or adding key Nervos-/ CKB-specific concepts, such as \"halving”, “cycle”<br />Frictionless Tutorials: Write learning-oriented tutorials for tools, such as Lumos, (https://github.com)<br /> </p>', 'Web3,Hackathon', 0, 'published', 0, '2023-04-21 18:31:28'),
(102, 13, 'Test add new categories ', 'yifanli', '', '2023-04-21 14:58:01', '6442eaf9071d98.16697389.jpg', '<p>add New Category<br />Success~ <br />We dont need to add Tags</p>', '', 0, 'draft', 0, '2023-04-21 19:58:01'),
(103, 13, 'Test a WYSIWYG Editor ', 'yifanli', '', '2023-04-21 15:01:27', '6442eb97776147.93558748.jpg', '<h1>SHOW THE KEYNOTES<br />HELLO WORLD</h1>', '', 0, 'draft', 0, '2023-04-21 20:01:27'),
(104, 13, 'Test the Image Upadate and Delete', 'yifanli', '', '2023-04-21 15:02:31', '6442ebd70f8856.09507042.png', '<table dir=\"ltr\" style=\"table-layout: fixed; font-size: 10pt; font-family: arial,sans,sans-serif; width: 0px; border-collapse: collapse; border: none;\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\"><colgroup><col width=\"856\" /></colgroup>\r\n<tbody>\r\n<tr style=\"height: 21px;\">\r\n<td style=\"overflow: hidden; padding: 2px 3px 2px 3px; vertical-align: bottom; background-color: #ffffff; font-family: Calibri; font-size: 12pt; font-weight: bold; color: #000000;\" data-sheets-value=\"{\">Add an image to a page by way of a form upload. (Reminder: A page is defined as a database-backed entity in your CMS.)</td>\r\n</tr>\r\n<tr style=\"height: 21px;\">\r\n<td style=\"overflow: hidden; padding: 2px 3px 2px 3px; vertical-align: bottom; font-family: Calibri; font-size: 12pt; font-weight: normal; color: #000000;\" data-sheets-value=\"{\">- Images can be added when creating and updating pages.</td>\r\n</tr>\r\n<tr style=\"height: 21px;\">\r\n<td style=\"overflow: hidden; padding: 2px 3px 2px 3px; vertical-align: bottom; font-family: Calibri; font-size: 12pt; font-weight: normal; color: #000000;\" data-sheets-value=\"{\">- Images are optional. Pages can still be created and updated without adding an image.</td>\r\n</tr>\r\n<tr style=\"height: 21px;\">\r\n<td style=\"overflow: hidden; padding: 2px 3px 2px 3px; vertical-align: bottom; font-family: Calibri; font-size: 12pt; font-weight: normal; color: #000000;\" data-sheets-value=\"{\">- Uploaded images must be tested for “image-ness” as shown in the course notes.</td>\r\n</tr>\r\n<tr style=\"height: 21px;\">\r\n<td style=\"overflow: hidden; padding: 2px 3px 2px 3px; vertical-align: bottom; font-family: Calibri; font-size: 12pt; font-weight: normal; color: #000000;\" data-sheets-value=\"{\">- Uploads that pass this \"image-ness\" test are moved to an uploads folder and with their filename added to a row in an images table.</td>\r\n</tr>\r\n<tr style=\"height: 21px;\">\r\n<td style=\"overflow: hidden; padding: 2px 3px 2px 3px; vertical-align: bottom; font-family: Calibri; font-size: 12pt; font-weight: normal; color: #000000;\" data-sheets-value=\"{\">- Uploads that do not pass the \"image-ness\" test will be gracefully rejected and will not end up in the file system or database.</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n<p> </p>', '', 0, 'draft', 0, '2023-04-21 20:02:31'),
(105, 15, 'RoadMap To Become Complete Full Stack Blockchain Developer ', 'yifanli', '', '2023-04-21 15:03:21', '64434ec4c94fe0.45992448.png', '<p>“Satoshi Nakamoto’s aim in creating the decentralized Bitcoin ledger — the blockchain — was to allow users to control their own money so that no third party, not even the government, would be able to access or monitor it. But people were still opting for the convenience of centralized services like Coinbase and Bitstamp to hold their coins.”<br />– Nathaniel Popper, Digital Gold: Bitcoin and the Inside Story of the Misfits and Millionaires Trying to Reinvent Money.<br /><br /> There Are Too Many RoadMaps on the internet, But No one claims to be in a systematic way.<br /><br />Here you will get a rough Knowledge of how blockchain and web3.js works and how we learn this technology.<br /><br /> The blockchain is an incorruptible digital ledger of economic transactions that can be programmed to record not just financial transactions but virtually everything of value.”<br /> – Don & Alex Tapscott, authors Blockchain Revolution (2016)<br /><br />Languages to Learn<br /><br /> <strong> Solidity</strong><br /><strong> Javascript</strong><br /><strong> Solidity</strong></p>\r\n<p><br />Solidity is an object-oriented, high-level language for implementing smart contracts. Smart contracts are programs that govern the behavior of accounts within the Ethereum state.<br /><br />Solidity is a curly-bracket language. It is influenced by C++, Python, and JavaScript, and is designed to target the Ethereum Virtual Machine (EVM). You can find more details about which languages Solidity has been inspired by in the language influences section.<br /><br />Solidity is statically typed, supports inheritance, libraries, and complex user-defined types among other features.<br /><br />With Solidity, you can create contracts for uses such as voting, crowdfunding, blind auctions, and multi-signature wallets.<br /><br />When deploying contracts, you should use the latest released version of Solidity. Apart from exceptional cases, only the latest version receives security fixes. Furthermore, breaking changes as well as new features are introduced regularly. We currently use a 0. y.z version number to indicate this fast pace of change.<br /><br /><br /><br /></p>', 'Web3', 0, 'published', 0, '2023-04-21 20:03:21'),
(106, 15, 'Web3 Architecture and Tech Stack : A Beginners Guide', 'yifanli', '', '2023-04-21 22:01:43', '64434e173da302.99136496.png', '<p>If you’re a beginner in the Web3 space, the initial inertia of understanding things might be overwhelming for you.<br /><br />I wrote this blog around three months ago when I started to get a gist of what Web3 is and how everything works coming from a Web2 world. I was bewildered about studying what, how, and whatnot when I started up. Some people say this blockchain is better, and others say another. Some include many products into their architecture, making it so complicated that it looks like a different world altogether. Just Google around looking for the Web3 tech stack — everyone gives you an explanation of what it is in their perspective, and a typical marketing blog is what I always find, I’d say.<br /><br />So when I started writing this blog, my focus was just one thing — let’s transition our knowledge from Web2 to Web3 and know which technologies support what. Once that is figured out, it will become far easier to choose and start our developer journey into it. This blog will generally be over the top, although that’s what you need as a beginner, right?<br /><br />But first, we need to understand what we mean by Web3 — the idea people might change the internet as we see it.<br /><br />What is Web3?<br />One of my friends recently mentioned that Web3 is just another fancy name for the blockchain ecosystem. He’s partially correct, at the same time, wrong on a whole different level.<br /><br />Although the foundation of Web3 is centered around blockchain, when you start developing over it, you’ll realize that blockchain is just a part of it. To draw a comparison, a blockchain in a Web3 app might be similar to how a database might be for a typical web app (Web2) you might develop. As a comparison, we take:<br /><br />Web1 = the internet of information; i.e., The HTML CSS websites you cannot interact with.<br /><br />Web2 = the internet of interactions; i.e., Modern platforms like Facebook, Twitter, etc., that allow you to be connected end to end with others.<br /><br />Web3 = the new internet of value, i.e., the internet where centralization of information is eliminated.<br /><br />So if we try to define Web3, we can say that it is the concept that aids the development of decentralized applications(dApps). Yes — the same decentralized internet we heard from Richard in Silicon Valley!<br /><br />However, we do not have a compression engine platform like what he had built to build this. Instead, we have a range of protocols and platforms that enable this development system. These protocols are a set of rules that govern how your application works, while multiple platforms facilitate the creation of your application.<br /><br />Okay, fine, but why do we need dApps in the first place?<br /><br />The most significant benefit of creating a dApp is Ownership and Identity. Ownership of data, content, literally everything with your self-identity — a concept that got blurred with the coming of age of these top institutions like Google and Facebook.<br /><br />Another significant benefits people talk about is Composability, one of the central pillars of Web3.<br /><br />Every single software company out there right now is focused on collecting user data, which is their single biggest asset and differentiates them from one another. Not the product but the data they hold. Companies competing with each other, with similar UI/UX and slightly different business logic, are valuable independently because of the “data” they have aggregated.<br /><br />This is what Web3 will disrupt, making every application composable by sharing & consuming their data between different applications. Think about a metaverse where you can buy things from Meta and use them in the Microsoft ecosystem. This is the most exciting and interesting aspect of Web3. It is making the web genuinely composable!<br /><br />But that’s not all; with the high amount of trust and reliability these applications bring in, the possibilities are endless; we haven’t even imagined what the future might look like with dApps being omnipresent. I feel Web3 might start the same revolution that open-source brought into the developer ecosystem.<br /><br />Understanding the Web3 Architecture<br />Now that we have defined Web3, we need to understand how these protocols and platforms work together to help us build these dApps.<br /><br />When we imagine a general web app, we envision an architecture constituting the follows:<br /><br />Although I’ve not depicted things like caches, queues, etc., a general over-the-top architecture looks like this.<br /><br />For a Web3 app, The frontend will remain the same, but some exciting changes start to happen on the backend side of things. Let’s see how that works:<br /><br />If we compare Web2 and Web3, the Blockchain Node is doing the heavy lifting and managing our data, which is decentralized into a network of blockchains. Since it is expensive to store directly on the chain, we have some off-chain File Storage and a P2P Database facilitating data storage. Finally, to build a secure layer, we have a Wallet or a Private Key-based Authentication to verify the individual’s identity.<br /><br />Please note that this is just an over-the-top depiction of the architecture. In reality, we have much more complex applications and need architectural parameters from both Web2 and Web3.<br /><br />The Web3 Tech Stack<br />So far, we have learned what a Web3 architecture generally looks like. Now, let’s deep dive into each of these components to better understand the tech stack.<br /><br />So let’s start from the bottom:<br /><br />Blockchain<br />If I talk about selecting a blockchain to build upon, it is one of the most challenging tasks one needs to decide on. There are many factors at play here; decentralization, transaction throughput, gas fees, ecosystem/interoperability, and many more, and we won’t be debating them all as it’ll never end. It is like choosing your programming language. Every single one works; a few are better in specific cases and others for other use cases.<br /><br />Although, as a beginner, I might recommend starting with Ethereum Virtual Machine (EVM) with Solidity. This is because of the massively present developer community around it.<br /><br />EVM acts as the virtual machine, the bedrock of Ethereum’s entire operating structure. Ethereum brought in the concept of smart contracts and is the most used blockchain out there. Solidity is the language used to make smart contracts. It is very similar to JavaScript in syntax, which might be helpful if you’re a Web2 developer. Under the hood, Solidity is compiled into low-level instructions called opcodes for the EVM to interpret.<br /><br />When you’ve learned this, it will be easier to understand the concepts of other technologies in the ecosystem, like:<br /><br />Solana: Another blockchain like Ethereum focuses on providing faster transaction times and cheaper fees. The smart contracts can be written in Rust, C, and C++.<br />Layer 2’s (L2): L2 refers to a secondary protocol built over an existing blockchain system, generally Ethereum, borrowing the main chain’s consensus security. There are many options here, but the top ones remain Polygon, Arbitrium, StarkEx & StarkNet, Optimism, etc.<br />Application Chains: Although you won’t require this as a newbie, I feel this is the most exciting option out there. You can build your own blockchain/consensus system with platforms like Tendermint/Cosmos, Polkadot, etc.<br />Blockchain Node<br />For deploying an application in production, you need a server. A blockchain node does this job for blockchains. Blockchain nodes are network stakeholders or devices running the “blockchain software”. Hence, they are authorized to keep track of the distributed ledger, serving as communication hubs for the network tasks. A P2P (Peer to Peer) protocol allows nodes to communicate within the network and transfer information about transactions and new blocks.<br /><br />You can self-run blockchain nodes or get a Node service provider like Quicknode, Moralis, Infura, etc., that offer APIs to create automated flows. For self-hosting, AWS Cloud and Azure have images for you to spin up for the more popular chains. Otherwise, most chains make it easy for you to run your nodes/validators. The only thing that can be a hassle is to ensure uptime and maintenance, which depends on your network.<br /><br />P2P Database<br />The first question that anybody would ask here is: Why do we need a database when we’re using blockchain in the first place? Additionally, will it not hinder our idea of a dApp?<br /><br />As a simple answer to that, storing data on a blockchain is slow and expensive. We need an additional database to access data off-chain, ensuring that we’re not accessing the chain again and again. To have that decentralization part of it, we use peer-to-peer or P2P databases that store and host all of the data in streams to eliminate centralized database servers, blockchains, or local storage. Think about how your torrents get downloaded!<br /><br />The Ceramic network is the most common decentralized database provider out there, as I know of personally.<br /><br />Decentralized File Storage<br />Like every other application, we need a dedicated file storage system (similar to Amazon S3 for Web2 applications). Databases essentially are tabular data, while file storage is that folder-based data you need to store your large media files. IPFS is the most common P2P file system protocol with excellent community support. Arweave is another option focused on keeping data permanently. You can use platforms like Filecoin, Skynet, Storj, and 0Chain to host these file storage systems.<br /><br />Authentication in Web3<br />In my honest opinion, authentication is one of the most essential aspects of Web3. Without logging in users into the smart contract, one cannot access their wallets and make the most straightforward transactions. You should note that signing a transaction enables every interaction with a blockchain.<br /><br />Looking at traditional login methods in the Web2 world, we have a simple form structure where the user details are stored in a database and cross-checked for verification. Additionally, services like Google & Facebook offer OAuth, enabling access to some basic information to the app directly, making the process seamless. Although this approach is convenient, this cannot be now used in a dApp since you need a private key to sign a transaction.<br /><br />In Web3, we do not have the user’s data, but actually, we have wallets (which are essentially a wrapper around a private key), wherein cryptographic signatures are used to prove ownership of those blockchain addresses. It is essential to know how to access and interact with a user’s address and private key as a Web3 developer.<br /><br />The fascinating aspect of owning a blockchain wallet is that once a user loses their private key to the wallet address, no one can recover it for them. This is useful and scary at the same time. There are plenty of stories of crypto millionaires who have lost it all by storing their private keys in a lost hard drive.<br /><br />Many projects have tried different ways to go around this and help users recover that key, the most common of them being Seed Phrases. The most famous wallet out there, MetaMask, uses the concept of 12 word Mnemonic Phrases, which goes through a BIP39 Algorithm to generate the array of unique wallet addresses and private keys for you stored in your MetaMask account. But then again, remembering 12 randomly generated words in proper order for each wallet account group a user owns is difficult.<br /><br />While trying to figure out a solution to a lousy UX like this, I encountered Web3Auth, and interestingly enough, I ended up joining them within the next two months. Web3Auth is one of the most popular solutions for new users, bridging the Web2 and Web3 worlds. A simple auth infrastructure that gives those OAuth capabilities to Web3 applications in a self-custodial way for the user. By self custodial, we mean that the user has custody of the key and not the application or Web3Auth. This is done through a unique MPC architecture, and hence the private key is never stored in a single server/ node or method with complete access. Read more about the infrastructure here.<br /><br />I think it can be a massive thing for a project onboarding process. I would recommend checking it out.<br /><br />Implementing the Frontend<br />Many developers might not know, but the frontend technologies for Web3 and Web2 are the same. The only difference is where you need to reimagine the UX of the application because the authentication, processing in the blockchain, and general flow of the application are slightly different from Web2 applications.<br /><br />I would recommend going on with React & Next.js since most developers are currently using this in the Web3 world. I might be biased, but almost every other project presently features a React integration. If you’re using Webpack 5, make sure that there are certain polyfills you need to take care of while developing an application; the rest of everything is generally the same.<br /><br />For the client-side backend, things get a bit different. Here is where you need to understand how to interact with the blockchain you’ve created. Web3 Interaction libraries help you with that, but you need to know how they work and interact with the blockchain properly.<br /><br />Blockchain Interaction (Web3) Libraries and development tools:<br />Web3 libraries allow you to interact with nodes using HTTP, IPC, or WebSocket. These libraries help developers write intuitive, one-line methods to initialize the JSON RPC requests (under the hood) that interact with whichever chain you’ve chosen.<br /><br />On Ethereum, some of the Web3 Libraries are Web3.js, Ethers.js, and Light.js. On top of that, many chains have developer tools that provide features that allow for much faster iteration than public testnets. Tools like Ganache, Truffle, Hardhat, and Brownie are examples here.<br /><br />For starting up with Ethereum development, I’d highly recommend checking out the Remix IDE — it is the best place for a beginner to learn Solidity and Ethereum concepts. You can easily directly interact and test out your code without setting up all these libraries.<br /><br />Wrapping up<br />In all, I believe Web3 comes with an exciting opportunity for new developers out there to try out something different and break away from the traditional aspects of software development. At the same time, drawing this comparison and understanding where to start is extremely necessary for anyone looking to build decentralized applications since there will always be a combination of both in the world.<br /><br />Web3 is here to stay, but this does not mean that the concepts of Web2 are dead. Learning the new tech stack while understanding its key usage and characteristics is the only way a developer can pioneer this new industry.<br /><br />I hope this blog might have helped you understand some key aspects of how a Web3 app is put together. Please do let me know if I’ve missed or messed something up because I’m still a learner trying out different stuff in this new world :)<br /><br />Cheers!</p>', 'Guides', 0, 'published', 0, '2023-04-22 03:01:43');
INSERT INTO `posts` (`post_id`, `post_category_id`, `post_title`, `post_author`, `post_user`, `post_date`, `post_image`, `post_content`, `post_tags`, `post_comment_count`, `post_status`, `post_views_count`, `update_date`) VALUES
(107, 3, 'Why You Shouldn’t Become A Web3 Developer & What To Do Instead', 'yifanli', '', '2023-04-21 22:14:02', '644350fac14589.06283744.jpg', '<p>Still have no idea what you want to do with your life? Someone has probably told you to “learn how to code.”<br /><br />As web3 has exploded in the last few years, this advice is slowly changing. Now, people are pushing you to become a web3 developer.<br /><br />This is about as helpful as all the other vague, generic advice out there. Or… maybe it’s worse.<br /><br />We’re pushing people with no experience to create dapps that could manage millions or billions of dollars in assets. Does that really sound like a good idea?<br /><br />Security risks aside, the odds are not in your favor anyway.<br /><br />It’s not impossible. But it’s highly unlikely. Could you go from zero to hero and build the next big dapp like Hayden Adams did with Uniswap? Absolutely. And if your heart is set on that, don’t let me get in the way.<br /><br />But not everyone has to go this route. In fact, most shouldn’t. Especially if you don’t have any programming experience.<br /><br />But I have good news. You can still make important contributions in web3. How? By becoming a technical writer.<br /><br />This is an amazing option for you if:<br /><br />You’re a technically-minded person but don’t have a lot of programming experience<br />You’ve been trying to become a web3 developer but haven’t landed a job<br />This is actually the perfect option for a lot of people. So many hours have been wasted watching programming tutorials. “Learning how to code.” Only to fail at finding that first job.<br /><br />If that’s you, this is a much easier option that still makes use of the technical things you learned along the way.<br /><br />In this article, we’re going to cover:<br /><br />The benefits of becoming a technical writer instead of a developer<br />My journey from being a washed up YouTuber with no experience to working as a technical writer at Edge and Node in 3 years<br />Actionable advice on becoming a technical writer in web3<br />The Road Less Traveled<br />Technical writing doesn’t have the hype of software development. That’s why most people don’t do it. People see that senior developer salary and start foaming at the mouth.<br /><br />But the truth is, becoming a software engineer is hard. Becoming a technical writer isn’t easy. But it’s easier than becoming a developer. And for many of us, it comes more naturally.<br /><br />Think about it. You’re already a writer. And if you’ve spent any time learning to code, the rest is actually pretty do-able.<br /><br />There’s a lot of demand for developers. But if you’ve ever tried finding a job, you know that most of that demand is for senior devs. You’re just one of many jr devs trying to find that first job. Literally competing with anyone that has internet access.<br /><br />As a technical writer, you have a lot less competition. The hype just isn’t there.<br /><br />It’s also a lot less stressful. It took me a long time to push my first Solidity code to my company’s repo. There’s something about knowing that if I make a mistake, it can ruin my company’s reputation, and cost users millions of dollars.<br /><br />That’s the harsh truth about web3 development.<br /><br />A technical writer’s entire job is getting it right. That’s it. And it’s a pretty simple process that looks something like this:<br /><br />You get a topic to write about<br />Research everything you need to know about it<br />Organize the info in a way that makes sense<br />Simplify it as much as possible for readers<br />That’s pretty much it. Basically doing the Feynman technique every day. And we’ve all done this at least once. Your eighth grade essay followed a similar process. It just wasn’t about tech.<br /><br />Technical writing just a better option for your first web3 job. You’re more likely to actually succeed. And guess what? If you get your first technical writing job, it’s really easy to transition into software development if that’s what you really want.<br /><br />An Unlikely Beginning<br />My journey is a little unusual. As a kid, I made a sad but true realization about the adults in my life. Every single one of them hated their day job. Not one exception.<br /><br />As a nine-year-old, my soul focus in life became escaping the 9–5. I didn’t need to feel the pain to know it was bad. I saw it on their faces.<br /><br />I started watching YouTube videos in 2008. It dawned on me that anyone could become a YouTuber. Everything changed that day. This would become my life’s mission for nearly a decade.<br /><br />I’d struggled for years. Facing constant failure. In 2015, I had my big hit. My horror narration channel started blowing up. Within a year, I was full-time. I was living the dream.<br /><br />But then one day, the fire nation attacked.<br /><br />In late 2017, a scandal known as the YouTube Apocalypse shook the platform. Entire livelihoods were destroyed. Mine included.<br /><br />It was horrible. All the sacrifices I had made. I alienated every person from my life that didn’t make videos. Skipped social events. Quit the football and wrestling teams, where I had budding potential. All of it was for nothing.<br /><br />This, coupled with the fact that my college degrees are in communications and sociology, and you can understand how bleak things were looking.<br /><br />The Great Awakening<br />My dream of becoming a creator was crushed into a million pieces. I wallowed in self-pity for some time. Not sure what to do with my life. Whatever I decided, would mean starting at the bottom of some new industry I knew nothing about.<br /><br />But decentralized tech gave me hope. I went down the web3 rabbit-hole. Reading articles for hours. That’s when I made the decision to dedicate my life to fighting for this movement.<br /><br />I wrote my first line of code in 2019. Learned front end development and began freelancing. My goal was to become a web3 developer.<br /><br />I didn’t completely fail. But I didn’t succeed either. Occasional odd freelance jobs are the ultimate lukewarm success of the developer world.<br /><br />The one saving grace of freelancing is that it put food on the table. Not a lot. I basically lived in poverty for a year. But the important part is that I had complete scheduling freedom.<br /><br />This is one of the most important aspects to “making it.” I can confidently say that this never would’ve happened had I been spending 50 hours a week pushing pencils or flipping burgers. In that regard, I’m extremely lucky.<br /><br />I know most people reading this don’t have that privilege. My best advice is:<br /><br />Start anyway — a few hours before work can go a long way if you stick with it.<br />Plan to quit — save up and take time off work. If we can waste 4+ years at a college that does nothing but burden us with debt, we should be able to prioritize learning skills with actual demand. Take out a loan if you have to.<br />Build a network — opportunities will present themselves by just being active. This can be on tech Twitter, a DAO, Medium, etc.<br />Your first job in the industry will be the hardest. But if you get that one, you’ll be just fine.<br /><br />A Path Forward<br />Nader Dabit had one of the only channels teaching web3 development. I watched it regularly. And one day, he made a tutorial on launching a DAO. In the video, he launched Developer DAO.<br /><br />It was going to be a DAO of web3 developers. It would focus on public goods, educational content, and pushing the space forward. 5 days later, I claimed my membership.<br /><br />My D_D token claim tx (on a now compromised wallet)<br /><br />https://etherscan.io/tx/0xdb6d96e3b714c780232b97b21150551dda50eaf97a64a3778fbb1efaf68c02d8<br /><br />For the first time, I felt like I had a homebase. A community of builders who shared this vision of decentralization. And were willing to put in the work to make it happen.<br /><br />This jump started my career. I had the opportunity to make real contributions to a project. And more importantly, a community of people willing to help. D_D gave me the guidance I so desperately needed.<br /><br />In addition to having the DAO, I also used the following to put myself ahead:<br /><br />Built a network on Twitter<br />Regularly wrote blog posts<br />Constantly polished my portfolio & resume<br />Continued applying despite being demoralized<br />Contributed to DAOs & listed them on my resume<br />It wasn’t long before I landed my developer job at LiveArtX. Your first job in the industry will be the hardest. That was absolutely the case for me.<br /><br />You’ll be feeling imposter syndrome every single day. Have confidence in yourself that you can get it done.<br /><br />I jumped at every opportunity to help that I could. One of those opportunities was writing the documentation. It seemed trivial at the time but this was a pivotal moment for me. I was a standard junior developer at best. But I was a decent technical writer.<br /><br />As time went on, I saw the need for good technical writing. I stopped thinking of myself as a developer and instead as a technical writer. The mental shift is important.<br /><br />Most jobs list technical writing under a different category than developers. And by framing yourself as a technical writer, potential employers take you more seriously.<br /><br />I wasn’t actively looking for work. But Nader had posted a tweet that Edge & Node was hiring. I yolo’d it and applied.<br /><br />Edge & Node is the company behind The Graph. One of the most important protocols in web3. And to my absolute amazement, I got through all the interviews. And got a job offer!<br /><br />In retrospect, I could’ve saved myself a lot of time had I opted to become a technical writer from the start.<br /><br />What I would do if I was starting from 0<br />If you’re interested in becoming a technical writer, these are things you should really consider doing.<br /><br />Commit Yourself<br />The first decision you need to make is to stick with it. No matter what.<br /><br />It’s going to be hard. You’ll have to make sacrifices. But it will be worth it. You’ll still struggle to get your first job. It’s easier than getting your first developer job. But it’s still not easy.<br /><br />Being 100% mentally committed seperates those who do from those who don’t.<br /><br />Spend Your Energy Wisely<br />You’re probably working a full-time job or in college. Those things will compete for your energy. Energy that can be used to better your skills.<br /><br />If you can’t take time off work or go part time, use your best energy for learning. You know when you’re most productive. For most of us, it’s in the mornings. Start waking up early and learn technical writing before you go to work.<br /><br />This part won’t be easy. But you can find a routine that works for you. Then, you just have to stick with it.<br /><br />Constantly Publish<br />There’s something exhilarating about publishing content. Every single thing you learn should be turned into something you can publish. An article, a tweet, a YouTube video, etc.<br /><br />By forcing yourself to write about these topics in public, you’ll actually learn them. Honestly, I’m a big fan of publishing short articles here on Medium. It’s free, easy, and you can get your article ranked on google search.<br /><br />You’ll also start building a reputation for yourself. By regularly showing up, you can prove to potential employers that you take this seriously.<br /><br />Actions speak louder than words. And consistent actions speak the loudest.<br /><br />Helps DAOs for Free<br />Every single DAO is desperate for help. As a technical writer, you have a competitive edge at making these contributions. You can be a bit of a generalist and help out in many places.<br /><br />What worked for me was making 3 solid contributions per DAO. That way, you can concisely list them on your résumé. It looks really nice. Here’s my resume if you want to copy.<br /><br />Most projects have their documentation open source and available on GitHub. It’s public. It’s right there. Literally anyone can contribute to it. There’s absolutely nothing stopping you. You can build your experience AND help a project you like.<br /><br />Network on Twitter<br />Tech Twitter is actually kind of great. You can connect with lots of great people and start building a network.<br /><br />Not only can you find jobs there, but you can also make friends. Get that sense of community. Shoot me a tweet if you’re new to Twitter :)<br /><br />If you have the ability to purchase a D_D token, I encourage you to do so. But that will cost Eth. Tech Twitter is free.<br /><br />Master Your Origin Story<br />I told you about my background as a YouTuber in this article. That’s my origin story. And I know for a fact that it played a big role in getting me where I am.<br /><br />You probably have a great narrative like that already. You just haven’t found it yet. If you keep an active journal, read back on what you’ve written. There’s likely an answer there.<br /><br />And if you don’t have an active journal, get one. Writing about your thoughts, life, experiences, etc. is incredibly important. Not just for becoming a technical writer, but for becoming a well-rounded human being.<br /><br />Keep Interviewing Despite Dying Inside<br />The interview process is rough. You’ll be ignored. You’ll get ghosted. You’ll get to the final round of the interview and suddenly they’re not interested anymore. It happens.<br /><br />I won’t lie to you, there were a few times I considered quitting. Just understand that the interview process will be miserable.<br /><br />Here are 2 things you can do that will make it less miserable:<br /><br />Only apply for a set number of jobs a day (10 a day).<br />Be selective about where you’re applying (only jobs you have a realistic chance of getting, and for projects you actually like).<br />If you can do those 2 things, the interview process will be much less stressful. And hopefully, you won’t get burnt out and quit before you get your first job.<br /><br />Final Thoughts<br />It took me years to get my first developer position. All I wanted to do was help build web3. Little did I know, technical writing is one of the most important aspects to making the decentralized future happen.<br /><br />Ditching “real life” jobs can be scary. I remember initially telling my friends & family that I was going to “learn to code.” No one understood it or cared. They thought it was some kind of Ponzi scheme. A few said I couldn’t do it and that I should be ‘realistic.’<br /><br />Unless you already have industry connections, your only support network will be internet friends. This is why it’s so important to join a DAO & make friends on tech Twitter. If you don’t have that encouragement, you might start doubting yourself.<br /><br />This might be the greatest struggle of your life. But it will be 100% worth it in the end.<br /><br />Don’t ever forget:<br /><br />You can do it. I believe in you. You got this.</p>', '', 0, 'published', 0, '2023-04-22 03:14:02'),
(108, 1, 'Smart Contract Hacking course: How DeFi lessons changed everything', 'yifanli', '', '2023-04-21 22:15:49', '644351655570c9.38153536.jpg', '<p>It felt like the knowledge I had before I started the course and the knowledge after finishing Part 1 had taken me to a next level.<br /><br />And while it did, once I reached that level and started to gain experience again by starting the Part 2 with the first DEFI Crash Course lesson I noticed the huuuge mountain that is ahead of me and how complicated is going to be to reach the summit.<br /><br />To be more specific, I realised that being aware and knowing the theory of attack vectors and even their PoCs was barely a short hill.<br /><br />I realized that the more I learned about web3 security the more I noticed I know nothing.<br /><br />Alright, but guys, this is not bad. This means I have so many things to learn.<br /><br />And lucky for me, I have a super well-structured course which besides teaching me Solidity, Hardhat, Ether.js and attack vectors among others, it has two lessons to dive deep into some of the most important DeFi protocols.<br /><br />Cool, cool cool, but what is it you have in the course dude! Is it worth it? Why are you so annoying lately about DeFi?<br />Wow, ok, zero patience for an introduction I see…<br /><br />I started with the first lesson where Uniswap was being explained, we had a walk-through some of the main functions used in the main Smart Contracts of the protocol. And then, as usual in every lesson I had to deal with the exercises proposed to practice and learn what was explained.<br /><br />And you know what!? I felt overwhelmed. There was no chance that with the knowledge I had so far I would manage to understand exactly what I had to do.<br /><br />But again, the good thing is that in the course it was pointed out:<br /><br />what is the core of the protocol<br />which are the main functionalities<br />how are the main smart contracts connected with each other<br />So, I decided to use that knowledge and I went to Uniswap docs and codebase in order to read what is being done inside.<br /><br />what next?<br /><br />My next steps where to make a research on what is available already about Uniswap and grab from many different places the right information that would help me join the dots.<br /><br />And while I had watched some videos about Liquidity pools and Uniswap before, reading what was inside the code helped me understand which are the main components and how the protocol works.<br /><br />Long story short. TL:DR<br />Using the information provided in the lesson about Uniswap, a research from my side and the official docs I was able to understand its functionalities.<br /><br />To prove myself I understand it, I decided to create the article “Uniswap V2 — Complete Guide to understand the DeFi Protocol from its code”.<br /><br />So, why are you saying it changed everything?<br />The interesting thing is that at the same time I was going through, I watched a video on Youtube with some inspiring advices for solo auditors.<br /><br />In this video, it is proposed to approach new protocols and offer them value without asking anything on return.<br /><br /><br />And the deal here is that if you are able to bring them value, there are chances that you start a connection which can lead to some work in the future or sometimes even sooner than expected.<br /><br />And guess what! Reality stroke again.<br /><br />How am I going to bring value by analysing a new protocol if I don’t know the main ones?<br /><br />This is super important because it made me realise three things:<br /><br />I need to start studying as many and as much of the main protocols as possible.<br />If I gain that knowledge, my life will be so much easier when auditing smart contracts in Bug Bounty contests. Because most of those projects are forking main protocols.<br />At some point I might be able to provide value to new protocols and start building my path as a solo auditor.<br />I think it is very important to acknowledge this in order to move forward faster as an auditor, so hopefully you liked it and you found it useful.<br /><br />This is barely the beginning of Part 2 of Smart Contract Hacking course, so make sure you subscribe and follow me on Twitter https://twitter.com/TheBlockChainer to get more updates.</p>', 'DeFi', 0, 'published', 0, '2023-04-22 03:15:49'),
(109, 1, 'The Cell Model — A Generalized UTXO Model', 'yifanli', '', '2023-04-21 22:18:51', '6443521b8c6e34.97704504.png', '<p>An interesting caveat of the Cell model is that it’s focused on state (on-chain data)<br /><br />Cells contain arbitrary data, which could be simple, such as a token amount and an owner, or more complex, such as code specifying verification conditions for a token transfer.<br /><br />CKB’s virtual machine (CKB VM) executes scripts associated with cells to ensure the integrity of transactions.<br /><br />In addition to storing data of their own, cells can reference data in other cells, allowing for assets and the logic governing them to be separated<br /><br /><br />This is in contrast to Account-based blockchains, where on-chain data is an internal property of a smart contract & is accessed through smart contract interfaces.<br /><br />On CKB, cells are independent state objects that are owned by users & can be referenced and passed around directly<br /><br />Consequently, Account Abstraction comes by default on CKB, providing a superior experience for users & flexibility for developers<br /><br />The Cell model is abstract, where cells are simple storage without any internal structure. Their layout is completely left to developers to customize<br /><br />Moreover, the Cell model perfectly complements Nervos’ modular design, allowing the capabilities of CKB to evolve without disruptive hard forks<br /><br />Almost all algorithms, cryptographic primitives, and data structures can be implemented on CKB as scripts stored within cells.<br /><br /><br />This means that cryptographic primitives aren’t hardcoded or baked into the virtual machine like in all other blockchains, making CKB the most flexible and future-proof Layer 1 in the blockchain industry.<br /><br /><br />In other words, dApp developers on CKB can use all crypto primitives, including Schnorr signatures, BLS signatures, zkSNARKs, and zkSTARKs, to build their dApps without affecting anything else running on-chain.<br /><br />To see this in practice we can take the case of the threat of quantum computers breaking commonly used cryptography.<br /><br />CKB is the only chain that can allow users to move their assets to be secured by quantum-resistant cryptography without requiring a hard fork, permissionlessly.<br /><br />This is due to how the Cell model works. All assets, including user-defined tokens & NFTs, are first-class citizens on-chain<br /><br />Assets aren’t subject to overriding control by smart contracts. They’re secured by conditions specified by their owners.<br /><br /><br />Token contracts only store a token’s operating logic, such as “issuance cap=1,000,000” or “inflation rate=50 tokens per block”<br /><br />A user’s asset balance “Alice owns 100 tokens” is contained in a cell controlled by Alice<br /><br />This significantly increases security of assets held on CKB<br /><br />In contrast, if a hacker manages to break a smart contract controlling an ERC-20 token (code is law), they can steal/alter token owners’ balances<br /><br />On CKB, this isn’t possible. Assets are not controlled by smart contracts but owned by users directly.<br /><br />In summary:<br /><br />→ On CKB, a cell is a “first-class citizen,” meaning user assets are solely the property of a user, not subject to loss via a smart contract<br /><br />→ A cell is simply storage without any internal structure, with its layout completely left to developers.</p>', 'Nervos', 0, 'published', 0, '2023-04-22 03:18:51');
INSERT INTO `posts` (`post_id`, `post_category_id`, `post_title`, `post_author`, `post_user`, `post_date`, `post_image`, `post_content`, `post_tags`, `post_comment_count`, `post_status`, `post_views_count`, `update_date`) VALUES
(110, 1, 'RISC-V & Its Benefits to Blockchain', 'yifanli', '', '2023-04-21 22:23:25', '6443532d708bf7.91329116.png', '<p id=\"de17\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">You’ve heard us boast about CKB’s RISC-V-based virtual machine, but many of you may still not know what RISC-V is, and what benefits it can bring to blockchain systems.</p>\r\n<p id=\"d171\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">Let’s break it down! 👇</p>\r\n<p id=\"7c07\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">RISC-V is a type of computer processor architecture, which means it’s the way that the “brain” of a computer is designed to work.</p>\r\n<p id=\"670a\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">In a very simplified sense, a processor takes in information, performs calculations or other tasks on that information, and then outputs the result.</p>\r\n<figure class=\"wk wl wm wn sm uo jw jx paragraph-image\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 56px auto 0px; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Oxygen, Ubuntu, Cantarell, \'Open Sans\', \'Helvetica Neue\', sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\">\r\n<div class=\"up uq dg ur bf us\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; width: 680px; position: relative; cursor: zoom-in; z-index: auto; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s;\" tabindex=\"0\" role=\"button\">\r\n<div class=\"jw jx afi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1200px;\"><picture style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit;\"><source style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit;\" type=\"image/webp\" /><source style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit;\" data-testid=\"og\" /><img class=\"bf ut uu c\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; vertical-align: middle; background-color: #ffffff; width: 680px; max-width: 100%; height: auto;\" role=\"presentation\" src=\"https://miro.medium.com/v2/resize:fit:1400/1*bPINkk4dfpNahZ2STcYnCg.png\" alt=\"\" width=\"700\" height=\"391\" /></picture></div>\r\n</div>\r\n</figure>\r\n<p id=\"e34d\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">RISC-V is an open-source architecture, meaning anyone can use and modify it without having to pay a fee or get permission from a particular company or organization.</p>\r\n<p id=\"b6c7\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">This is different from many other processor architectures, which are proprietary and owned by specific companies.</p>\r\n<p id=\"e64c\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">The “RISC” in RISC-V stands for “Reduced Instruction Set Computing.”</p>\r\n<p id=\"d805\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">The instructions the processor uses are simplified & streamlined, which means increased speed & efficiency.</p>\r\n<p id=\"d512\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">“V” refers to the number of generations (5) of RISC architecture developed at UC Berkeley since 1981.</p>\r\n<p id=\"6fe9\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">RISC-V is open-source, meaning it can be customized to meet specific needs or use cases.</p>\r\n<p id=\"b4b5\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">This means that developers can tailor the architecture to optimize performance, power efficiency, or other factors depending on the intended application.</p>\r\n<p id=\"66ff\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">The scalability of RISC-V is another advantage. It can be used across a wide range of devices, from small embedded systems to large-scale supercomputers. This makes it a versatile option for developers working on a variety of projects.</p>\r\n<figure class=\"wk wl wm wn sm uo jw jx paragraph-image\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 56px auto 0px; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Oxygen, Ubuntu, Cantarell, \'Open Sans\', \'Helvetica Neue\', sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\">\r\n<div class=\"up uq dg ur bf us\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; width: 680px; position: relative; cursor: zoom-in; z-index: auto; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s;\" tabindex=\"0\" role=\"button\">\r\n<div class=\"jw jx afi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1200px;\"><picture style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit;\"><source style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit;\" type=\"image/webp\" /><source style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit;\" data-testid=\"og\" /><img class=\"bf ut uu c\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; vertical-align: middle; background-color: #ffffff; width: 680px; max-width: 100%; height: auto;\" role=\"presentation\" src=\"https://miro.medium.com/v2/resize:fit:1400/1*IekK5c7BDhXm1yHTsSHOfg.png\" alt=\"\" width=\"700\" height=\"391\" /></picture></div>\r\n</div>\r\n</figure>\r\n<p id=\"dd74\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">On this point, Google recently announced RISC-V support for Android, the most popular mobile operating system in the world.</p>\r\n<p id=\"a6b8\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\"><a class=\"ae wi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; color: inherit; text-decoration: underline; -webkit-tap-highlight-color: transparent;\" href=\"https://arstechnica.com/gadgets/2023/01/google-announces-official-android-support-for-risc-v/\" target=\"_blank\" rel=\"noopener ugc nofollow\">https://arstechnica.com/gadgets/2023/01/google-announces-official-android-support-for-risc-v/</a></p>\r\n<p id=\"a6f0\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">For the Nervos Network, CKB-VM’s flexibility & scalability are crucial. We want to ensure that developers have the tools to innovate & build the decentralized applications of tomorrow.</p>\r\n<p id=\"84a1\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">CKB-VM is a high-performance VM which can evolve to serve developers’ and users’ requirements.</p>\r\n<figure class=\"wk wl wm wn sm uo jw jx paragraph-image\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 56px auto 0px; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Oxygen, Ubuntu, Cantarell, \'Open Sans\', \'Helvetica Neue\', sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\">\r\n<div class=\"up uq dg ur bf us\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; width: 680px; position: relative; cursor: zoom-in; z-index: auto; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s;\" tabindex=\"0\" role=\"button\">\r\n<div class=\"jw jx afi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1200px;\"><picture style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit;\"><source style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit;\" type=\"image/webp\" /><source style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit;\" data-testid=\"og\" /><img class=\"bf ut uu c\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; vertical-align: middle; background-color: #ffffff; width: 680px; max-width: 100%; height: auto;\" role=\"presentation\" src=\"https://miro.medium.com/v2/resize:fit:1400/1*A-K-nglZzRGIrA2umWIPDg.png\" alt=\"\" width=\"700\" height=\"391\" /></picture></div>\r\n</div>\r\n</figure>\r\n<p id=\"aebb\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">RISC-V makes CKB-VM especially powerful for Layer 2 & cross-chain applications.</p>\r\n<p id=\"604b\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">It can permissionlessly support any cryptographic primitive (for transaction authorization or zk) & even other VMs.</p>\r\n<p id=\"8377\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">This is a distributed system built to serve the needs of future users & developers.</p>\r\n<p id=\"d9c8\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">Beyond the flexibility, RISC-V future-proofs CKB in an unexpected way.</p>\r\n<p id=\"8eb8\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">Hardware options such as <a class=\"ae wi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; color: inherit; text-decoration: underline; -webkit-tap-highlight-color: transparent;\" href=\"https://liliputing.com/pine64-is-working-on-a-risc-v-single-board-computer/\" target=\"_blank\" rel=\"noopener ugc nofollow\">https://liliputing.com/pine64-is-working-on-a-risc-v-single-board-computer/</a> will continue to grow.</p>\r\n<p id=\"e38d\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">As computational demand on CKB rises, the community could consider using actual RISC-V chips to deliver unparalleled performance.</p>\r\n<p id=\"c76d\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">Running EVM or WASM hardware is much less feasible because these are higher-level VMs, designed to run on an operating system and subject to change.</p>\r\n<p id=\"069d\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">CKB already measures computation in actual RISC-V processor clock cycles, it is architected in a way that can be run on hardware.</p>\r\n<p id=\"1787\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">Overall, we’re excited about the potential of RISC-V and the CKB-VM to power the next generation of decentralized applications.</p>\r\n<p id=\"8720\" class=\"pw-post-body-paragraph uv uw to lp b ux uy ff uz va vb fj vc vd ve vf vg vh vi vj vk vl vm vn vo vp ko bi\" style=\"--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-sizing: inherit; margin: 2em 0px -0.46em; font-weight: 400; color: #292929; word-break: break-word; font-family: source-serif-pro, Georgia, Cambria, \'Times New Roman\', Times, serif; font-style: normal; line-height: 32px; letter-spacing: -0.003em; font-size: medium; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-selectable-paragraph=\"\">We believe that by using open-source and flexible technologies, we can build a more resilient and inclusive blockchain ecosystem. 🚀</p>\r\n<p> </p>', 'Nervos', 0, 'published', 0, '2023-04-22 03:23:25');
INSERT INTO `posts` (`post_id`, `post_category_id`, `post_title`, `post_author`, `post_user`, `post_date`, `post_image`, `post_content`, `post_tags`, `post_comment_count`, `post_status`, `post_views_count`, `update_date`) VALUES
(111, 4, 'Why have I decided to pay for a Smart Contract Hacking course?', 'yifanli', '', '2023-04-21 22:27:17', '64435415d97c32.69740193.jpg', '<p><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" style=\"border: 0px solid black; box-sizing: border-box; color: #0f1419; display: inline; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-weight: 400; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; min-width: 0px; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\">3..2..1.. It’s finally happening</span><img class=\"r-4qtqp9 r-dflpy8 r-sjv1od r-zw8f10 r-10akycc r-h9hxbl\" style=\"display: inline-block; height: 1.2em; margin-left: 0.075em; margin-right: 0.075em; vertical-align: -20%; width: 1.2em; color: #0f1419; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" draggable=\"false\" src=\"https://abs-0.twimg.com/emoji/v2/svg/2757.svg\" alt=\"❗️\" /><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" style=\"border: 0px solid black; box-sizing: border-box; color: #0f1419; display: inline; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-weight: 400; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; min-width: 0px; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"> The SCH Course is officially LIVE </span><img class=\"r-4qtqp9 r-dflpy8 r-sjv1od r-zw8f10 r-10akycc r-h9hxbl\" style=\"display: inline-block; height: 1.2em; margin-left: 0.075em; margin-right: 0.075em; vertical-align: -20%; width: 1.2em; color: #0f1419; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" draggable=\"false\" src=\"https://abs-0.twimg.com/emoji/v2/svg/1f4aa.svg\" alt=\"💪\" /><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" style=\"border: 0px solid black; box-sizing: border-box; color: #0f1419; display: inline; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-weight: 400; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; min-width: 0px; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"> As we speak, everybody’s already diving in, and I’m certain you\'ll crush it </span><img class=\"r-4qtqp9 r-dflpy8 r-sjv1od r-zw8f10 r-10akycc r-h9hxbl\" style=\"display: inline-block; height: 1.2em; margin-left: 0.075em; margin-right: 0.075em; vertical-align: -20%; width: 1.2em; color: #0f1419; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" draggable=\"false\" src=\"https://abs-0.twimg.com/emoji/v2/svg/1f680.svg\" alt=\"🚀\" /><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" style=\"border: 0px solid black; box-sizing: border-box; color: #0f1419; display: inline; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-weight: 400; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; min-width: 0px; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"> </span><span class=\"r-18u37iz\" style=\"-webkit-box-direction: normal; -webkit-box-orient: horizontal; flex-direction: row; color: #0f1419; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" dir=\"ltr\" style=\"border: 0px solid black; box-sizing: border-box; color: inherit; display: inline; font: inherit; margin: 0px; padding: 0px; white-space: inherit; overflow-wrap: break-word; min-width: 0px;\">#schcourse</span></span><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" style=\"border: 0px solid black; box-sizing: border-box; color: #0f1419; display: inline; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-weight: 400; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; min-width: 0px; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"> </span><span class=\"r-18u37iz\" style=\"-webkit-box-direction: normal; -webkit-box-orient: horizontal; flex-direction: row; color: #0f1419; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" dir=\"ltr\" style=\"border: 0px solid black; box-sizing: border-box; color: inherit; display: inline; font: inherit; margin: 0px; padding: 0px; white-space: inherit; overflow-wrap: break-word; min-width: 0px;\">#solidity</span></span><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" style=\"border: 0px solid black; box-sizing: border-box; color: #0f1419; display: inline; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-weight: 400; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; min-width: 0px; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"> </span><span class=\"r-18u37iz\" style=\"-webkit-box-direction: normal; -webkit-box-orient: horizontal; flex-direction: row; color: #0f1419; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" dir=\"ltr\" style=\"border: 0px solid black; box-sizing: border-box; color: inherit; display: inline; font: inherit; margin: 0px; padding: 0px; white-space: inherit; overflow-wrap: break-word; min-width: 0px;\">#smartcontracts</span></span><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" style=\"border: 0px solid black; box-sizing: border-box; color: #0f1419; display: inline; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-weight: 400; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; min-width: 0px; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"> </span><span class=\"r-18u37iz\" style=\"-webkit-box-direction: normal; -webkit-box-orient: horizontal; flex-direction: row; color: #0f1419; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" dir=\"ltr\" style=\"border: 0px solid black; box-sizing: border-box; color: inherit; display: inline; font: inherit; margin: 0px; padding: 0px; white-space: inherit; overflow-wrap: break-word; min-width: 0px;\">#blockchainsecurity</span></span><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" style=\"border: 0px solid black; box-sizing: border-box; color: #0f1419; display: inline; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-weight: 400; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; min-width: 0px; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"> </span><span class=\"r-18u37iz\" style=\"-webkit-box-direction: normal; -webkit-box-orient: horizontal; flex-direction: row; color: #0f1419; font-family: -apple-system, \'system-ui\', \'Segoe UI\', Roboto, Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgba(0, 0, 0, 0.07); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"><span class=\"css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0\" dir=\"ltr\" style=\"border: 0px solid black; box-sizing: border-box; color: inherit; display: inline; font: inherit; margin: 0px; padding: 0px; white-space: inherit; overflow-wrap: break-word; min-width: 0px;\">#cybersecurity</span></span></p>', 'Web3', 0, 'published', 0, '2023-04-22 03:27:17'),
(112, 5, 'HackDW3C', 'yifanli', '', '2023-04-21 22:30:20', '644354cbc90eb1.03799882.png', '<p>ABOUT THE CHALLENGE<br /><br />Attention all digital creatives, tech enthusiasts, startup founders, and investment gurus!<br /><br />HackDW3C is a virtual hackathon with $45,000+ in amazing awards, corporate challenge prizes, and even investment funds from our sponsoring companies and investors! If you design, develop, and demo your best web3 ideas, you may even earn offers for internships and full-time positions.<br /><br />Check our HackDW3C Handbook and HackDW3C Schedule for more information!<br /><br /> <br /><br />ELIGIBILITY<br /><br />Join our Discord (https://discord.gg/vqP7fDrSNq) for updates and information.<br />Submit your resumes (https://forms.gle/5SB5XEEhqzpaALA16) by April 19 (Wednesday).<br />Submit your projects (https://hackdw3c.devpost.com) by April 22 (Saturday).<br />ALL DATES AND TIMES IN EDT (PDT + 03:00 / UTC - 04:00)<br /><br /> <br /><br />HANDBOOK - Sponsors - Corporate Challenges - Prizes - Judging Advisory Board<br /><br />https://docs.google.com/document/d/15AFAftkW9xQEHhuLtFd-X95gemgWclUuVwC3sDH8UgA<br /> <br /><br />SCHEDULE - Workshops - Interviews - Office Hours - Games<br /><br />https://docs.google.com/spreadsheets/d/1uErWUV4yu6cdMsjoqP4ve4-LKgvoiW8mZKUtGTASdYw<br /> <br /><br />SPONSORS<br /><br />Hedera (https://hedera.io)<br />Corporate Challenge / Prizes<br />CESS (https://cess.cloud)<br />Corporate Challenge / Prizes<br />Stytch (https://stytch.com)<br />More details soon!<br />Kaleido (https://kaleido.io)<br />Corporate Challenge / Prizes<br /> <br /><br />WORKSHOPS<br /><br />The Blockchain Academy (https://theblockchainacademy.com)<br /> <br /><br />JUDGING ADVISORY BOARD<br /><br />Casey Caruso<br />Mike Orren<br />Michael Pratt<br />Nicholas Zaldastani<br /> <br /><br />VOLUNTEER<br /><br />Judges - https://forms.gle/gLnTo6RFHfBmWyH98<br />Mentors - https://forms.gle/Xsj5Joh4MCubjeAp6<br />Ushers - https://forms.gle/qiWPFt9p7reden1A7<br />REQUIREMENTS<br />You may form as many teams as you want, and each team may submit as many products as you want. Each prize will only accommodate a maximum of six teammates.<br /><br />If you need any ideas, check out our sponsored web3 corporate challenges!<br /><br />Hedera (Corporate Challenge / Prizes)<br />CESS (Corporate Challenge / Prizes)<br />Stytch (More details soon!)<br />Kaleido (Corporate Challenge / Prizes)<br />Submit your product with a 2-minute pitch video. Feel free to include any supplemental documents, files, websites, etc. However, remember that more is not always better! Focus on what will best define your product\'s real-world market value.<br /><br />PRIZES<br />$50,000 in prizes<br /> HackDW3C\'s Total Prize Package<br />For full details, check the HackDW3C Handbook: https://docs.google.com/document/d/15AFAftkW9xQEHhuLtFd-X95gemgWclUuVwC3sDH8UgA/edit#heading=h.j440y7gt7vcm</p>', 'Web3', 0, 'published', 0, '2023-04-22 03:30:20');
-- --------------------------------------------------------
--
-- Table structure for table `users`
--
CREATE TABLE `users` (
`user_id` int(3) NOT NULL,
`username` varchar(255) NOT NULL,
`user_email` varchar(255) NOT NULL,
`user_password` varchar(255) NOT NULL,
`user_role` varchar(255) NOT NULL DEFAULT 'registered',
`user_image` text NOT NULL DEFAULT '',
`randSalt` varchar(255) NOT NULL DEFAULT '$2y$10$iusesomecrazystrings22',
`token` text NOT NULL DEFAULT '',
`created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Dumping data for table `users`
--
INSERT INTO `users` (`user_id`, `username`, `user_email`, `user_password`, `user_role`, `user_image`, `randSalt`, `token`, `created_at`) VALUES
(20, 'yifanli', '[email protected]', '$2y$12$fidk5F6HjX9p8kx0S9OJue/Z..TWx7iXn3xHtXvMG4t67rnclbld2', 'registered', '', '$2y$10$iusesomecrazystrings22', '', '2023-04-14 01:09:34'),
(22, 'admin', '[email protected]', '$2y$12$spEbr2IgQqKRf1bo/s3cD.1pE87rLvWzXQ.SAaMHn7u2tlEQ8bzCm', 'admin', '', '$2y$10$iusesomecrazystrings22', '', '2023-04-21 15:51:27'),
(25, '88888888', '[email protected]', '$2y$12$IeOBMq8q3j6tztuuoG72nOJhLUqGH/YDzF1evN8ifg.NxsB1HvBhW', 'registered', '', '$2y$10$iusesomecrazystrings22', '', '2023-04-21 18:03:17'),
(26, '5555555', '[email protected]', '$2y$12$8PhMAvOFXsVVzWI7gzX4qevzzuVhU6doGW/05pn23Lhb/AnN0cT0C', 'registered', '', '$2y$10$iusesomecrazystrings22', '', '2023-04-21 18:03:44'),
(27, '22222222', '[email protected]', '$2y$12$Zquk8OU0bi/PIXtQDk5ppOUDlY4vyEE6vn/RDX9ekxDucDTOBc/F2', 'admin', '', '$2y$10$iusesomecrazystrings22', '', '2023-04-21 18:08:42'),
(28, '11111', '[email protected]', '$2y$12$YTwMnLnvdxirk2DMumvSIOv2ENaZdJwUYx4YsWmajr3cRawIDxZra', 'admin', '', '$2y$10$iusesomecrazystrings22', '', '2023-04-21 18:09:00');
-- --------------------------------------------------------
--
-- Table structure for table `users_online`
--
CREATE TABLE `users_online` (
`id` int(11) NOT NULL,
`session` varchar(255) NOT NULL,
`time` int(11) NOT NULL,
`user_id` int(11) DEFAULT NULL,
`ip_address` varchar(255) NOT NULL DEFAULT '',
`user_agent` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Indexes for dumped tables
--
--
-- Indexes for table `categories`
--
ALTER TABLE `categories`
ADD PRIMARY KEY (`cat_id`);
--
-- Indexes for table `comments`
--
ALTER TABLE `comments`
ADD PRIMARY KEY (`comment_id`);
--
-- Indexes for table `posts`
--
ALTER TABLE `posts`
ADD PRIMARY KEY (`post_id`);
--
-- Indexes for table `users`
--
ALTER TABLE `users`
ADD PRIMARY KEY (`user_id`),
ADD UNIQUE KEY `username` (`username`);
--
-- Indexes for table `users_online`
--
ALTER TABLE `users_online`
ADD PRIMARY KEY (`id`),
ADD KEY `time` (`time`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `categories`
--
ALTER TABLE `categories`
MODIFY `cat_id` int(3) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;
--
-- AUTO_INCREMENT for table `comments`
--
ALTER TABLE `comments`
MODIFY `comment_id` int(3) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=47;
--
-- AUTO_INCREMENT for table `posts`
--
ALTER TABLE `posts`
MODIFY `post_id` int(3) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=115;
--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
MODIFY `user_id` int(3) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=29;
--
-- AUTO_INCREMENT for table `users_online`
--
ALTER TABLE `users_online`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;